Results 1 -
7 of
7
Advances, Applications and Performance of the Global Arrays Shared Memory Programming Toolkit
- INTERN. J. HIGH PERF. COMP. APPLICATIONS
, 2005
"... This paper describes capabilities, evolution, performance, and applications of the Global Arrays (GA) toolkit. GA was created to provide application programmers with an interface that allows them to distribute data while maintaining the type of global index space and programming syntax similar to th ..."
Abstract
-
Cited by 13 (8 self)
- Add to MetaCart
This paper describes capabilities, evolution, performance, and applications of the Global Arrays (GA) toolkit. GA was created to provide application programmers with an interface that allows them to distribute data while maintaining the type of global index space and programming syntax similar to that available when programming on a single processor. The goal of GA is to free the programmer from the low level management of communication and allow them to deal with their problems at the level at which they were originally formulated. At the same time, compatibility of GA with MPI enables the programmer to take advantage of the existing MPI software/libraries when available and appropriate. The variety of applications that have been implemented using Global Arrays attests to the
Exploiting Processor Groups to Extend Scalability of the GA Shared Memory Programming Model
- in proceedings of ACM Computing Frontiers
, 2005
"... Exploiting processor groups is becoming increasingly important for programming next-generation high-end systems composed of tens or hundreds of thousands of processors. This paper discusses the requirements, functionality and development of multilevel-parallelism based on processor groups in the con ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Exploiting processor groups is becoming increasingly important for programming next-generation high-end systems composed of tens or hundreds of thousands of processors. This paper discusses the requirements, functionality and development of multilevel-parallelism based on processor groups in the context of the Global Array (GA) shared memory programming model. The main effort involves management of shared data, rather than interprocessor communication. Experimental results for the NAS NPB Conjugate Gradient benchmark and a molecular dynamics (MD) application are presented for a Linux cluster with Myrinet and illustrate the value of the proposed approach for improving scalability. While the original GA version of the CG benchmark lagged MPI, the processorgroup version outperforms MPI in all cases, except for a few points on the smallest problem size. Similarly, processor groups were very effective in improving scalability of a Molecular Dynamics application.
Automatic code generation for many-body electronic structure methods: The Tensor Contraction Engine
- Molecular Physics
, 2006
"... As both electronic structure methods and the computers on which they are run become increasingly complex, the task of producing robust, reliable, high-performance implementations of methods at a rapid pace becomes increasingly daunting. In this paper we present an overview of the Tensor Contraction ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
As both electronic structure methods and the computers on which they are run become increasingly complex, the task of producing robust, reliable, high-performance implementations of methods at a rapid pace becomes increasingly daunting. In this paper we present an overview of the Tensor Contraction Engine (TCE), a unique effort to address issues of both productivity and performance through automatic code generation. The TCE is designed to take equations for many-body methods in a convenient high-level form and acts like an optimizing compiler, producing an implementation tuned to the target computer system and even to the specific chemical problem of interest. We provide examples to illustrate the TCE approach, including the ability to target different parallel programming models, and the effects of particular optimizations. This paper is dedicated to Prof. Rodney J. Bartlett on the occasion of his 60 th birthday.
Collected Papers
- In Workshop on Components and Frameworks for High Performance Computing (CompFrame
, 2005
"... Abstract. The computer science community has claimed for parallel programming languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to deal with lar ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. The computer science community has claimed for parallel programming languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to deal with large-scale programs. This paper presents the # component model for parallel programming, intended to meet these issues. 1.
Abstractness, Specificity, and Complexity in Software Design
"... Abstraction is one of the fundamental concepts of software design. Consequently, the determination of an appropriate abstraction level for the multitude of artefacts that form a software system is an integral part of software engineering. However, the very nature of abstraction in software design an ..."
Abstract
- Add to MetaCart
Abstraction is one of the fundamental concepts of software design. Consequently, the determination of an appropriate abstraction level for the multitude of artefacts that form a software system is an integral part of software engineering. However, the very nature of abstraction in software design and particularly its interrelation with equally important concepts like complexity, specificity or genericity are not fully understood today. As a step towards a better understanding of the trade-offs involved, this paper proposes a distinction of abstraction into two types that have different effects on the specificity and the complexity of artefacts. We discuss the roles of the two types of abstraction in software design and explain the interrelations between abstractness, specificity, and complexity. Furthermore, we illustrate the benefit of the proposed distinction with multiple examples and describe consequences of our findings for software design activities.
The # Model for Parallel Programming: From Processes to Components with Minimal Performance Overheads
- WORKSHOP ON COMPONENTS AND FRAMEWORKS FOR HIGH PERFORMANCE COMPUTING (COMPFRAME'2005)
, 2005
"... The computer science community has claimed for parallel programming languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to deal with large-scale p ..."
Abstract
- Add to MetaCart
The computer science community has claimed for parallel programming languages and models with a higher level of abstraction and modularity, without performance penalties, that could be used in conjunction with advanced software engineering techniques, and that are suitable to deal with large-scale programs. This paper presents the # component model for parallel programming, intended to meet these issues.
A Type System for Parallel Components
, 905
"... Abstract. The # component model was proposed to improve the practice of parallel programming. This paper introduces a type system for # programming systems, aiming to lift the abstraction and safety of programming for parallel computing architectures by introducing a notion of abstract component bas ..."
Abstract
- Add to MetaCart
Abstract. The # component model was proposed to improve the practice of parallel programming. This paper introduces a type system for # programming systems, aiming to lift the abstraction and safety of programming for parallel computing architectures by introducing a notion of abstract component based on universal and existential bounded quantification. Issues about the implementation of such type system in HPE, a # programming system, are also discussed. 1.

