An extended set of FORTRAN basic linear algebra subprograms
ACM Transactions on Mathematical Software (TOMS)
LAPACK: a portable linear algebra library for high-performance computers
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Systematic concurrent object-oriented programming
Communications of the ACM
Object-oriented runtime support for complex distributed data structures
Object-oriented runtime support for complex distributed data structures
A flexible operation execution model for shared distributed objects
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Frameworks = (components + patterns)
Communications of the ACM
Models and languages for parallel computation
ACM Computing Surveys (CSUR)
UML distilled (2nd ed.): a brief guide to the standard object modeling language
UML distilled (2nd ed.): a brief guide to the standard object modeling language
The C++ Programming Language
Computational Partial Differential Equations: Numerical Methods and Diffpack Programming
Computational Partial Differential Equations: Numerical Methods and Diffpack Programming
Distributed Memory Compiler Design For Sparse Problems
IEEE Transactions on Computers
An Overview of a Compiler for Scalable Parallel Machines
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
Algorithmic Skeletons for Adaptive Multigrid Methods
IRREGULAR '95 Proceedings of the Second International Workshop on Parallel Algorithms for Irregularly Structured Problems
Run-Time Techniques for Parallelizing Sparse Matrix Problems
IRREGULAR '95 Proceedings of the Second International Workshop on Parallel Algorithms for Irregularly Structured Problems
A "Framework" for Object Oriented Frameworks Design
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Hi-index | 0.00 |
The ideal goal of not having the user dealing with concurrency aspects has proven hard to achieve in the context of system (compiler, run-time) supported automatic parallelization for general purpose languages and applications. More focused approaches, of automatic parallelization for numerical applications with a regular structure have been successful. Still, they cannot fully handle irregular applications (e.g the solution of Partial Differential Equations (PDEs) for general geometries).This paper describes a new approach to the parallelization of scientific codes. We make use of the object-oriented and generic programming techniques in order to make parallelism implicit (invisible for the user). Instead of generating a new solution based on a existing one, we take advantage of the application characteristics in order to capture the concurrency infrastructure and to provide part of the solution process to the user. Our goal is to achieve "transparent" concurrency by giving the user the illusion of a sequential programming environment. We isolate the user from the tedious aspects of geometrical data representation, communication patterns computation and communication generation in the process of writing a parallel solver for PDEs. The user concentrates on providing only the local numerical computations which is a straight forward mapping from the numerical algorithm.Furthermore, we describe a system that demonstrates our approach. We address the issues of efficiency for our system and we show that our approach is scalable.