The fundamental problem in parallel computing is "keeping the processors busy doing useful work with the least possible waste of recources." Very fine grain parallelism can be easily extracted from almost all programs, but the hardware to execute this code can be very complex. Hardware to support coarse grain parallelism is straightforward to build, but it seems only some domains have easier to find parallelism.

Research involves designing less complex systems to support fine grain parallelism and extracting coarse grain parallelism from a larger set of problem domains.

Examples of parallel computing can be found at

A basic problem in automatically extracting parallelism from programs is that very complex analysis is typically necessary to ensure that parallel execution is "safe". Functional programming languages are inherently safer because function calls have no side-effects, and thus won't interfere with other concurrent function calls. I've recently been examining Haskell, a rather elegant language which has several parallel implementations. More recently I discovered Fortress, a somewhat derivitive language.


index.html was last edited by Randolph Bentson, on Sat Aug 16 16:55:54 PDT 2008