A lack of parallel programming expertise in the IT sector and the impact it will have on future server platforms is one of the biggest questions for computing over the next decade, according to James Harland, the associate professor of computer science at RMIT University.
Harland said parallel programming skills are in short supply both in Australia and worldwide.
“This is because it is only taught as an advanced elective in most computer science courses,” he said.
It is emerging as a critical problem as new server platforms exploit multicore processors. Gone are the days of processor improvements whereby a chip ran a single threaded application faster than the previous generation.
Today improvements in chip performance are gained largely by the multiplication of cores or threads.
Existing applications that grow beyond the single processor speed of the server need to be recoded to run in parallel to exploit additional cores.
This means that without a massive injection in parallel programming expertise in the IT sector, new server platforms will stall, especially in areas like fabric-based computing.
“Only a minority of developers actually have this expertise,” Harland said.
Programmers need these skills to avoid what is known as software’s “deadly embrace.”
If synchronisation mechanisms are applied inappropriately it can seriously impair the performance of the software or produce frozen states commonly known as a “deadly embrace”.
Harland said techniques to deal with frozen states are only taught briefly in computer science and information technology programs.
“It is only taught as part of an overview of operating system design it isn’t integrated into the programming mainstream,” he said.
“Hence the only real way to overcome such obstacles is to spend more time on parallel programming techniques in these courses.”
Dr John Lenarcic of RMIT University’s school of business said parallel programming represents a different paradigm of software development.
Programmers need to understand “race conditions” and this new wave of programming can be a challenge to the creative comfort zone, according to Lenarcic.
“Parallel programming introduces the notion of complexity into software development,” he said.
“Some would argue that for a die-hard coder it is no different to any other second programming language but a mind-set change may be in order.”
Gartner analyst Carl Claunch believes this will emerge as a serious problem in the next few years.
“It is highly likely that the difficulty of restructuring older applications will cause many to consider replacing them with off the shelf packaged solutions instead of recoding,” Claunch explained.
“Parallel programming remains difficult. Programmers must understand race conditions where the outcome of the program will incorrectly vary, depending on which portion happens to execute first.
“The cure involves the judicious use of synchronization mechanisms and an ability to see when such conditions can occur.
“Only a minority of developers have sufficient training to handle parallel programs, and only a fraction have enough experience to do it well.’
Claunch said these synchronization mechanisms applied inappropriately can seriously impair the performance of the software.
“Some defects may only cause difficulties when the exact right or wrong set of relative timings occurs among threads making debugging difficult,” he said.
“Recognizing and avoiding these race conditions is a sophisticated skill not widely found in the general developer pool.”
Often it requires a considerable understanding of the business or technical domain or it may require advanced mathematical knowledge and great intuition in the way the algorithm works.
“Developers may need to devise entirely new approaches to the intended logic or calculation when existing methods have poor prospects for parallelism,” Claunch said.
There is some software already designed with many threads to fully exploit boxes with many processors and threads.
The Microsoft SQL Server or Oracle DBMS fit this profile.
Buggy software continues to be a very real problem for the IT industry.
The National Institute of Standards and Technology attributed a hefty price tag to the problem claiming software bugs are costing the US economy $US59.5 billion yearly, with users incurring 64 per cent of the cost and developers 36 per cent.
Follow Computerworld Australia on Twitter: @ComputerworldAU