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.
Mots-clés : 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}, publisher = {EDP-Sciences}, volume = {36}, number = {5}, year = {2002}, doi = {10.1051/m2an:2002039}, mrnumber = {1955538}, zbl = {1039.68026}, language = {en}, url = {http://archive.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 - http://archive.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 http://archive.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. http://archive.numdam.org/articles/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] 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.
, and ,[5] Graphical Visualization of Java Objects, Threads, and Locks. IEEE Distributed Systems Online 2 (2001).
, and ,[6] Replication techniques for speeding up parallel applications on distributed systems. Concurrency Practice & Experience 4 (1992) 337-355.
, , and ,[7] Optimizing Metacomputing with Communication-Computation Overlap, in 6th International Conference PaCT 2001, number 2127, V. Malyshkin Ed., LNCS, 190-204. | Zbl
, , and ,[8] Network Objects. Technical Report SRC-RR-115, DEC Systems Research Center (1995).
, , and ,[9] Object-Oriented Development. IEEE Transaction on Software Engineering (1986).
,[10] Implementing Pipelined Computation and Communication in an HPF Compiler, in Euro-Par'96, number 1123, LNCS.
and ,[11] 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.
, , and ,[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] The C++// Language, in Parallel Programming Using C++, MIT Press (1996) 257-296.
, and ,[17] EC++ - EUROPA Parallel C++: A Draft Definition, in Proceedings of High-Performance Computing and Networking (HPCN'96), Vol. 1067, LNCS, 848-857.
, , , , , , , and ,[18] Towards Seamless Computing and Metacomputing in Java. Concurrency Practice and Experience (1998).
, and ,[19] Sharedonread optimization in parallel object-oriented programming, in Computing in Object-Oriented Parallel Environments, Proceedings of ISCOPE'99, LNCS, San Francisco, Dec (1999).
, and ,[20] 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.
and ,[21] A proposal for a set of parallel basic linear algebra subprograms. Technical Report Lapack Working Note 100, May (1995).
, , , , and ,[22] 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).
, and ,[23] Optimal Grain Size Computation for Pipelined Algorithms, in Euro-Par'96, number 1123, LNCS.
, and ,[24] 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
and ,[25] Globus: A metacomputing infrastructure toolkit. International Journal of Supercomputer Applications 11 (1997) 115-128.
and ,[26] HPC++ and the Europa Call Reification Model. ACM Applied Computing Review 4 (1996).
, and ,[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] 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.
and ,[30] Viewing Control Structures as Patterns of Passing Messages. J. Artificial Intelligence Res. 8 (1977) 323-64.
,[31] Design and implementation of metalevel architecture in C++ - MPC++ approach, in Reflection'96, April (1996).
, , , , , , , and ,[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] 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.
, , and ,[35] Object-Oriented Software Construction. Prentice-Hall (1988). | Zbl
,[36] Calcul numérique parallèle et technologies objet. Technical Report Rapport PRISM 1998/003, ADULIS/PRiSM, Juillet (1997). Révision du 30/01/98.
, and ,[37] 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.
, , , , , and ,[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] Parallel Programming Using C++. MIT Press (1996).
and Eds.,[42] Concurrent Programming in ConcurrentSmalltalk, in Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro Eds., MIT Press (1987).
and ,[43] 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).
, , and ,Cité par Sources :