Overall Features for Legacy Code Wrapping

Download Report

Transcript Overall Features for Legacy Code Wrapping

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)