Using several processors simultaneously with the aim of increasing speed over single processor performance. It often refers to array processor computer hardware that carries out multiple, often identical, mathematical computations at the same time. Generally array processors are designed with specific tasks in mind and so are not suitable for running complex operational software. Due to system administration and the fact that not all processors will complete their tasks at the same moment, causing waiting time, the increase in speed gained by sharing the task may not be proportional to the number of channels available.
Due to the very different structure of a parallel processing computer, software designed to run on a single processor system may well need significant changes to take full advantage of a parallel system. The current expansion of popular PC CPUs to offer two, four or more processor CPUs generally works with established applications by running the various applications on separate core processors, rather than one application on multiple processors.