The authors describe ways in which an HPF compiler can deal with irregular computations effectively. The first mechanism invokes a user specified mapping procedure via a set of compiler directives. The directives allow the user to use program arrays to describe graph connectivity, spatial location of array elements and computational load. The second is a simple conservative method that in many cases enables a compiler to recognize that it is possible to reuse previously computed results from inspectors (e.g. communication schedules, loop iteration partitions, information that associates off-processor data copies with on-processor buffer locations). The authors present performance results for these mechanisms from a Fortran 90D compiler implementation.
['Ravi Ponnusamy', 'Joel H. Saltz', 'Alok N. Choudhary']
Runtime compilation techniques for data partitioning and communication schedule reuse