Discussion:
[Beowulf] PMIX and Julia?
John Hearns via Beowulf
2018-11-18 19:35:56 UTC
Permalink
I am really going to show my ignorance here. I just flicked through the
excellent OpenMPI BoF slides from SC18
https://www.open-mpi.org/papers/sc-2018/Open-MPI-SC18-BOF.pdf
This reminded me of something I have at the back of my mind. Clearly pmix
is intimately associated with MPI.
On the other hand I am a fan of the Julia language, which has its own
concepts of parallelism.
However for a cluster spanning across multiple machines Julia currently
assumes passwordless ssh will be used
https://docs.julialang.org/en/v1/manual/parallel-computing/index.html#Starting-and-managing-worker-processes-1

Oooh - a bit of googling reveals that MPI can be used to communicate with
the processes
https://github.com/JuliaParallel/MPI.jl/blob/master/test/test_cman_mpi.jl

What I am really asking is will pmix be totally necessary when running on
near-exascale systems, or am I missing something? My thoughts are should
the Julia world be looking at mpix adaptations?
If someone with a clue about pmix could enlighten me I would be grateful.
Chris Samuel
2018-11-18 20:16:30 UTC
Permalink
Post by John Hearns via Beowulf
What I am really asking is will pmix be totally necessary when running on
near-exascale systems, or am I missing something? My thoughts are should
the Julia world be looking at mpix adaptations? If someone with a clue
about pmix could enlighten me I would be grateful.
My (limited) understanding of this is that PMI* is an MPI wire-up protocol, in
other words a mechanism for the MPI ranks to discover each other, set up
communications and also talk to the resource scheduler (if present).

There's a handy little description of PMI (v2 in this case) here:

https://wiki.mpich.org/mpich/index.php/PMI_v2_API

The PMIx website (along with standards documents etc) here:

https://pmix.org/

My instinct is that it might be better for Julia to sit on MPI and let it
handle this for it, rather than have to know about PMI2/PMIx itself..

All the best!
Chris
--
Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC



_______________________________________________
Beowulf mailing list, ***@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit htt
Prentice Bisbal via Beowulf
2018-11-19 20:53:30 UTC
Permalink
Post by Chris Samuel
Post by John Hearns via Beowulf
What I am really asking is will pmix be totally necessary when running on
near-exascale systems, or am I missing something? My thoughts are should
the Julia world be looking at mpix adaptations? If someone with a clue
about pmix could enlighten me I would be grateful.
My (limited) understanding of this is that PMI* is an MPI wire-up protocol, in
other words a mechanism for the MPI ranks to discover each other, set up
communications and also talk to the resource scheduler (if present).
That is my understanding, too, PMI is meant to be an abstraction layer
between the resource manager and the different parallel processes. I
would imagine if this abstraction is good for MPI, it could be good for
other paradigms, like Julia, too. Conceptually, I don't think there's
anything preventing it from being used for Julia. In reality, it depends
on how general the API is. That's based on my understanding of PMI, of
which I am admittedly *not* an expert.
Post by Chris Samuel
https://wiki.mpich.org/mpich/index.php/PMI_v2_API
https://pmix.org/
Here's another good paper on PMI:

http://www.mcs.anl.gov/papers/P1760.pdf
Post by Chris Samuel
My instinct is that it might be better for Julia to sit on MPI and let it
handle this for it, rather than have to know about PMI2/PMIx itself..
All the best!
Chris
_______________________________________________
Beowulf mailing list, ***@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.o
Chris Samuel
2018-11-20 11:45:14 UTC
Permalink
On Tuesday, 20 November 2018 7:53:30 AM AEDT Prentice Bisbal via Beowulf
Post by Prentice Bisbal via Beowulf
Conceptually, I don't think there's
anything preventing it from being used for Julia. In reality, it depends
on how general the API is.
Yeah, if you're launched via Slurm (for instance) you could have access to
PMIx (various versions), PMI2, PMI1 (if you're earlier than 18.08) or none of
the above.. For other resource managers the choices may be different.

Much easier to layer yourself on top of MPI and let it handle that for you!
:-)

All the best,
Chris
--
Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC



_______________________________________________
Beowulf mailing list, ***@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscrib
Loading...