Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C codes
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 38
    • Issues 38
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • codes
  • codes
  • Issues
  • #72

Closed
Open
Created Jan 14, 2016 by Jonathan Jenkins@jenkinsContributor

make LPs (MPI) usable in more contexts

Currently it's not really possible to use the MPI client in any other context than within its own standalone program. Same with the IO clients we've developed. For example, we may want the MPI client to handle communication operations and an IO client to perform IO operations, under the same "process".

One way of getting around this is to recast the LP(s) as "libraries" that allow some arbitrary LP to drive it's execution, similar to how the model-net LP drives the individual network LPs. Under this change, the user would drive the workload parsing loop and call into the library LP to perform actions (such as MPI ops) on behalf of her. Changing this requires reworking the interface in such a way that:

  • event type integers of the library LPs (the MPI LP) are offset so as to prevent conflicts (the user would specify this)
  • specify an interface for driving the actual operations. This could be as simple as switching on the workload operation type and forwarding to the library LP.
  • instead of the MPI/IO LPs driving the workload generation, have a callback-style interface that informs the user of events of interest (ie an MPI_Send has completed).

If we have this in place, we can use the MPI client basically anywhere, with the user needing to provide a shim to call into and out of the client.

Assignee
Assign to
Time tracking