Hi,

I'm currently looking into whether it's possible to run MPI applications
within unikernels <https://en.wikipedia.org/wiki/Unikernel>.

The idea is to have multiple unikernels as virtual compute nodes in the
cluster, with physical nodes hosting the virtual nodes. As I understand it,
in a normal cluster mpirun would be invoked on a physical node and all the
compute nodes would be processes on the same machine. In contrast, with
unikernels the compute nodes would need to effectively run in virtual
machines.

I thought I was making progress when I found the "--ompi-server" switch for
mpirun: I figured I could spawn an OMPI server instance on a host, then
just invoke mpirun telling it to start the unikernel (in an emulator
(QEMU), instead of an application), passing the unikernel the uri of the
OMPI server. In my mind, the unikernels would be able to connect to the
server happily and all would be smooth.

In reality, it seems like mpirun doesn't "pass" anything to the application
it runs (I expected it to pass configuration options via the command line).
This implies all the configuration is stored somewhere on the host or as
environment variables, which would make it muuuch harder to configure the
unikernel. I couldn't find much documentation on this part of the process
though (how mpirun configures the application), so I figured I'd ask the
experts.

Is this sort of thing possible? Is the MPI ecosystem tied too tightly to
virtual nodes being run with mpirun to make it infeasible to run insulated
virtual nodes like this? Is there some command-line switch I've missed that
would make my life a lot easier?


Any advice/ideas/discussion would be much appreciated,
Keith
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to