Scientific software libraries for scalable architectures (original) (raw)
Related papers
High Performance, Scalable Scientific Software Libraries
1993
Massively parallel processors introduces new demands on software systems with respect to performance, scalability, robustness and portability. The increased complexity of the memory systems and the increased range of problem sizes for which a given piece of software is used, poses serious challenges to software developers. The Connection Machine Scienti c Software Library, CMSSL, uses several novel techniques to meet these challenges. The CMSSL contains routines for managing the data distribution and provides data distribution independent functionality. High performance is achieved through careful scheduling of operations and data motion, and through the automatic selection of algorithms at run{time. We discuss some of the techniques used, and provide evidence that CMSSL has reached the goals of performance and scalability for an important set of applications.
CMSSL: a scalable scientific software library
2002
Massively parallel processors introduces new demands on software systems with respect to performance, scalability, robustness and portability. The increased complexity of the memory systems and the increased range of problem sizes for which a given piece of software is used poses serious challenges for software developers. The Connection Machine Scienti c Software Library, CMSSL, uses several novel techniques to meet these challenges. The CMSSL contains routines for managing the data distribution and provides data distribution independent functionality. High performance is achieved through careful scheduling of operations and data motion, and through the automatic selection of algorithms at run{time. We discuss some of the techniques used, and provide evidence that CMSSL has reached the goals of performance and scalability for an important set of applications.
CMSSL: A acalable scientific software library
1993
Massively parallel processors introduces new demands on software systems with respect to performance, scalability, robustness and portability. The increased complexity of the memory systems and the increased range of problem sizes for which a given piece of software is used poses serious challenges for software developers. The Connection Machine Scienti c Software Library, CMSSL, uses several novel techniques to meet these challenges. The CMSSL contains routines for managing the data distribution and provides data distribution independent functionality. High performance is achieved through careful scheduling of operations and data motion, and through the automatic selection of algorithms at run{time. We discuss some of the techniques used, and provide evidence that CMSSL has reached the goals of performance and scalability for an important set of applications.
Language and Compiler Issues in Scalable High Performance Scientific Libraries
1992
Library functions for scalable architectures must be designed to correctly and e ciently support any distributed data structure that can be created with the supported languages and associated compiler directives. Libraries must be designed also to support concurrency in each function evaluation, as well as the concurrent application of the functions to disjoint array segments, known as multiple{instance computation. Control over the data distribution is often critical for locality of reference, and so is the control over the interprocessor data motion. Scalability, while preserving e ciency, implies that the data distribution, the data motion, and the scheduling is adapted to the object shapes, the machine con guration, and the size of the objects relative to the machine size. The Connection Machine Scienti c Software Library is a scalable library for distributed data structures. The library is designed for languages with an array syntax. It is accessible from all supported languages (Lisp, C , CM-Fortran, and Paris (PARallel Instruction Set) in combination with Lisp, C, and Fortran 77). Single library calls can manage both concurrent application of a function to disjoint array segments, as well as concurrency in each application of a function. The control of the concurrency is independent of the control constructs provided in the high{level languages. Library functions operate e ciently on any distributed data structure that can be de ned in the high{level languages and associated directives. Routines may use their own internal data distribution for e ciency reasons. The algorithm invoked by a call to a library function depends upon the shapes of the objects involved, their sizes and distribution, and upon the machine shape and size.
Parallelization of the GNU Scientific Library on heterogeneous systems
2004
In this paper we present our joint efforts towards the development of a parallel version of the GNU Scientific Library for heterogeneous systems. Two well-known operations arising in discrete mathematics and sparse linear algebra allow us to describe the design and the implementation of the library, and to report experimental results on heterogeneous clusters of personal computers.
SEMPA: software engineering for parallel scientific computing
IEEE Concurrency, 1997
The Sempa project brings together researchers from computer science, mechanical engineering, and numerical analysis to define software-engineering methods for the parallelization of existing large-scale software packages in scientific computing. The parallel implementation of TfC, an industrial state-of-the-art computational-fluid-dynamics simulation program, serves as the central case study for defining and evaluating these methods. Sempa researchers have successfully implemented and tested a
The BLAZE language: a parallel language for scientific programming
Microprocessors and Microsystems, 1987
Programming multiprocessor parallel architectures is a complex task. This paper describes a Pascal-like scientific programming language, Blaze, designed to simplify this task. Blaze contains array arithmetic, "forall" loops, and APL-style accumulation operators, which allow natural expression of fine grained parallelism. It also employs an applicative or functional procedure invocation mechanism, which makes it easy for compilers to extract coarse grained parallelism using machine specifiC program restructuring. Thus Blaze should allow one to achieve highly parallel execution on multiprocessor architectures, while still providing the user with conceptually sequential control flow.
SUMA: A Scientific Metacomputer
2000
The development of a metacomputing system for execution of Java bytecode, with additional support for scienti c computing development, is addressed in this article. The goal is to extend the Java Virtual Machine model, by providing both access to distributed high performance resources and execution of native scienti c functions. suma currently executes three kinds of code: sequential Java bytecode, parallel Java bytecode (communicating with mpiJava) and suma native code, which includes standard mathematical libraries like Lapack and PLapack.
SpringerBriefs in Computer Science, 2015
Cover photo generated by Guillermo Marin, Barcelona SuperComputing Center (Spain).