Download Overall Features for Legacy Code Wrapping

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Distributed operating system wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Service-oriented architecture implementation framework wikipedia , lookup

Computer cluster wikipedia , lookup

Transcript
Legacy Code Wrapping with GCM
components
Vincent Cavé
Elton Mathias
Guilherme Peretti Pezzi
Deploy, Wrap, Couple and Compose
• Deploy:
– Legacy application using GCM deployment descriptors
• Wrap:
– Legacy processes in GCM components
• Couple:
– “ProActive/Native Interface” API
• Compose:
– Point-to-point, Collective, MxN communications
Coupling: ProActive/Native Interface
• The ProActive/Native interface define a lightweight API for:
– Sending and receiving message from/to JAVA/native layer
• Communication with the ProActive/Native layer is:
– Message-Based
– Generic
– Extensible
• Users build application protocol on top of the API:
– Define type of message and layout
– Implement “Messages” and “Handler” interfaces.
Use Case: MPI integration
•
•
Goal: Deploy and Couple an MPI code over several clusters
Deployment
– GCM components wrap MPI processes
– Components represent resources hierarchy
•
Coupling of ProActive and MPI
– Done through The ProActive/Native API
• Definition of “ProActiveMPI” messages.
• Implementation of message handlers.
– Define the ProActiveMPI API
•
Composition of MPI code: Inter-cluster MPI communication
–
–
–
–
Handle Point-to-point and collective operations
Takes advantage of GCM collective interfaces (Gathercast/Multicast)
Components bindings are (re)configured according to processes involved
Could be generalized to more levels !
Use Case: An MPI Process as a component
C/Fortran:
Messages
sent/converted to
Method Calls
Method Calls
sent as
Messages
ProActive Java:
MPI Process
Use Case: A cluster as a component
Wrapped MPI Processes
Messages
going outside
of the level (the cluster)
Messages coming
from other levels
(other clusters)