Software Developers Must Prepare for Multi-Core Microprocessors
The amount of cores inside central processing units (CPUs) is projected to skyrocket in the coming years, according to analysts, which will enable unprecedented performance potential. However, to take advantage of that potential software makers need to have skills that many do not own right now.
â€œExpect x86 servers with as many as 64 processor cores in 2009 and desktops with that many by 2012,â€ analysts from Forrester Research wrote in a paper last month.
While the era of multi-core computing is here, application development teams must embrace new programming approaches to reap the full performance and economic benefits of the new hardware. The new â€œmulti-core programmingâ€ approach will combine multithreading and parallel/concurrent designs that allow simultaneous processing of threads and/or tasks by multiple cores. Concurrent computing is familiar to some app development professionals, but most have little or no experience with parallel computing, believe analysts of Forrester Research as well as specialists from Microsoft Corp.
â€œThere is a worldwide shortage of people experienced in parallel computing experience, for sure. One of the collateral reasons is to raise awareness in the academic community, because thatâ€™s where the next generation of developers will come from,â€ said Dan Reed, director of scalable and multi-core computing at Microsoft.
Earlier this week Intel Corp. and Microsoft kicked off a program under which they would help to create two Universal Parallel Computing Research Centers (UPCRC), aimed at accelerating developments in mainstream parallel computing, for consumers and businesses in desktop and mobile computing.
â€œApplication development professionals will need a strategy for adopting these new approaches, frameworks, and tools as they emerge, adapting the patterns and methods they use today, and evolving their application portfolios to ride the performance curve promised by Mooreâ€™s Law in the multi-core era,â€ analysts from Forrester Research indicated.
Back in the days only server and workstation machines featured more than one processing engine, whereas desktops and notebooks were based on single-core CPUs. Therefore, performance of client machines was conditioned by clock-speed and micro-architecture of processors installed. Partly, this explains why there are not enough software developers experienced in parallel computing.
But this does not automatically mean that performance of next-generation microprocessors will rise exponentially along with the number of cores. Both Advanced Micro Devices and Intel Corp. announced that in several years time their CPUs will come wither integrated stream processors (AMD Fusion project) or other types of application targeted accelerators, which will bring new challenges to software developers, as then they will have to take advantage not only of homogeneous multi-core design, but of heterogeneous multi-core designs.