Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1556
News FAQ
Search Home


next up previous contents
Next: AIPS++ Requirements and a Tentative Time Table Up: NOTE 203 - PARALLELIZATION OF AIPS++ Previous: Types of Parallelization

Subsections


Categorization of User Specifications into Embarrassingly Parallel, Fine-Grain, or Combination Problems

The specific user specifications have been categorized into (1) embarrassingly parallel, (2) fine-grain, and (3) combination problems. Within the EP and fine-grain cases, the problems are subdivided into other categories. Within each category, the problems are presented in the order that we propose to address them. Generally, the order is from easiest to implement to most difficult. Starting with straight forward problems gives us the opportunity to gain expertise that will be required for more complex problems. Some descriptions end in a star ($ \star$); these are of particular interest because the functionality does not exist in any general data reduction package. Work on these problems should be given a higher priority in order that the parallel effort of AIPS++ coincide with the general theme of AIPS++, in which new functionality is given presidence over repetition of existing functionality.

Embarrassingly Parallel Problems

The embarrassingly parallel problems are divided into (1) general, (2) derived, and (3) CDCI cases. General cases involve problems that recur in astronomical data reduction, such as calibration. Derived cases are specific cases that are made up of one or more components of general problems. Also identified are a third category of Calculate-Distribute-Collect-Iterate (CDCI) problems. CDCI problems are a specific form of the derived case where the problem can be represented as a collection of general EP problems with a significant fraction of time spent in the collection and comparison of the distributed results in order to direct additional iterations. CDCI problems are among the most computationally intensive.

General Problems

General embarrassingly parallel problems will require the distribution of existing C++ code across multiple processors. Once these routines have been constructed, they can be used in other applications (see § 3.1.2).

Derived Applications of Embarrassing Parallelism

Once embarrassingly parallel general tasks, such as calibration, are parallelized, programs to address many problems (``derived applications'') can be parallelized by calling the appropriate subtasks. The order of these tasks is not as important as the general case, because these will be addressed after the general cases that they call or emulate have been written.

Calculate-Distribute-Collect-Iterate (CDCI) Problems

Many computationally intensive problems that may be posed in a manner that in which the data are separated somehow into independent pieces and sent to individual processors. The results are brought together and the instructions for further processing are determined and the data, then new instructions (e.g. revised model) are sent again to the processors. The success of using the embarrassingly-parallel techniques on these CDCI problems is limited by the ratio of time spent on individual pieces (parallel operations) versus the I/O and calculations needed for the next iteration (serial operations). These problems are inherently computationally expensive, however, the ultimate speed up on parallel machines may vary depending on data size and algorithm. Before extensive work is devoted to parallelizing these algorithms, the estimated degree of speed up for representative data sets should be investigated.

Fine-Grain Parallel Problems

Problems that can be addressed by fine-grain parallelism are divided into (1) general, (2) derived, and (3) specific cases. The general cases are ones that use a large number of low-level parallelizable functions, such as FFT's. Once these problems are addressed, a library of parallel Fortran subroutines will exist that can be called in future programs. Derived problems are ones that may use a number of parallelized functions created for the general problems. Specific problems are ones that can be parallelized at a low level, such as de-dispersing pulsar data, which are very computationally intensive. However, the solutions to these problems are not generally applicable to other cases.

General Fine-Grain Parallelism

General fine-grain problems will require the construction of optimized Fortran subroutines. Once these routines have been written, they can be used in other ``derived'' applications (see §3.2.2).

Derivative Applications of Fine-Grain Parallelism

Once general tasks, such as FFT's, gridding etc., are parallelized, programs to address many problems (``derived applications'') can be parallelized by calling the appropriate parallelized Fortran subroutines.

Special Applications of Fine-Grain Parallelism

Combination Problems

Combination problems should be avoided by rewriting of algorithms. However, in cases where alternate formulation of algorithms is not possible, attention should be given to estimated improvements using both fine-grain and embarrassing parallelism.


next up previous contents
Next: AIPS++ Requirements and a Tentative Time Table Up: NOTE 203 - PARALLELIZATION OF AIPS++ Previous: Types of Parallelization   Contents
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-10-15