Next Generation Computing Architectures – Multicore processors are here
Here’s a short overview of multicore contrasted with single core processors.
On the marketing front, AMD is out in front in the area of dual-core processors. Their 64-bit Opteron chip is shipping now, while Intel won’t ship their dual-core for servers until next year. While Intel continues to maintain a large lead, AMD is making some gains in market share. Another story indicates Intel will have multicore processors on desktops, workstations, mobile computers and servers by the end of this year. For those who want to see an historical view of the battle between Intel and AMD, here’s a blog that describes it in gritty detail.
I recently attended a lecture by Norm Jouppi, an HP Fellow at HP labs working on next generation processors. In it he described the evolution of the processor and how performance gains varied based on factors other than the number of transistors. The earliest processors up through the Intel 386 achieved performance increases on the order of N to the 3rd, while the Intel 486 through the Pentium 4 achieved performance increases of N to the 2nd. After that point processors actually achieved no significant performance increase due to the increased complexity of the chips which is one reason chip manufacturers are moving from single core processors to multicore processors. Other factors include voltage scaling issues, environment constraints, clock frequency, and power. He went on to describe how next generation chips with multicore processors will issue in the “Golden Age of Parallelism.”
He believes that all applications will become parallel in nature. He went on to speculate that old chip architectures such as the Vector processor used in supercomputers of the ‘70s and ‘80s may see a come back. The trend to simpler processors will bring shallower pipelines, and reduce speculation but not eliminate it. Speculation is guessing what branch the process might take and scheduling it rather than waiting.
You can see his current work in the following paper in which he described an architecture for a multicore processor in which an intelligent division of functions among various cores can bring about increased energy performance with a minimum impact on processing power.
How does this impact the programmer? As new processors move to multi core architectures, thread processing becomes important for hiding memory latency in I/O intensive applications. Instead of the processor sitting idle waiting for data to come in, the processor can work on other computational tasks. As this blog tells us, it’s time to make use of multithreaded programming skills. He goes on to say that he believes the next generation OS will take care of the head aches that come with multicore processing, and encourages programmers to use threads carefully. For those programming in LabVIEW, you have access to multithreading and LabVIEW makes parallel processing easier than most other languages.
If you are working with multicore processors, I would like to hear from you. Please email me at email@example.com.
Hall T. Martin