Abstract
In this paper, we consider the problem of generating efficient, portable communication in compilers for parallel languages. We introduce the Ironman abstraction, which separates data transfer from its implementing communication paradigm. This is done by annotating the compiler-generated code with legal ranges for data transfer in the form of calls to the Ironman library. On each target platform, these library calls are instantiated to perform the transfer using the machine's optimal communication paradigm. We confirm arguments against generating message passing calls in the compiler based on our experiences using PVM and MPI — specifically, the observation that these interfaces do not perform well on machines that are not built with a message passing communication paradigm. The overhead for using Ironman, as opposed to a machine-specific back end, is demonstrated to be negligible. We give performance results for a number of benchmarks running with PVM, MPI, and machine-specific implementations of the Ironman abstraction, yielding performance improvements of up to 42% of communication time and 1–14% of total computation time.
This research was supported by DARPA Grant N00014-92-J-1824, AFOSR Grant E30602-97-1-0152, and a grant of HPC time from the Arctic Region Supercomputing Center.
Preview
Unable to display preview. Download preview PDF.
References
The Power Challenge. Technical report, Silicon Graphics, Inc., 1995.
Sarita V. Adve and Kouroush Gharachorloo. Shared memory consistency models: A tutorial. Technical Report 95/7, Digital Western Research Laboratory, 1995.
Tilak Agerwala, Joanne L. Martin, Jamshed H. Mirza, David C. Sadler, Daniel M. Dias, and Marc Snir. SP2 system architecture. IBM System Journal, 34(2):152–184, 1995.
Ray Barriuso and Allan Knies. SHMEM user's guide for C. Technical report, Cray Research Inc., June 1994.
Brian N. Bershad, Matt J. Zekausaka, and Wayne A. Sawdon. The Midway distributed shared memory system. In CompCon Conference, February 1993.
Kenneth Cameron, Lyndon J. Clarke, and A. Gordon Smith. CRI/EPCC MPI for CRAY T3D. In 1st European Cray T.?D Workshop, September 1995.
L. F. Cannon. A Cellular Computer to Implement the Kalman Filter Algorithm. PhD thesis, Montana State University, 1969.
Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis, Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby. Factor-Join: A unique approach to compiling array languages for parallel machines. In Workshop on Languages and Compilers for Parallel Computing, August 1996.
Sung-Eun Choi and Lawrence Snyder. Quantifying the effect of communication optimizations. In Proceedings of the International Conference on Parallel Processing, pages 218–222, August 1997.
Intel Corporation. Paragon User's Guide. 1993.
W. Crowley, C. P. Hendrickson, and T. I. Luby. The Simple code. Technical Report UCID-17715, Lawrence Livermore Laboratory, 1978.
Marios D. Dikaiakos, Calvin Lin, Daphne Manoussaki, and Diana E. Woodward. The portable parallel implementation of two novel mathematical biology algorithms in ZPL. In 9 th International Conference on Supercomputing, 1995.
Adam Belguelin et al. A user's guide to PVM. Technical report, Oak Ridge National Laboratories, 1991.
William Gropp and Ewing Lusk. User's guide for mpich, a portable implementation of MPI. Technical report, Argonne National Laboratory, 1996.
Cray Research Inc. Cray T3D System Architecture Overview Manual. Mendota Heights, MN, 1993.
Cray Research Inc. PVM and HeNCE Programmer's Manual. Mendota Heights, MN, 1994. SR-2501 5.0.
Vijay Karamcheti and Andrew A. Chien. Optimizing memory system performance for communication in parallel computers. In Proceedings of the International Symposium on Computer Architecture, June 1995.
Peter Keleher, Alan L. Cox, and Willie Zwaenepoel. Lazy release consistency for software distributed shared memory. In Proceedings of the International Symposium on Computer Architecture, May 1992.
E Christopher Lewis, Calvin Lin, Lawrence Snyder, and George Turkiyyah. A portable parallel n-body solver. In D. Bailey, P. Bjorstad, J. Gilbert, M. Mascagni, R. Schreiber, H. Simon, V. Torczon, and L. Watson, editors, Proceedings of the Seventh SIAM Conference on Parallel Processing for Scientific Computing, pages 331–336. SIAM, 1995.
Message Passing Interface Forum. MPI: A Message Passing Interface Standard. June 1995.
Wilkey Richardson, Mary Bailey, and William H. Sanders. Using ZPL to develop a parallel Chaos router simulator. In 1996 Winter Simulation Conference, December 1996.
Prasenjit Saha, Joachim Stadel, and Scott Tremaine. A parallel integration method for solar system dynamics. The Astronomical Journal, 114:409+, July 1997.
T. Stricker, J. Subhlok, D. O'Hallaron, S. Hinrichsand, and T. Gross. Decoupling synchronization and data transfer in message passing systems of parallel computers. In 9 th International Conference on Supercomputing, July 1995.
Thorsten von Eicken, David E. Culler, Seth Copen Goldstein, and Klaus Erik Schauser. Active Messages: a mechanism for integrated communication and computation. In Proceedings of the 19th International Symposium on Computer Architecture, pages 256–266, May 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chamberlain, B.L., Choi, SE., Snyder, L. (1998). A compiler abstraction for machine independent parallel communication generation. In: Li, Z., Yew, PC., Chatterjee, S., Huang, CH., Sadayappan, P., Sehr, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1997. Lecture Notes in Computer Science, vol 1366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032698
Download citation
DOI: https://doi.org/10.1007/BFb0032698
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64472-9
Online ISBN: 978-3-540-69788-6
eBook Packages: Springer Book Archive