An Object-Oriented Framework for Supercomputing
Résumé
Scientific programmers are eager to take advantage of the computational power offered by Distributed Computing Systems (DCSs) but are generally reluctant to undertake the porting of their application programs onto such machines. The DCSs commercially available today are indeed widely believed to be difficult to use, which should not be a surprise because they are traditionally programmed with software tools dating back to the days of punch cards and paper tape. We claim that, provided modern object-oriented technologies are used, these computers can be programmed easily and efficiently. We propose a framework where the tricky parallel codes can be encapsulated in object-oriented software components that can be reused, combined, and customized in confidence by application programmers. We propose to use a kind of parallelism known as data-parallelism, encapsulated within classes of a purely sequential object-oriented language (Eiffel), using the SPMD (Single Program Multiple Data) programming model. We define a set of methodological rules to help a programmer design and exploit parallel software components within this framework. We illustrate our approach with the example of PALADIN, an object-oriented library devoted to linear algebra computation on DCSs. PALADIN relies on widely advertised object-oriented features to help a numerical programmer develop or parallelize application programs, following the guidelines of modern software engineering. Most notably, modularity and encapsulation are used to hide data distribution and code parallelization within classes presenting sequential interfaces, while inheritance allows a transparent reuse of basic parallel patterns in new applications. We discuss the implementation of a demonstrator of such a library as well as performance related aspects.
Origine | Fichiers produits par l'(les) auteur(s) |
---|