In some cases parallelism is transparent to the programmer, such as in bit-level or instruction-level parallelism, but explicitly parallel algorithms, particularly those that use concurrency, are more difficult to write than sequential ones, because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. Specialized parallel computer architectures are sometimes used alongside traditional processors, for accelerating specific tasks. Parallel computers can be roughly classified according to the level at which the hardware supports parallelism, with multi-core and multi-processor computers having multiple processing elements within a single machine, while clusters, MPPs, and grids use multiple computers to work on the same task. In contrast, in concurrent computing, the various processes often do not address related tasks when they do, as is typical in distributed computing, the separate tasks may have a varied nature and often require some inter-process communication during execution. In parallel computing, a computational task is typically broken down into several, often many, very similar sub-tasks that can be processed independently and whose results are combined afterwards, upon completion. Parallel computing is closely related to concurrent computing-they are frequently used together, and often conflated, though the two are distinct: it is possible to have parallelism without concurrency, and concurrency without parallelism (such as multitasking by time-sharing on a single-core CPU). As power consumption (and consequently heat generation) by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors. Parallelism has long been employed in high-performance computing, but has gained broader interest due to the physical constraints preventing frequency scaling. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Large problems can often be divided into smaller ones, which can then be solved at the same time. Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. IBM's Blue Gene/P massively parallel supercomputer
0 Comments
Leave a Reply. |