Experiences in Data‐Parallel Programming - Clark, Terry W.; v. Hanxleden, Reinhard; Kennedy, Ken (Scientific programming, 1997)
To efficiently parallelize a scientific application with a data‐parallel compiler requires certain structural properties in the source program, and conversely, the absence of others. A recent parallelization effort of ours reinforced this observation and motivated this correspondence. Specifically, we have transformed a Fortran 77 version of GROMOS, a popular dusty‐deck program for molecular dynamics, into Fortran D, a data‐parallel dialect of Fortran. During this transformation we have encountered a number of difficulties that probably are neither limited to this particular application nor do they seem likely to be addressed by improved compiler technology in the near future. Our experience with GROMOS suggests a number of points to keep in mind when developing software that may at some time in its life cycle be parallelized with a data‐parallel compiler. This note presents some guidelines for engineering data‐parallel applications that are compatible with Fortran D or High Performance Fortran compilers.