7
DOI: 10.1007/s10766-005-4785-6 International Journal of Parallel Programming, Vol. 33, Nos. 2/3, June 2005 (© 2005) The Next Generation Software Program Frederica Darema 1 The papers in this issue provide an overview of the research fostered by the NSF Next Generation Software (NGS) Program 2 , and some representative projects funded under the program. The NGS Program was announced in October of 1998, and with several calls for proposals between 1998 and 2004 has supported research in two broad technical thrusts. One program compo- nent has supported research for developing Technology for Performance Engi- neered Systems (TPES) for the Design, Management and Runtime Support of Computing Systems and Applications. The second program component, Complex Application Development and runtime Support Systems (CADSS) has sought to create new systems’ software technology, including enhanced compiler capabilities, and tools for the development, runtime support and dynamic composition of complex applications executing on complex comput- ing platforms, such as Computational Grids, assemblies of embedded systems and sensor systems, as well as high-end platforms (Grids-in-a-Box) and spe- cial purpose processing systems. Work along the directions of the NGS Pro- gram presently continues under the successor program, the NSF Computer Systems Research Program. KEY WORDS: Next Generation Software Program; TPES; CADSS. 1 Computer and Information Science and Engineering Directorate, National Science Founda- tion, Arlington, VA 22230, USA. E-mail: [email protected] 2 The NSF NGS Program was developed and has been managed by the author. The NGS Pro- gram Announcement and the list of current awards can be found at: http://www.nsf.gov/cgi- bin/getpub?nsf00134, and under the NGS Program in http://www.nsf.gov/home/grants awards.htm. The two components (TPES and CADSS) of the NGS program have been incor- porated in the recently announced Computer Systems Research (CSR) Program (NSF04-609, http://www.nsf.gov/pubsys/ods/getpub.cfm?ods key=nsf04609), respectively as the SMA and AES components. 73 0885-7458/05/0600-0073/0 © 2005 Springer Science+Business Media, Inc.

The Next Generation Software Program

Embed Size (px)

Citation preview

Page 1: The Next Generation Software Program

DOI: 10.1007/s10766-005-4785-6International Journal of Parallel Programming, Vol. 33, Nos. 2/3, June 2005 (© 2005)

The Next Generation SoftwareProgram

Frederica Darema1

The papers in this issue provide an overview of the research fostered by theNSF Next Generation Software (NGS) Program2, and some representativeprojects funded under the program. The NGS Program was announced inOctober of 1998, and with several calls for proposals between 1998 and 2004has supported research in two broad technical thrusts. One program compo-nent has supported research for developing Technology for Performance Engi-neered Systems (TPES) for the Design, Management and Runtime Supportof Computing Systems and Applications. The second program component,Complex Application Development and runtime Support Systems (CADSS)has sought to create new systems’ software technology, including enhancedcompiler capabilities, and tools for the development, runtime support anddynamic composition of complex applications executing on complex comput-ing platforms, such as Computational Grids, assemblies of embedded systemsand sensor systems, as well as high-end platforms (Grids-in-a-Box) and spe-cial purpose processing systems. Work along the directions of the NGS Pro-gram presently continues under the successor program, the NSF ComputerSystems Research Program.

KEY WORDS: Next Generation Software Program; TPES; CADSS.

1Computer and Information Science and Engineering Directorate, National Science Founda-tion, Arlington, VA 22230, USA. E-mail: [email protected]

2The NSF NGS Program was developed and has been managed by the author. The NGS Pro-gram Announcement and the list of current awards can be found at: http://www.nsf.gov/cgi-bin/getpub?nsf00134, and under the NGS Program in http://www.nsf.gov/home/grantsawards.htm. The two components (TPES and CADSS) of the NGS program have been incor-porated in the recently announced Computer Systems Research (CSR) Program (NSF04-609,http://www.nsf.gov/pubsys/ods/getpub.cfm?ods key=nsf04609), respectively as the SMA andAES components.

73

0885-7458/05/0600-0073/0 © 2005 Springer Science+Business Media, Inc.

Page 2: The Next Generation Software Program

74 Darema

1. INTRODUCTION

