Distributed Objects for Parallel Numerical Applications

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.

[1]  Chau-Wen Tseng An optimizing Fortran D compiler for MIMD distributed-memory machines , 1993 .

[2]  Susan S. Owicki,et al.  Network objects , 1995 .

[3]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[4]  D. Orr,et al.  Mach: a foundation for open systems (operating systems) , 1989, Proceedings of the Second Workshop on Workstation Operating Systems.

[5]  Dennis Gannon,et al.  HPC++ and the Europa call reification model , 1996, SIAP.

[6]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[7]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[8]  Akinori Yonezawa,et al.  Modelling and programming in an object-oriented concurrent language ABCL/1 , 1987 .

[9]  Roy H. Campbell,et al.  Proxies, application interfaces, and distributed systems , 1992, [1992] Proceedings of the Second International Workshop on Object Orientation in Operating Systems.

[10]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[11]  Mitsuhisa Sato,et al.  Design and Implementation of Metalevel Architecture in C++ -- MPC++ Approach -- , 1998 .

[12]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[13]  Pierre Ramet,et al.  Optimal Grain Size Computation for Pipelined Algorithms , 1996, Euro-Par, Vol. I.

[14]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[15]  Henri E. Bal,et al.  Integrating task and data parallelism using shared objects , 1996, ICS '96.

[16]  Henri E. Bal,et al.  Replication techniques for speeding up parallel applications on distributed systems , 1992, Concurr. Pract. Exp..

[17]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[18]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[19]  Denis Caromel,et al.  Graphical Visualization of Java Objects, Threads, and Locks , 2001, IEEE Distributed Syst. Online.

[20]  Joel H. Saltz,et al.  Parallel Programming Using C++ , 1996 .

[21]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[22]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[23]  Henry Lieberman,et al.  Concurrent object-oriented programming in Act 1 , 1987 .

[24]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[25]  Denis Caromel,et al.  Towards seamless computing and metacomputing in Java , 1998 .

[26]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[27]  Stephen A. Edwards The C Language , 2000 .

[28]  Denis Caromel,et al.  SharedOnRead Optimization in Parallel Object-Oriented Programming , 1999, ISCOPE.

[29]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[30]  Gregory V. Wilson,et al.  Parallel Programming Using C , 1996 .

[31]  Thomas Brandes,et al.  Implementing Pipelined Computation and Communication in an HPF Compiler , 1996, Euro-Par, Vol. I.

[32]  Narain H. Gehani,et al.  Concurrent programming in the Ada® language: The polling bias , 1984, Softw. Pract. Exp..

[33]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[34]  Denis Caromel,et al.  Optimizing Metacomputing with Communication-Computation Overlap , 2001, PaCT.

[35]  Mitsuhisa Sato,et al.  An Overview of MPC++ - Extended Abstract , 1995, PSLS.

[36]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[37]  Dennis Gannon,et al.  A capabilities based communication model for high-performance distributed applications: The Open HPC++ approach , 1999, Proceedings 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing. IPPS/SPDP 1999.

[38]  Jaeyoung Choi,et al.  A Proposal for a Set of Parallel Basic Linear Algebra Subprograms , 1995, PARA.

[39]  Peter Dzwig,et al.  EC++ - EUROPA Parallel C++. A Draft Definition , 1996, HPCN Europe.

[40]  Denis Caromel Concurrency and reusability: from sequential to parallel , 1990 .