Forecast: New Dominance of Parallel Programming

Alex Soojung-Kim Pang's picture
Description: 

Parallel programming -- programming for hundreds or thousands of concurrent independent processes or 'threads', may become increasingly important over the next decade as the result of developments in both hardware and software. Programming for small scale mobile and embedded devices may be an exception to this trend.

By 2015, parallel or concurrent programming may be the dominant mode of coding, rather than the niche technique it is today. A variety of new computing architectures will necessitate parallel programming:

Virtual computers -- ordinary computer integrated circuits with multiple computing cores within a single chip
Nanoscale computers -- nanoelectric, nanomechanical, nanobiological, and perhaps quantum computers
Grid, or cluster, computing over broadband networks

This future capability is increasingly indistinguishable from what we call supercomputing today. In the future, even mobile devices will likely have access to high-performance supercomputing over broadband networks. To benefit from parallel hardware, the software must provide enough concurrent operations to use all the hardware.

Today, the system software used on most contemporary supercomputers is a crude variant of UNIX with limited programs written in Fortran, C, and C++, augmented with a few language or library extensions for parallelism and with application libraries like the Titanium extensions to Java for higher performance computing. Even though some early software development tools exist, programming supercomputer software that supports massive parallelism requires special expertise to optimise performance at multiple levels below the operating system. Modern mainstream application programmers who are deeply knowledgeable about their application domains typically have little or no practical knowledge of using massive parallel processes to generate better results or user experiences. They usually employ high-level tools that mask the complexity of lower-level, massively parallel software and hardware processes. Indeed, application designers at large have not been educated in how to think about discretising computational tasks to take advantage of the improved computing machinery that is expected to be widely available starting around 2015.

Designers of parallel computing applications will need to be capable of determining the utility and cost of a solution based on expert judgments of factors other than time taken -- for instance, on accuracy or trustworthiness. According to a recent National Academy of Sciences study, 'Determining the trade-off among these factors is a critical task. The calculation depends on many things -- the algorithms that are used, the hardware and software platforms, the software that realizes the application and that communicates the results to users. . . . The design of the algorithms, the computing platform, and the software environment governs performance and sometimes the feasibility of getting a solution'."

This will be enabled by:

"Inherent parallelism of almost all new computer architectures
Demand for massively parallel software for secret government signal sensing and cryptographic applications, as well as for petroleum, automotive, and aircraft companies and pharmaceutical and biomedical start-ups"

Early indicators include:

"Announcement by Intel that it is investigating three fundamental types of processing capabilities necessary to deal with massive computing workloads: Recognition, Mining and Synthesis, or RMS
Increasing use by media companies such as George Lucas's Industrial Light and Magic, Steven Speilberg's Dreamworks, and Steve Jobs's Pixar Productions of massively parallel process to render movie graphics.
The growth of commercial "render-farms" selling services to media companies.
The growth of grid computing
Increasing number of distributed computing applications
Launching of pilot programs at the Centre for Parallel Computing at Massey University in New Zealand and the University of California at Berkeley to begin teaching design of massively parallel applications"

What to watch:

Photorealistic capabilities enabled by massively parallel computers migrate to interactive entertainment like games and other new high-resolution media.
Courseware in parallel processing is introduced at major educational institutions.

No votes yet