The objective of the NSF Next Generation Software (NGS) Programhas been to develop systematic methods and technology for supportingcomplex computational environments where the computing, communica-tion and data resources are dynamic, and require dynamic and adaptiveruntime support and systematic performance and dependability analysismethods. The NGS Program sought to develop such capabilities by fos-tering research on Performance Engineered Systems and Complex Appli-cation Development and runtime Support Systems (CADSS). The NGSProgram has emphasized from the outset the need for multidisciplinaryresearch spanning several sub-areas in computer sciences, and this empha-sis is reflected in the scope of the research areas fostered and the majorityof the projects supported under the program. In addition the program hasplaced emphasis in driving and validating the advances in computer sci-ences technologies with end-user applications. The program has had sev-eral calls for proposals, from 1998 to 2004, and has received altogetherover 350 submissions, out of which it has funded about 60 projects, rang-ing in duration from 2 to 5 years, with each project typically involving 2–5researchers.

The Technology for Performance Engineered Systems (TPES) com-ponent is aimed to enable systematic methods for the Design, Manage-ment and Runtime Support of Computing Systems and Applications, andemphasizing a system level approach for such analysis and prediction. Toenable that, the program supports development of systematic methodol-ogies and tools for analysis and prediction of the performance of appli-cations, of hardware platforms, and of system software. The approachfostered by the NGS program is to consider the computing system interms of an architectural framework, consisting of the applications, thesystem software and the underlying hardware layers. Key elements of themethodologies emphasized include development of multi-level and multi-modal methods and tools for describing the application software, thesystem software, and the system hardware. Such models and tools encom-pass modeling and simulation of components at multiple levels of detailand abstraction, as well as incorporation of performance measurements.Additional key capabilities that have been fostered are the ability to com-bine these multi-level/multi-modal methods and tools into “performanceframeworks” (in a “plug-and-play” fashion) as needed for understanding,analysis, and prediction of behavior and performance of individual compo-nents or layers of the system, as well as the system as a whole. Thus themethodology fostered by the NGS program enables component-level andsystem-level performance analysis and prediction.

Page 3: The Next Generation Software Program

The Next Generation Software Program 75

The (CADSS) component of the program fosters new research intwo key technology areas: new compiling technology and new applica-tion composition technology, which will enable applications to effectivelyexecute under dynamic runtime resource availability as is manifested incomplex and heterogeneous Grid and High-End platforms and their com-puting environments. This kind of new compiling system (the RuntimeCompiling System (RCS)) will have the ability to adaptively optimize themapping of applications on the underlying dynamic platform assembly.The current directions for compiler technology go beyond those developedfor parallel and distributed computing. In the RCS technology, part ofthe compiler gets embedded in the runtime, and a dynamic interactionis established between the compiler and the underlying system resourcemanagers as well as measurements and performance descriptors of theapplications and the underlying hardware and software systems, so thatinformation on the underlying resources is integrated with the (traditionalstatic) compiler analysis. The diagram in Fig. 1 shows conceptual elementsof RCS. The NGS program also fosters the development of novel pro-gramming models technology, in conjunction of imparting to the RCStechnology the desired capabilities. In addition, the NGS program hasadvocated the need for new technology and development of capabilitiesfor knowledge-based, RCS compiler-invoked dynamic assembly of applica-tion components, and has supported research along these directions. NGS

DynamicallyLink

&Execute

ApplicationModel

Application Program

ApplicationIntermediate

Representation

CompilerFront-End

CompilerBack-End

Sw/HwArchitecture

Models

DistributedProgramming

Model

ApplicationComponents

Distributed Operating Systems

Dynamic AnalysisSituation

LaunchApplication (s)

Adaptive Grids/GiBs platforms

Fig. 1. Runtime Compiling System and Application Composition Architecture.

Page 4: The Next Generation Software Program

76 Darema

has also fostered research for the integration of these technologies intoapplication support environments, and demonstration and validation ofthe technologies on important production-class applications.

NGS has emphasized synergistic development across component andsubcomponent areas in the program (Fig. 2), and the exploitation ofadvances in one subcomponent to enable advances in the capabilities ofthe other components. The kinds of projects that have been funded overthe years span in a balanced way these components and subcomponents.

Work along the directions of the NGS Program presently continuesunder the successor program, the NSF Computer Systems Research Pro-gram.

2. REPRESENTATIVE PROJECTS

