Towards improved education for parallel computation



next up previous contents
Next: Open-ended programming environments Up: New efforts Previous: Building successes on

Towards improved education for parallel computation

Current experience with parallel program development shows that it is essential for computer users to understand that many implicit activities related to the development and execution of programs must be explicitly carried out by programmers when developing parallel programs. Such activities are: creating a computation model in which intelligent computing agents perform simultaneously portions of the program; controlling the computation agents while they execute their portions of a program; splitting the computation of the program into subcomputations and allocating these subcomputations to the intelligent computing agents. The major difficulty in implementing parallel algorithms is generated by the lack of intuition and software support for these activities. Since the process that executes a sequential program is unique for each program run on a sequential machine, it can be implicitly created and managed by the operating system, and thus the programmer needs not be aware of its existence. Consequently, neither the intuition of parallel processes populating the operating system, nor the language support to manage these processes are supported by sequential programming languages.

The critical mass of programmers able to handle existing parallel machines and to sustain the future developments as suggested by the Strategic Implementation Plan: America in the Age of Information can be created in the American Schools. For that to happens, HPCS must be provided with open-ended programming environments that allows the programmer not only to use programming tools but also to create new tools and to update the environment with the tools he or she needs.