Performance is one of the key factors of improving productivity in high performance computing (HPC). In this paper we discuss current studies in the field of performance measurement of codes captured in classroom experiments for the high productivity computing project (HPCS). We give two examples of measurements introducing two new hypotheses: spending more effort doesn't always result in improvement of performance for novices; the use of higher level MPI functions promises better performance for novices. We also present a tool - the automated performance measurement system (APMS). APMS helps to partially automate the measurement of the performance of a set of parallel programs with several inputs. The design and implementation of the tool is flexible enough to allow other researchers to conduct similar studies.
{"title":"Performance Measurement of Novice HPC Programmers Code","authors":"R. Alameh, N. Zazworka, J. Hollingsworth","doi":"10.1109/SE-HPC.2007.4","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.4","url":null,"abstract":"Performance is one of the key factors of improving productivity in high performance computing (HPC). In this paper we discuss current studies in the field of performance measurement of codes captured in classroom experiments for the high productivity computing project (HPCS). We give two examples of measurements introducing two new hypotheses: spending more effort doesn't always result in improvement of performance for novices; the use of higher level MPI functions promises better performance for novices. We also present a tool - the automated performance measurement system (APMS). APMS helps to partially automate the measurement of the performance of a set of parallel programs with several inputs. The design and implementation of the tool is flexible enough to allow other researchers to conduct similar studies.","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132656875","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The Trilinos Project is an effort to facilitate the design, development, integration and on-going support of mathematical solver libraries. Efforts range from research and development of new algorithms to proof-of-concept of new and existing algorithms to eventual production use of solver libraries on a variety of computer systems across a broad set of applications. Software quality assurance and engineering (SQA/SQE) play an integral role in the project. Although many formal software lifecycle models exist, no single model can address all Trilinos developer needs since our requirements for rigor change as a particular Trilinos package matures. In this report we present a three-phase promotional lifecycle model that closely matches the needs and realities of Trilinos development.
{"title":"The Trilinos Software Lifecycle Model","authors":"J. Willenbring, M. Héroux, R. Heaphy","doi":"10.1109/SE-HPC.2007.5","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.5","url":null,"abstract":"The Trilinos Project is an effort to facilitate the design, development, integration and on-going support of mathematical solver libraries. Efforts range from research and development of new algorithms to proof-of-concept of new and existing algorithms to eventual production use of solver libraries on a variety of computer systems across a broad set of applications. Software quality assurance and engineering (SQA/SQE) play an integral role in the project. Although many formal software lifecycle models exist, no single model can address all Trilinos developer needs since our requirements for rigor change as a particular Trilinos package matures. In this report we present a three-phase promotional lifecycle model that closely matches the needs and realities of Trilinos development.","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123009638","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
I. Gorton, D. Chavarría-Miranda, M. Krishnan, J. Nieplocha
Event services based on publish-subscribe architectures are well established components of distributed computing applications. Recently, an event service has been proposed as part of the common component architecture (CCA) for high-performance computing applications. In this paper we describe our experiences investigating implementation options for the CCA event service that exploit interprocess communications mechanisms commonly used on HPC platforms. The aim of our work is to create an event service that supports the well-known software engineering advantages of publish-subscribe architectures, and provides performance levels approaching those achievable using more primitive message-passing mechanisms such as MPI.
{"title":"A High-Performance Event Service for HPC Applications","authors":"I. Gorton, D. Chavarría-Miranda, M. Krishnan, J. Nieplocha","doi":"10.1109/SE-HPC.2007.1","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.1","url":null,"abstract":"Event services based on publish-subscribe architectures are well established components of distributed computing applications. Recently, an event service has been proposed as part of the common component architecture (CCA) for high-performance computing applications. In this paper we describe our experiences investigating implementation options for the CCA event service that exploit interprocess communications mechanisms commonly used on HPC platforms. The aim of our work is to create an event service that supports the well-known software engineering advantages of publish-subscribe architectures, and provides performance levels approaching those achievable using more primitive message-passing mechanisms such as MPI.","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128791510","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The nature of HPC application development encourages ad hoc design and implementation, rather than formal requirements analysis and design specification as is typical in software engineering. However, we cannot simply expect HPC developers to adopt formal software engineering processes wholesale, even while there is a need to improve software structure and quality to ensure future maintainability. Therefore, we propose tools that HPC developers can use at their discretion to obtain feedback on the structure and quality of their codes. This feedback would come in the form of code quality metrics and analyses, presented when necessary in intuitive and interactive visualizations. This paper summarizes our implementation of just such a tool, which we apply to a standard HPC benchmark as "proof-of-concept."
{"title":"Tool Support for Inspecting the Code Quality of HPC Applications","authors":"T. Panas, Dan Quinlan, Richard Vuduc","doi":"10.1109/SE-HPC.2007.8","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.8","url":null,"abstract":"The nature of HPC application development encourages ad hoc design and implementation, rather than formal requirements analysis and design specification as is typical in software engineering. However, we cannot simply expect HPC developers to adopt formal software engineering processes wholesale, even while there is a need to improve software structure and quality to ensure future maintainability. Therefore, we propose tools that HPC developers can use at their discretion to obtain feedback on the structure and quality of their codes. This feedback would come in the form of code quality metrics and analyses, presented when necessary in intuitive and interactive visualizations. This paper summarizes our implementation of just such a tool, which we apply to a standard HPC benchmark as \"proof-of-concept.\"","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"223 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131425430","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
D. Hudak, N. Ludban, V. Gadepally, A. Krishnamurthy
Software engineering studies have shown that programmer productivity is improved through the use of computational science integrated development environments (or CSIDE, pronounced "sea side ") such as MATLAB. ParaM is a CSIDE distribution which provides parallel execution of MATLAB scripts for HPC systems. ParaM runs on a range of processor architectures (e.g., x86, x64, Itanium, PowerPC) and its MPI binding, known as bcMPI, supports a number of interconnect architectures (e.g., Myrinet and Infinband). In this paper, we describe our goals for the ParaM project, the current status of the project and report on initial software engineering successes and challenges.
{"title":"Developing a Computational Science IDE for HPC Systems","authors":"D. Hudak, N. Ludban, V. Gadepally, A. Krishnamurthy","doi":"10.1109/SE-HPC.2007.3","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.3","url":null,"abstract":"Software engineering studies have shown that programmer productivity is improved through the use of computational science integrated development environments (or CSIDE, pronounced \"sea side \") such as MATLAB. ParaM is a CSIDE distribution which provides parallel execution of MATLAB scripts for HPC systems. ParaM runs on a range of processor architectures (e.g., x86, x64, Itanium, PowerPC) and its MPI binding, known as bcMPI, supports a number of interconnect architectures (e.g., Myrinet and Infinband). In this paper, we describe our goals for the ParaM project, the current status of the project and report on initial software engineering successes and challenges.","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123964059","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Emerging challenges to productivity are not well covered by traditional methods for evaluating HPC programs, systems, and practices. The common measure of merit widely put forward in High-Performance Computing (HPC), high computational performance as measured in floating-point operations per second (FLOPs), does not account for many bottlenecks in real HPC workflow that increase time to solution which are unaffected by performance changes. In this paper we discuss these bottlenecks, show an approach to analyzing productivity based on measurement and modeling of HPC workflow, and present plans for measurement and experimentation tools to study and improve productivity in HPC projects with large computational and data requirements.
{"title":"Beyond Performance Tools: Measuring and Modeling Productivity in HPC","authors":"M. O. McCracken, N. Wolter, A. Snavely","doi":"10.1109/SE-HPC.2007.2","DOIUrl":"https://doi.org/10.1109/SE-HPC.2007.2","url":null,"abstract":"Emerging challenges to productivity are not well covered by traditional methods for evaluating HPC programs, systems, and practices. The common measure of merit widely put forward in High-Performance Computing (HPC), high computational performance as measured in floating-point operations per second (FLOPs), does not account for many bottlenecks in real HPC workflow that increase time to solution which are unaffected by performance changes. In this paper we discuss these bottlenecks, show an approach to analyzing productivity based on measurement and modeling of HPC workflow, and present plans for measurement and experimentation tools to study and improve productivity in HPC projects with large computational and data requirements.","PeriodicalId":236073,"journal":{"name":"Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC '07)","volume":"128 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126265302","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}