The rest of the papers presented in this issue represent a subset ofongoing research projects that had been funded under the NGS Program.The papers provide a sample of the kind of research projects that areaddressing a number of aspects of the technical challenges mentionedabove and are advancing technology along the directions envisioned in theNGS program. These and other NGS projects have been presented at theseries of NGS Workshops organized in conjunction with the InternationalConference on Parallel and Distributed Systems (IPDPS). Every year arepresentative set of the funded projects was presented, and the projects inthis IJPP Special Issue reflect those that were presented in the IPDPS2004

Application Composition

Systems

Performance Engineered

Systems

Runtime Compiler Systems

Fig. 2. Synergism between Performance Engineering Technologies, and Compiling Systemand Application Composition Technologies.

Page 5: The Next Generation Software Program

The Next Generation Software Program 77

NGS Workshop. The broader set of NGS funded projects covers in a bal-anced way all the areas included in the scope of the NGS Program.

The projects discussed in Refs. 1–8 address technologies supportingdynamic runtime environments. In Ref. 1; the GRADS project, led byKen Kennedy, comprehensively reflects the program development and run-time support framework envisioned by the NGS system in Fig. 1; theparticular paper in Ref. 1 discusses recent advances in the project ondynamic scheduling, and using several test cases to validate these newapproaches. The paper in Ref. 2 describes advances enabled in the pro-ject led by Srinidhi Varadarajan where the Weaves Framework providesan alternative framework for compositional development of large andcomplex codes, and it provides runtime support for reconfigurable pro-gramming capabilities including deadlock detection and recovery, faulttolerance, load balancing coordination, and transparent check-pointingthrough the Deja vu system also developed by the investigators. In Ref.3 the project, led by Jack Davidson and Mary Lou Soffa,3 develops effi-cient methods to enable software dynamic translation technology for mod-ifying programs at runtime; such capabilities are crucial in enabling thekind of dynamic runtime support objectives of the NGS program. Theproject, led by Manish Parashar and Salim Hariri(4), develops methodsfor enabling dynamic resource discovery and resource allocation, partition-ing and mapping application tasks, data-distribution, communication andcoordination and load balancing of application program tasks, of appli-cations with dynamic requirements like adaptive mesh refinement algo-rithms, executing on grid environments. Efforts pursued in the project ledby Mary Hall,(5) enable more effective compiler approaches that includeexperimentation with case studies and development of empirical optimi-zation methods, and which eventually will lead into approaches for auto-mating such optimizations. Generic programming methods can becomeuseful approaches for dynamic composability of applications and enableprogramming generality and efficiency – typically two opposing forces;the project, led by Andrew Lumsdaine,(6) develops syntactic and semanticmethods to make such approaches more effective. A project, led by SamanAmarasinghe,(7) develops language and compiler technology for classesof high-performance streaming applications that can exploit new paral-lel architectures like the tiled-processor systems. In Ref. 8, the presentedmethods and a software framework to enable automation of selection of

3When this author presented the newly announced NGS program at the SPEC Workshopon Performance Evaluation with Realistic Applications, January 26–28, 1999, Dr. DaveKuck, said: “Frederica you are opening new directions in compiler technology, but youraise the bar, and I hope you are planning to support this kind of research of a sustainedbasis and for some time”. This author promised to do the best possible!

Page 6: The Next Generation Software Program

78 Darema

algorithms suitable to the application problem and the underlying resourcecharacteristics, and dynamically discover resources and map such compo-nents; this work is led by Vistor Eijkhout and Jack Dongarra, and pro-vides an example of the kind of technologies developed as part of theapplication composition and runtime support emphasis of the NGS pro-gram.

Projects(9−12) pertain research supported under the TPES compo-nent of the NGS program. In Ref. 9 the project, led by David August,develops a composable modeling framework to model the performance ofa computing system including all the layers: the hardware and systemssoftware and the applications. In Ref. 10, the project led by Laxmikant(Sanjay) Kale develops modeling and simulation environments for predic-tion of the performance of applications executing on large scale compu-tational platforms; such methods are useful in predicting the performanceof applications under design as well as their performance on future plat-forms, and analyze performance characteristics of future platforms. Oneof the aspects of dynamic partitioning and optimized mapping in het-erogeneous computational environments encompassing machines of vari-ous architectures, are effective compiler back-ends for a wide variety ofmachines, and understanding effects on performance of various optimiza-tions. Simulations are important tools to test and analyze effects of suchoptimizations. In Ref. 11, the project led by Elliot Moss is developing alanguage (CISL) for automatic generation of such simulators and back-ends. In a boot-strapping way the Ref. 12, led by Ron Cytron, uses re-configurable architectures, thus employing efficient hardware methods, toanalyze and understand performance of applications; in turn the projectuses such information on the applications to determine the architectureof reconfigurable (FPGA-based) systems to optimize applications perfor-mance. Such methods provide greater flexibility than standard customizedembedded processor approaches, and better performance than general pur-pose computers in for example satisfying time constraints for real-timeapplications.

