Hostname: page-component-848d4c4894-jbqgn Total loading time: 0 Render date: 2024-06-23T19:12:57.636Z Has data issue: false hasContentIssue false

Distributed Objects for Parallel Numerical Applications

Published online by Cambridge University Press:  15 October 2002

Francoise Baude
Affiliation:
OASIS, Joint Project CNRS, INRIA, University of Nice Sophia Antipolis, 2004 route des Lucioles, BP 93, 06902 Valbonne Cedex, France. Denis.Caromel@sophia.inria.fr.
Denis Caromel
Affiliation:
OASIS, Joint Project CNRS, INRIA, University of Nice Sophia Antipolis, 2004 route des Lucioles, BP 93, 06902 Valbonne Cedex, France. Denis.Caromel@sophia.inria.fr.
David Sagnol
Affiliation:
OASIS, Joint Project CNRS, INRIA, University of Nice Sophia Antipolis, 2004 route des Lucioles, BP 93, 06902 Valbonne Cedex, France. Denis.Caromel@sophia.inria.fr.
Get access

Abstract

The C++// language (pronounced C++parallel) was designed and implemented with the aim of importing reusability into parallel and concurrent programming, in the framework of a mimd model. From a reduced set of rather simple primitives, comprehensive and versatile libraries are defined. In the absence of any syntactical extension, the C++// user writes standard C++ code. The libraries are themselves extensible by the final users, making C++// an open system. Two specific techniques to improve performances of a distributed object language such as C++// are then presented: Shared-on-Read and Overlapping of Communication and Computation. The appliance of those techniques is guided by the programmer at a very high-level of abstraction, so the additional work to yield those good performance improvements is kept to the minimum.

