Browse Prior Art Database

Parallelizing Programs in the Single Program Multiple Data Computational Model Via Automatic Serialization

IP.com Disclosure Number: IPCOM000036509D
Original Publication Date: 1989-Oct-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 2 page(s) / 14K

Publishing Venue

IBM

Related People

Bernstein, D: AUTHOR [+2]

Abstract

Disclosed is a method that facilitates the parallelization of sequential (Fortran) programs for the SPMD (Single Program Multiple Data) computational model. It allows the user to parallelize only the parallel sections in the program and leave the rest of the parallelization work to the software tools.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

Parallelizing Programs in the Single Program Multiple Data Computational Model Via Automatic Serialization

Disclosed is a method that facilitates the parallelization of sequential (Fortran) programs for the SPMD (Single Program Multiple Data) computational model. It allows the user to parallelize only the parallel sections in the program and leave the rest of the parallelization work to the software tools.

Shared memory multiprocessors provide an inexpensive and efficient way for achieving high computational power from a uniprocessor. However, in order that a single job can take advantage of the multiprocessing power its source program should be coded in (or converted from a sequential program into) a parallel form properly. This cannot be done efficiently by an average user without having a parallel language or a parallel extension of a sequential language (Fortran, C, etc.) supported by automatic tools like parallelizing compilers of preprocessors. While parallelizing an application to be further translated by an automatic tool, the user has to keep in mind the computational model of the parallel execution,
i.e. he must understand how the processes are created in the system and how the cooperate to execute the program in parallel. One of the most popular computational models is the SPMD model (see 1, 2, 3) in which all the processes are created at the beginning of the program, and they execute the same copy of the program synchronizing through shared variables.

To parallelize the application, the user has to define the shared data structures and variables used in the program and to specify the nature of the execution (e.g., serial or parallel) of different pieces of work in the program. In the SPMD model the whole program has to be parallelized even though only a small part of the code can be executed in parallel (however, this part may dominate the execution time); still the rest of the program has to be specified with proper serial sections, and the data should correctly be passed from one section to another.

The present scheme described herein allows the user to specify for parallel execution only the parts of t...