Nowadays' software cannot take full advantage of the processors' computing power

Mar 21, 2008 10:06 GMT  ·  By

Intel and Microsoft have jointly announced this week that they would donate $20 million to some US-based colleges to research on parallel and multicore computing. The research funds are not charity, however, and the two companies expect to get multi-core optimized code in exchange of the money.

Multi-core processors are already here, and the best is yet to come. For instance, the dual-core era is slowly coming to an end with the advent of Intel's and AMD's quad-core powerhorses. The processor world is continually changing: Intel will shortly start shipping its six-core Dunningtons, while AMD announced great plans for an eight-core chip, slated to arrive in 2009.

It seems that there is enough supply of raw computing power, yet much of it is wasted because of the un-optimized software code. The existing software applications are unable to get full advantage of multiple cores or even of multiple threads per core. According to a recent Forrester Research report, coders will have to rethink their applications in order to take full advantage of the tremendous raw processing power.

"To gain performance from quad-core processors and prepare for the denser multicore CPUs that will follow, application developers need to write code that can automatically fork multiple simultaneous threads of execution (multithreading) as well as manage thread assignments, synchronize parallel work, and manage shared data to prevent concurrency issues associated with multithreaded code," reads the report.

The advent of quad-core processors are just the tip of the iceberg, and CPU analysts estimate that the industry is gearing up for 64 processor cores until 2009 on the server market. Having multi-core optimized code is a critical pre-requisite for the upcoming technology and although the industry knows that, delivery of specialized software still lags.

"It's surprising to me because multithreading programming isn't new," Mike Lydon, TopCoder's CTO. He also claims that multicore programming is mastered by professionals and high-end developers.

AMD took a different approach at encouraging the development of multi-core-ready applications. The chip manufacturer recently open-sourced a software routines library, bundled under the "Framewave" name. According to the company, the routines will assist programmers in writing multi-core / multi-threaded applications.