Type
Research Article
Copyright
© EDP Sciences, SMAI, 2002

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Parallel Virtual Machine: a user's guide and tutorial for networked parallel computing. MIT Press (1994).
MPI: The Complete Reference. MIT Press (1998).
G. Agha, Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press (1986).
I. Attali, D. Caromel and M. Oudshoorn, A Formal Definition of the Dynamic Semantics of the Eiffel Language, in Sixteenth Australian Computer Science Conference (ACSC-16), G. Gupta, G. Mohay and R. Topor Eds., Griffith University, February (1993) 109-120.
I. Attali, D. Caromel and M. Russo, Graphical Visualization of Java Objects, Threads, and Locks. IEEE Distributed Systems Online 2 (2001).
Bal, H.E., Kaashoek, M.F., Tanenbaum, A.S. and Jansen, J., Replication techniques for speeding up parallel applications on distributed systems. Concurrency Practice & Experience 4 (1992) 337-355. CrossRef
F. Baude, D. Caromel, N. Furmento and D. Sagnol, Optimizing Metacomputing with Communication-Computation Overlap, in 6th International Conference PaCT 2001, number 2127, V. Malyshkin Ed., LNCS, 190-204.
A. Birrell, G. Nelson, S. Owicki and E. Wobber, Network Objects. Technical Report SRC-RR-115, DEC Systems Research Center (1995).
G. Booch, Object-Oriented Development. IEEE Transaction on Software Engineering (1986).
T. Brandes and F. Desprez, Implementing Pipelined Computation and Communication in an HPF Compiler, in Euro-Par'96, number 1123, LNCS.
F. Buschmann, K. Kiefer, F. Paulish and M. Stal, The Meta-Information-Protocol: Run-Time Type Information for C++, in Proceedings of the International Workshop on Reflection and Meta-Level Architecture, A. Yonezawa and B.C. Smith Eds. (1992) 82-87.
Caromel, D., Service, Asynchrony and wait-by-necessity. Journal of Object-Oriented Programming 2 (1989) 12-22.
D. Caromel, Concurrency: an Object Oriented Approach, in Technology of Object-Oriented Languages and Systems (TOOLS'90), J. Bezivin, B. Meyer and J.-M. Nerson Eds., Angkor, June (1990) 183-197.
Caromel, D., Concurrency and Reusability: From Sequential to Parallel. Journal of Object-Oriented Programming 3 (1990) 34-42.
Caromel, D., Towards a Method of Object-Oriented Concurrent Programming. Communications of the ACM 36 (1993) 90-102. CrossRef
D. Caromel, F. Belloncle and Y. Roudier, The C++// Language, in Parallel Programming Using C++, MIT Press (1996) 257-296.
D. Caromel, P. Dzwig, R. Kauffman, H. Liddell, A. McEwan, P. Mussi, J. Poole, M. Rigg and R. Winder, EC++ - EUROPA Parallel C++: A Draft Definition, in Proceedings of High-Performance Computing and Networking (HPCN'96), Vol. 1067, LNCS, 848-857.
D. Caromel, W. Klauser and J. Vayssiere, Towards Seamless Computing and Metacomputing in Java. Concurrency Practice and Experience (1998).
D. Caromel, E. Noulard and D. Sagnol, Sharedonread optimization in parallel object-oriented programming, in Computing in Object-Oriented Parallel Environments, Proceedings of ISCOPE'99, LNCS, San Francisco, Dec (1999).
S. Chiba and T. Masuda, Designing an Extensible Distributed Language with Meta-Level Architecture, in Proceedings of the 7th European Conference on Object-Oriented Programming (ECOOP '93), O. Nierstrasz Ed., Springer-Verlag, Kaiserslautern, Lecture Notes in Computer Science 707 (1993) 482-501. CrossRef
J. Choi, J. Dongarra, S. Ostrouchov, A. Petitet, D. Walker and R.C. Whaley, A proposal for a set of parallel basic linear algebra subprograms. Technical Report Lapack Working Note 100, May (1995).
A. Dave, M. Sefika and R.H. Campbell, Proxies, Application Interfaces and Distributed Systems, in proceedings of the 2nd International Workshop on Object-Orientation in Operating Systems (OOOS), Paris (France), IEEE Computer Society Press, September (1992).
F. Desprez, P. Ramet and J. Roman, Optimal Grain Size Computation for Pipelined Algorithms, in Euro-Par'96, number 1123, LNCS.
S. Diwan and D. Gannon, Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach, in IPPS/SPDP (1999). ftp://ftp.cs.indiana.edu/pub/sdiwan/capab.ps.gz
Foster, I. and Kesselman, C., Globus: A metacomputing infrastructure toolkit. International Journal of Supercomputer Applications 11 (1997) 115-128.
D. Gannon, S. Diwan and E. Johnson, HPC++ and the Europa Call Reification Model. ACM Applied Computing Review 4 (1996).
N. Gehani, Concurrent Programming in the ADA Language: the Polling Bias. Software-Practice and Experience 14 (1984).
R. Halstead, Multilisp: A Language for Concurrent Symbolic Computation. ACM Transactions on Programming Languages and Systems, October (1985).
S.B. Hassen and H. Bal, Integrating task and data parallelism using shared objects, in FCRC '96: Conference proceedings of the 1996 International Conference on Supercomputing: Philadelphia, PA, USA, May 25-28, 1996, ACM Ed., ACM Press, New York (1996) 317-324.
Hewitt, C., Viewing Control Structures as Patterns of Passing Messages. J. Artificial Intelligence Res. 8 (1977) 323-64. CrossRef
Y. Ishikawa, A. Hori, M. Sato, M. Matsuda, J. Nolte, H. Tezuka, H. Konaka, M. Maeda and K. Kubota, Design and implementation of metalevel architecture in C++ - MPC++ approach, in Reflection'96, April (1996).
G. Kiczales, J. des Rivières and D.G. Bobrow, The Art of the Metaobject Protocol. MIT Press (1991).
H. Lieberman, Concurrent Object-Oriented Programming in Act 1, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).
P. Madany, N. Islam, P. Kougiouris and R.H. Campbell, Practical Examples of Reification and Reflection in C++, in Proceedings of the International Workshop on Reflection and Meta-Level Architecture, A. Yonezawa and B.C. Smith Eds. (1992) 76-81.
B. Meyer, Object-Oriented Software Construction. Prentice-Hall (1988).
E. Noulard, N. Emad and L. Flandrin, Calcul numérique parallèle et technologies objet. Technical Report Rapport PRISM 1998/003, ADULIS/PRiSM, Juillet (1997). Révision du 30/01/98.
R. Rashid, R. Baron, A. Forin, D. Golub, M. Jones, D. Orr and R. Sanzi, Mach: a foundation for open systems (operating systems), in Workstation Operating Systems: Proceedings of the Second Workshop on Workstation Operating Systems (WWOS-II), Pacific Grove, CA, USA, September 27-29, 1989, IEEE Ed., IEEE Computer Society Presspages (1989) 109-113.
Y. Saad, Iterative Methods for Sparse Linear Systems. PWS Publishing Company, New York (1996).
M. Shapiro, Structure and Encapsulation in Distributed Systems: the Proxy Principle, in Proceedings of the 6th International Conference on Distributed Computing Systems, Cambridge, MA, USA, IEEE, May (1986) 198-204.
C.W. Tseng, An Optimizing Fortran D Compiler for MIMD Distributed-Memory Machines. Ph.D. thesis, Rice University (1993).
G. Wilson and P. Lu Eds., Parallel Programming Using C++. MIT Press (1996).
Y. Yokote and M. Tokoro, Concurrent Programming in ConcurrentSmalltalk, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).
A. Yonezawa, E. Shibayama, T. Takada and Y. Honda, Modelling and Programming in an Object-Oriented Concurrent Language ABCL/1, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).