ABSTRACT

It is possible to create a vast variety of MIMD parallel programs with just five library functions: one for creating processes; another for destroying processes; a third for sharing memory; and two more for interprocess synchronization. The five functions are: forks, to create a parallel process; joins, to destroy a parallel process; memory shares; memory locks; and barriers, which are used to synchronize parallel programs. When a calculation has been subdivided among two or more processes, each must be able to carry out its portion of that calculation. Processes are created by the operating system. The user can command the operating system to create a new process by calling the library function process_fork. A barrier causes processes to wait and allows them to proceed only after a predetermined number of processes are waiting at the barrier.