Open main menu

CDOT Wiki β

Changes

GPU621/History of Parallel Computing

2,477 bytes added, 19:56, 27 November 2020
Demise of Single-Core and Rise of Multi-Core Systems
== Demise of Single-Core and Rise of Multi-Core Systems ==
=== Parallel Programming and comparison to vs. Concurrent Programming ===
Parallel computing is the idea that large problems can be split into smaller tasks, and these tasks are independent of each other running '''simultaneously''' on '''more than one''' processor. This concept is different from concurrent programming, which is the composition of multiple processes that may begin and end at different times, but are managed by the host system’s task scheduler which frequently '''switches between them'''. This giving off the illusion of multi-tasking as multiple tasks are '''in progress''' on a '''single''' processor. Concurrent computing can occur on both single and multi-core processors, whereas parallel computing takes advantage of distributing the workload across multiple physical processors. Thus, parallel computing is hardware-dependent.
 
=== Transition from Single to Multi-Core ===
 
The transition from single to multi-core systems came from the need to address the limitations of manufacturing technologies for single-core systems. Single-core systems suffered by several limiting factors such as individual transistor gate size, physical limits in the design of integrated circuits which caused significant heat dissipation, and synchronization issues with coherency of data. Some instruction-level parallelism methods were used to improve single-core performance such as superscalar pipelining which enables the processor to execute multiple instruction pipelines concurrently within a single clock cycle, but they were not suited for many applications. Such issues with instruction-level parallelism were predominantly dictated by the disparity between the speed by which the processor operated and the access latency of system memory, which costed the processor many cycles by having to stall and wait for the fetch operation from system memory to complete.
 
 
As manufacturing processes evolved in accordance with Moore’s Law which saw the size of a transistor shrink, it allowed for the number of transistors packed onto a single processor die (the physical silicon chip itself) to double roughly every two years. This enabled the available space on a processor die to grow, allowing more cores to fit on it than before. This led to an increased demand in thread-level parallelism which many applications benefitted from and were better suited for. The addition of multiple cores on a processor also increased the system's overall parallel computing capabilities.
 
=== Developments in the first Multi-Core Processors ===
 
The death of single-core processors came at the time of the Pentium 4, when, as mentioned above, excessive heat and power consumption became an issue. At this point, multi-core processors such as the Pentium D were introduced. However, Pentium D was not considered a “true” multi-core processor as what is considered today by definition, due to its design of being two separate single-core dies placed beside each other in the same processor package.
 
 
The world's first true multi-core processor was called the POWER4, created in 2001 by IBM. It incorporated 2 physical cores on a single CPU die and implemented IBM's PowerPC 64-bit instruction set architecture (ISA). It was used in IBM's line of workstations, servers, and supercomputers at the time, namely the RS/6000 and AS/400 systems.
80
edits