GENERATIVE AND ADAPTIVE METHODS IN PERFORMANCE PROGRAMMING
Abstract
Performance programming is characterized by the need to structure software components to exploit the context of use. Relevant context includes the target processor architecture, the available resources (number of processors, network capacity), prevailing resource contention, the values and shapes of input and intermediate data structures, the schedule and distribution of input data delivery, and the way the results are to be used. This paper concerns adapting to dynamic context: adaptive algorithms, malleable and migrating tasks, and application structures based on dynamic component composition. Adaptive computations use metadata associated with software components — performance models, dependence information, data size and shape. Computation itself is interwoven with planning and optimizing the computation process, using this metadata. This reflective nature motivates metaprogramming techniques. We present a research agenda aimed at developing a modelling framework which allows us to characterize both computation and dynamic adaptation in a way that allows systematic optimization.
References
- , Euro-Par 2002 ,
LNCS 2400 , eds.Burkhard Monien and Rainer Feldmann ( Springer Verlag , 2002 ) . Google Scholar - IEEE Transactions on Software Engineering 26(3), 276 (2000). Crossref, ISI, Google Scholar
- J. Dongarra, A. Lumsdaine, R. Pozo, and K. Remington. A sparse matrix library in C++ for high performance architectures. In Proceedings of the Second Object Oriented Numerics Conference, 1992 . Google Scholar
-
Peter Liniker , Olav Backmann and Paul. H. J. Kelly , Euro-Par 2002 ,LNCS 2400 ( Springer Verlag , 2002 ) . Google Scholar -
Michael J. Quinn , Parallel Programming in C with MPI and OpenMP ( McGraw Hill , 2003 ) . Google Scholar Olav Beckmann and Paul H. J. Kelly , LCR98: Languages, Compilers and Run-time Systems for Scalable Computers,LNCS 1511 (Springer-Verlag, 1998) pp. 123–138. Crossref, Google Scholar- , Constructive Methods for Parallel Programming ,
Advances in Computation: Theory and Practice , eds.Sergei Gorlatch and Christian Lengauer ( Nova Science , 2000 ) . Google Scholar -
John Hatcliff , Torben Mogensen and Peter Thiemann (eds.) , Partial Evaluation. Practice and Theory, DIKU 1998 International Summer School, Copenhagen, Denmark, June 29 - July 10, 1998 ,LNCS 1706 ( Springer Verlag , 1999 ) . Google Scholar - SIGPLAN Not. 32(12), 163 (1997). Crossref, ISI, Google Scholar
Walid Taha and Tim Sheard , Proceedings of the 1997 ACM SIGPLAN Symposium on Partial evaluation and semantics-based program manipulation (ACM Press, 1997) pp. 203–207. Crossref, Google Scholar- Intel Corporation. Intel Pentium 4 and Intel Xeon Processor Optimization Reference Manual, 1999–2002. Available via developer.intel.com . Google Scholar
-
Jack J. Donggara and Clint R. Whaley , Proceedings of SC'98 Conference ( IEEE , 1998 ) . Google Scholar Matteo Frigo and Steven G. Johnson , Proc. 1998 IEEE Intl. Conf. Acoustics Speech and Signal Processing 3 (IEEE, 1998) pp. 1381–1384. Google Scholar- G. G. Fursin, M. F. P. O'Boyle, and P. M. W. Knijnenburg. Evaluating iterative compilation. In Proceedings of the 15th Workshop on Languages and Compilers for Parallel Computers (LCPC'02), pages 305–315, 2002 . Google Scholar
- IEEE Computer (1996). Google Scholar
-
Markus Schordan and Daniel Quinlan , Joint Modular Languages Conference (JMLC'03) ,LNCS 2789 ( Springer Verlag , 2003 ) . Google Scholar Tim Sheard , 2nd Intl. Workshop on Semantics, Applications, and Implementation of Program Generation,LNCS 2196 (Springer Verlag, 2001) pp. 2–44. Crossref, Google Scholar- Gilad Brache et al. JSR 175: A metadata facility for the Java programming language, September 2004. Java Community Process (http://www.jcp.org) . Google Scholar
- Microsoft. NET framework developer's guide: Extending metadata using attributes, 2004. (http://msdn.microsoft.com) . Google Scholar
- J. Parallel and Distributed Computing 50(1-2), (1998). Google Scholar
-
Rob. H. Bisseling , Parallel Scientific Computation: A Structured Approach using BSP and MPI ( Oxford University Press , 2004 ) . Crossref, Google Scholar - Ravi Ponnusamy, Joel H. Saltz, and Alok N. Choudhary. Runtime compilation techniques for data partitioning and communication schedule reuse. In Supercomputing, pages 361–370, 1993 . Google Scholar
- Journal of Symbolic Computation 22 (1996). Google Scholar
- Jon B. Weissman and Andrew S. Grimshaw. Network partitioning of data parallel computations. In Third IEEE International Symposium on High Performance Distributed Computing (HPDC), August 1994 . Google Scholar
- , Middleware 2003: ACM/IFIP/USENIX International Middleware Conference ,
LNCS 2672 , eds.D. Schmidt and M. Endler ( Springer Verlag , 2003 ) . Google Scholar - Journal of Parallel and Distributed Computing (1996). Google Scholar
- Computer Languages 19(2), (1999). Google Scholar
- J. Hau, W. Lee, and Steven Newhouse. Autonomic service adaptation using onto-logical annotation. In 4th International Workshop on Grid Computing, Grid 2003, November 2003 . Google Scholar
- Parallel Processing Letters 12(2), 157 (2002). Link, Google Scholar
-
Todd L. Veldhuizen and Dennis Gannon , Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO'98) ( SIAM , Philadelphia, PA, USA , 1998 ) . Google Scholar -
Ken Kennedy , 14th International Parallel and Distributed Processing Symposium (IPDPS'00) ( Springer Verlag , 2000 ) . Google Scholar - Parallel Processing Letters 11(4), (2001). Google Scholar
- Wayne Kelly and William Pugh. A framework for unifying reordering transformations. Technical Report CS-TR-3193, Dept. of Computer Science, University of Maryland, 1993 . Google Scholar
-
C. Bastoul , Workshop on Languages and Compilers for Parallel Computing (LCPC'03) ( Springer Verlag , 2003 ) . Google Scholar -
Michelle Mills Strout , Larry Carter and Jeanne Ferrante , Programming Language Design and Implementation (PLDI) ( ACM , 2003 ) . Google Scholar


