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.
Keywords: concurrency, data-driven synchronization, dynamic binding, inheritance, object-oriented concurrent programming, polymorphism, reusability, software development method, wait-by-necessity, overlap, object sharing
@article{M2AN_2002__36_5_837_0,
author = {Baude, Francoise and Caromel, Denis and Sagnol, David},
title = {Distributed objects for parallel numerical applications},
journal = {ESAIM: Mod\'elisation math\'ematique et analyse num\'erique},
pages = {837--861},
year = {2002},
publisher = {EDP Sciences},
volume = {36},
number = {5},
doi = {10.1051/m2an:2002039},
mrnumber = {1955538},
zbl = {1039.68026},
language = {en},
url = {https://www.numdam.org/articles/10.1051/m2an:2002039/}
}
TY - JOUR AU - Baude, Francoise AU - Caromel, Denis AU - Sagnol, David TI - Distributed objects for parallel numerical applications JO - ESAIM: Modélisation mathématique et analyse numérique PY - 2002 SP - 837 EP - 861 VL - 36 IS - 5 PB - EDP Sciences UR - https://www.numdam.org/articles/10.1051/m2an:2002039/ DO - 10.1051/m2an:2002039 LA - en ID - M2AN_2002__36_5_837_0 ER -
%0 Journal Article %A Baude, Francoise %A Caromel, Denis %A Sagnol, David %T Distributed objects for parallel numerical applications %J ESAIM: Modélisation mathématique et analyse numérique %D 2002 %P 837-861 %V 36 %N 5 %I EDP Sciences %U https://www.numdam.org/articles/10.1051/m2an:2002039/ %R 10.1051/m2an:2002039 %G en %F M2AN_2002__36_5_837_0
Baude, Francoise; Caromel, Denis; Sagnol, David. Distributed objects for parallel numerical applications. ESAIM: Modélisation mathématique et analyse numérique, Special issue on Programming, Tome 36 (2002) no. 5, pp. 837-861. doi: 10.1051/m2an:2002039
[1] Parallel Virtual Machine: a user's guide and tutorial for networked parallel computing. MIT Press (1994).
[2] MPI: The Complete Reference. MIT Press (1998).
[3] , Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press (1986).
[4] , and, 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.
[5] , and, Graphical Visualization of Java Objects, Threads, and Locks. IEEE Distributed Systems Online 2 (2001).
[6] ,, and, Replication techniques for speeding up parallel applications on distributed systems. Concurrency Practice & Experience 4 (1992) 337-355.
[7] ,, and, Optimizing Metacomputing with Communication-Computation Overlap, in 6th International Conference PaCT 2001, number 2127, V. Malyshkin Ed., LNCS, 190-204. | Zbl
[8] ,, and, Network Objects. Technical Report SRC-RR-115, DEC Systems Research Center (1995).
[9] , Object-Oriented Development. IEEE Transaction on Software Engineering (1986).
[10] and, Implementing Pipelined Computation and Communication in an HPF Compiler, in Euro-Par'96, number 1123, LNCS.
[11] ,, and, 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.
[12] , Service, Asynchrony and wait-by-necessity. Journal of Object-Oriented Programming 2 (1989) 12-22.
[13] , 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.
[14] , Concurrency and Reusability: From Sequential to Parallel. Journal of Object-Oriented Programming 3 (1990) 34-42.
[15] , Towards a Method of Object-Oriented Concurrent Programming. Communications of the ACM 36 (1993) 90-102.
[16] , and, The C++// Language, in Parallel Programming Using C++, MIT Press (1996) 257-296.
[17] ,,,,,,, and, EC++ - EUROPA Parallel C++: A Draft Definition, in Proceedings of High-Performance Computing and Networking (HPCN'96), Vol. 1067, LNCS, 848-857.
[18] , and, Towards Seamless Computing and Metacomputing in Java. Concurrency Practice and Experience (1998).
[19] , and, Sharedonread optimization in parallel object-oriented programming, in Computing in Object-Oriented Parallel Environments, Proceedings of ISCOPE'99, LNCS, San Francisco, Dec (1999).
[20] and, 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.
[21] ,,,, and, A proposal for a set of parallel basic linear algebra subprograms. Technical Report Lapack Working Note 100, May (1995).
[22] , and, 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).
[23] , and, Optimal Grain Size Computation for Pipelined Algorithms, in Euro-Par'96, number 1123, LNCS.
[24] and, 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
[25] and, Globus: A metacomputing infrastructure toolkit. International Journal of Supercomputer Applications 11 (1997) 115-128.
[26] , and, HPC++ and the Europa Call Reification Model. ACM Applied Computing Review 4 (1996).
[27] , Concurrent Programming in the ADA Language: the Polling Bias. Software-Practice and Experience 14 (1984). | Zbl
[28] , Multilisp: A Language for Concurrent Symbolic Computation. ACM Transactions on Programming Languages and Systems, October (1985). | Zbl
[29] and, 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.
[30] , Viewing Control Structures as Patterns of Passing Messages. J. Artificial Intelligence Res. 8 (1977) 323-64.
[31] ,,,,,,, and, Design and implementation of metalevel architecture in C++ - MPC++ approach, in Reflection'96, April (1996).
[32] , J. des Rivières and D.G. Bobrow, The Art of the Metaobject Protocol. MIT Press (1991).
[33] , Concurrent Object-Oriented Programming in Act 1, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).
[34] ,, and, 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.
[35] , Object-Oriented Software Construction. Prentice-Hall (1988). | Zbl
[36] , and, Calcul numérique parallèle et technologies objet. Technical Report Rapport PRISM 1998/003, ADULIS/PRiSM, Juillet (1997). Révision du 30/01/98.
[37] ,,,,, and, 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.
[38] , Iterative Methods for Sparse Linear Systems. PWS Publishing Company, New York (1996). | Zbl
[39] , 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.
[40] , An Optimizing Fortran D Compiler for MIMD Distributed-Memory Machines. Ph.D. thesis, Rice University (1993).
[41] and Eds., Parallel Programming Using C++. MIT Press (1996).
[42] and, Concurrent Programming in ConcurrentSmalltalk, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).
[43] ,, and, 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).
Cité par Sources :






