|
| | | |
Distributed Component Architecture for Scientific Applications
Diaconescu, R.E.
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 an 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. |
Cite as: Diaconescu, R.E. (2002). Distributed Component Architecture for Scientific Applications. In Proc. Fortieth International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia. CRPIT, 10. Noble, J. and Potter, J., Eds. ACS. 81-89. |
(from crpit.com)
(local if available)
|
|