A compile-time meta-level architecture supporting class specific optimization

  • Toshiyuki Takahashi
  • Yutaka Ishikawa
  • Mitsuhisa Sato
  • Akinori Yonezawa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1343)


The MPC++ Version 2 meta-level architecture is proposed. The architecture makes it possible to incorporate new optimizers into a compiler. A library designer can provide an optimizer specific to his class/template library in the library header file. A library user may use such a high-performance library by including the header file. A meta-level programming library, called DMSF, is designed to facilitate programming optimizers. As an example, a distributed array class in a parallel environment is introduced and its optimization program is presented. The optimizer is simple to describe, and it is effective. Evaluation using the CG kernel of NAS Parallel Benchmark shows that the program optimized by the meta-level optimizer runs almost as fast as the equivalent C program.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    P. Beckman, D. Gannon and E. Johnson. Portable Parallel Programming in HPC++. This article is obtained via Scholar
  2. 2.
    F. Bodin, P. Beckman, D. Gannon, J. Golwals, S. Narayana, S. Srinivas and B. Winnicka. Sage++: An Object Oriented Toolkit and Class Library for Building Fortran and C++ Restructuring Tools. In Proceedings of OONSKI'94, 1994.Google Scholar
  3. 3.
    K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In Research Directions in Concurrent Object Oriented Programming. MIT press, 1993.Google Scholar
  4. 4.
    S. Chiba. A Study of a Compile-time Metaobject Protocol. PhD thesis, Graduate School of Science, The University of Tokyo, Japan, 1996.Google Scholar
  5. 5.
    A. Chien, U. Reddy, J. Plevyak and J. Dolby. ICC++ — A C++ Dialect for High Performance Parallel Computing. In Object Technologies for Advanced Software, vol. 1049 of LNCS, pp. 76–95. Springer-Verlag, 1996.Google Scholar
  6. 6.
    S. J. Fink, S. B. Baden and S. R. Kohn. Flexible Communication Mechanisms for Dynamic Structured Applications. In Proceedings of IRREGULAR'96, 1996.Google Scholar
  7. 7.
    J. Gerlach, M. Sato and Y. Ishikawa. Using the C++ Standard Template Library for High Performance Applications. IPSJ SIG Notes, 97(37), pp. 19–24, 1997.Google Scholar
  8. 8.
    Y. Ishikawa, et. al. Design and Implementation of Metalevel Architecture in C++ — MPC++ Approach —. In Proceedings of Reflection'96, pp. 141–154, 1996.Google Scholar
  9. 9.
    Y. Ishikawa, Multi Thread Template Library — MPC++ Version 2.0 Level 0 Document —. Real World Computing Partnership, TR-6012, 1996. This technical report is obtained via Scholar
  10. 10.
    W. G. O'Farrell, F. C. Eigler, S. D. Pullara and G. V. Wilson. ABC++. In Parallel Programming Using C++. MIT press, pp. 1–42, 1996.Google Scholar
  11. 11.
    J. V. W. Reynders, P. J. Hinker, J. C. Cummings, S. R. Atlas, S. Banerjee, W. F. Humphrey, S. R. Karmesin, K. Keahey, M. Srikant and M. Tholburn. POOMA. In Parallel Programming Using C++. MIT press, pp. 547–588, 1996.Google Scholar
  12. 12.
    S. X. Yang, D. Gannon, P. Beckman, J. Gotwals and N. Sundaresan. pC++. In Parallel Programming Using C++. MIT press, pp. 507–545, 1996.Google Scholar

Copyright information

© Springer-Verlag 1997

Authors and Affiliations

  • Toshiyuki Takahashi
    • 1
  • Yutaka Ishikawa
    • 2
  • Mitsuhisa Sato
    • 2
  • Akinori Yonezawa
    • 1
  1. 1.The University of TokyoJapan
  2. 2.Real World Computing PartnershipJapan

Personalised recommendations