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