×

Finding performance bugs with the TNO HPF benchmark suite. (English) Zbl 1008.68548

Summary: High-Performance Fortran (HPF) has been designed to provide portable performance on distributed memory machines. An important aspect of portable performance is the behavior of the available HPF compilers. Ideally, a programmer may expect comparable performance between different HPF compilers, given the same program and the same machine.
To test the performance portability between compilers, we have designed a special benchmark suite, called the TNO HPF benchmark suite. It consists of a set of HPF programs that test various aspects of efficient parallel code generation. The benchmark suite consists of a number of template programs that are used to generate test programs with different array sizes, alignments, distributions, and iteration spaces. It ranges from very simple assignments to more complex assignments such as triangular iteration spaces, convex iteration spaces, coupled subscripts, and indirection arrays.
We have run the TNO HPF benchmark suite on three compilers: the PREPARE prototype compiler, the PGI-HPF compiler, and the GMD Adaptor HPF compiler. Results show performance differences that can be quite large (up to two orders of magnitude for the same test program). Closer inspection reveals that the origin of most of the differences in performance is due to differences in local enumeration and storage of distributed array elements.

MSC:

68U99 Computing methodologies and applications
68N15 Theory of programming languages
68N20 Theory of compilers and interpreters
Full Text: DOI

References:

[1] High Performance Fortran Forum. High Performance Fortran Language Specification, Version 2.0, Rice University, Houston, TX, February 1997.
[2] Design of an HPF Compiler: A compilation framework for a data-parallel language. PhD Thesis, Delft University of Technology, 2000.
[3] The TNO HPF benchmark suite. www.pds.its.tudelft.nl. · Zbl 1008.68548
[4] DAS: The Distributed ASCI Supercomputer. www.cs.vu.nl/das.
[5] A new compiler technology for handling HPF data parallel constructs. Proceedings of the 3rd Workshop on Languages, Compilers and Run-time Systems for Scalable Computing. Kluwer: Dordrecht, 1995.
[6] Adaptor. www.gmd.de/SCAI/lab/adaptor.
[7] ADAPTOR, a transformation tool for HPF programs. Programming Environments for Massively Parallel Distributed Systems, (eds.). Birkhäuser: Boston, 1994; 91-96. · doi:10.1007/978-3-0348-8534-8_9
[8] Sips, Parallel Computing 24 pp 355– (1998)
[9] van Reeuwijk, IEEE Transactions on Parallel and Distributed Systems 7 pp 897– (1996)
[10] A linear algebra framework for static HPF code distribution. Technical Report A-278-CRI, Ecole des Mines, Paris, November 1995.
[11] Chatterjee, Journal of Parallel and Distributed Computing 26 pp 72– (1995)
[12] Efficient address generation for block-cyclic distributions. Proceedings of the International Conference on Supercomputing. ACM Press, 1995; 180-184.
[13] Gupta, Journal of Parallel and Distributed Computing 32 pp 155– (1996)
[14] Communication generation for cyclic(k) distributions. Proceedings of the 3rd Workshop on Languages, Compilers, and Run-time Systems for Scalable Parallel Computers. Kluwer: Dordrecht, 1995; 185-197.
[15] Efficient dynamic local enumeration for HPF. Proceedings of the Workshop on Languages and Compilers for Parallel Computers, LCPC2000 (Lecture Notes in Computer Science, vol. 2017). Springer: Berlin, 2001; 355-358.
[16] A manual for the multiblock PARTI runtime primitives. Technical Report CS-TR-3070.1, University of Maryland, January 1994.
[17] Processing irregular codes containing arrays with multi-dimensional distributions by the PREPARE HPF compiler. Proceedings HPCN95 Europe (Lecture Notes in Computer Science, vol. 919). Springer: Berlin, 1995; 526-531.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.