Skip to main content

A compiler abstraction for machine independent parallel communication generation

  • Synchronization and Communication
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1997)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Power Challenge. Technical report, Silicon Graphics, Inc., 1995.

    Google Scholar 

  2. Sarita V. Adve and Kouroush Gharachorloo. Shared memory consistency models: A tutorial. Technical Report 95/7, Digital Western Research Laboratory, 1995.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. Ray Barriuso and Allan Knies. SHMEM user's guide for C. Technical report, Cray Research Inc., June 1994.

    Google Scholar 

  5. Brian N. Bershad, Matt J. Zekausaka, and Wayne A. Sawdon. The Midway distributed shared memory system. In CompCon Conference, February 1993.

    Google Scholar 

  6. Kenneth Cameron, Lyndon J. Clarke, and A. Gordon Smith. CRI/EPCC MPI for CRAY T3D. In 1st European Cray T.?D Workshop, September 1995.

    Google Scholar 

  7. L. F. Cannon. A Cellular Computer to Implement the Kalman Filter Algorithm. PhD thesis, Montana State University, 1969.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. Intel Corporation. Paragon User's Guide. 1993.

    Google Scholar 

  11. W. Crowley, C. P. Hendrickson, and T. I. Luby. The Simple code. Technical Report UCID-17715, Lawrence Livermore Laboratory, 1978.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Adam Belguelin et al. A user's guide to PVM. Technical report, Oak Ridge National Laboratories, 1991.

    Google Scholar 

  14. William Gropp and Ewing Lusk. User's guide for mpich, a portable implementation of MPI. Technical report, Argonne National Laboratory, 1996.

    Google Scholar 

  15. Cray Research Inc. Cray T3D System Architecture Overview Manual. Mendota Heights, MN, 1993.

    Google Scholar 

  16. Cray Research Inc. PVM and HeNCE Programmer's Manual. Mendota Heights, MN, 1994. SR-2501 5.0.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. Message Passing Interface Forum. MPI: A Message Passing Interface Standard. June 1995.

    Google Scholar 

  21. Wilkey Richardson, Mary Bailey, and William H. Sanders. Using ZPL to develop a parallel Chaos router simulator. In 1996 Winter Simulation Conference, December 1996.

    Google Scholar 

  22. Prasenjit Saha, Joachim Stadel, and Scott Tremaine. A parallel integration method for solar system dynamics. The Astronomical Journal, 114:409+, July 1997.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Zhiyuan Li Pen-Chung Yew Siddharta Chatterjee Chua-Huang Huang P. Sadayappan David Sehr

Rights and permissions

Reprints 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

Publish with us

Policies and ethics