Software Development in the UNIX Environment
Shared Memory Parallelization Techniques
Loop Level Parallelization
-
Execute different iterations of a loop in parallel
on multiple processors
-
Loop iterations must not depend on each other
Compiler Directives for C and FORTRAN
-
OpenMP platform-independent parallelizing directives/pragmas
-
Add pragmas to C code and directives to FORTRAN code
-
Platform dependent compiler option for multi-processing
OpenMP on Linux with Portand Group Compilers
-
Use -mp option for FORTRAN,C,C++
-
Environment variable OMP_NUM_THREADS for number of processes
OpenMP on Irix with SGI Compilers
-
Use -mp option for FORTRAN,C,C++
-
Environment variable OMP_NUM_THREADS for number of processes
Automatic Parallelization SGI (C/C++/Fortran)
-
C compiler - SGI Irix command 'cc -pca '
-
FORTRAN compiler - SGI Irix command 'f77 (f90)
-pfa'
-
Delta SGI O200 has automatic compilers for C and Fortran
-
Useful for knowing which loops can be easily parallelized.
-
Tries to parallelize every loop - can be inefficient
SGI GUI for Parallelization Analysis of FORTAN (
Workshop Pro MPF )
-
compare original source and parallelized code
-
provides reasons why certain loops cannot be parallelized
-
interactive additions of directives or code changes to facilitate
parallelization