3. SUMMARY

The NGS program has created new directions in systems software,such as advanced compiler technology for automating and dynamicallyoptimizing the mapping of applications on heterogeneous underlying plat-forms and dynamic resource availability conditions, enabling dynamiccomposition of applications to respond to such dynamic underlyingresources, and systematic methods for system level modeling and anal-ysis of computing and communications systems. The projects presented

Page 7: The Next Generation Software Program

The Next Generation Software Program 79

in this special issue represent a subset of many NGS supported projects,many of whom have made pioneering contributions, and impacting othertechnology areas. The research advances and technologies sought to beenabled with the NGS Program, are quite challenging(3) but the researchand industry community are responding well to the challenge.

REFERENCES

1. K. Kennedy, F. Berman, H. Casanova, A. Chien, K. Cooper, H. Dail, A. Dasgupta,W. Deng, J. Dongarra, L. Johnson, C. Koelbel, B. Liu, X. Liu, A. Mandal, G. Marin,M. Mazina, J. Mellor-Crummey, C. Mendes, A. Olugbile, M. Patel, D. Reed, Z. Shi,O. Sievert, H. Xia, and A. YarKhan, et al., New Grid Scheduling and ReschedulingMethods in the GrADS Project; this IJPP Special Issue.

2. Srinidhi Varadarajan and Joy Mukherjee, Weaves: A Framework for ReconfigurableProgramming; this IJPP Special Issue.

3. Jack W. Davidson, Mary Lou Soffa, Naveen Kumar, Bruce R. Childers, and DanielWilliams, Compile-Time Planning for Overhead Reduction in Software Dynamic Trans-lators; this IJPP Special Issue.

4. Manish Parashar, Sumir Chandra, Jingmei Yang, Yeliang Zhang, and Salim Hariri,Investigating Autonomic Runtime Management Strategies for SAMR Applications; thisIJPP Special Issue.

5. Yoon-Ju Lee, Pedro C. Diniz, Mary W. Hall and Robert Lucas, Empirical Optimiza-tion for a Sparse Linear Solver: A Case Study; this IJPP Special Issue.

6. Andrew Lumsdaine, Douglas Gregor, Jaakko Jarvi, Mayuresh Kulkarni, David Musserand Sibylle Schupp, Generic Programming and High-Performance Libraries; this IJPPSpecial Issue.

7. Saman Amarasinghe, Michael I. Gordon, Michal Karczmarek, Jasper Lin, DavidMaze, Rodric M. Rabbah, and William Thies, Language and Compiler Design forStreaming Applications; this IJPP Special Issue.

8. Victor Eijkhout, Erika Fuentes, Thomas Eidson, and Jack Dongarra, The ComponentStructure of a Self-Adapting Numerical Software System; this IJPP Special Issue.

9. David I. August, Sharad Malik, Li-Shiuan Peh, Vijay Pai, Manish Vachharajani, andPaul Willmann, Achieving Structural and Composable Modeling of Complex Systems;this IJPP Special Issue.

10. Laxmikant V. Kale, Gengbin Zheng, Terry Wilmarth, and Praveen Jagadishprasad,Simulation – Based Performance Prediction for Large Parallel Machines; this IJPPSpecial Issue.

11. J. Eliot B. Moss, Trek Palmer, Timothy Richards, Edward K. Walters II, andCharles C. Weems, CISL: A Class-based Machine Description Language forCo-generation of Compilers and Simulators; this IJPP Special Issue.

12. Ron K. Cytron, Shobana Padmanabhan, Phillip Jones, David V. Schuehler, Scott J.Friedman, Praveen Krishnamurthy, Huakai Zhang, Roger Chamberlain, Jason Frittsand John W. Lockwood, Extracting and Improving Microarchitecture Performance onReconfigurable Architectures; this IJPP Special Issue.