The new semester starts tomorrow, the final one 😥 , and I am all ready to start working after being lazy in the vacations! 😀 Being lazy is important too, it makes me ME 😎
As mentioned earlier in this series, I’m responsible for incorporating dynamic process management in the MPJExpress runtime. So here goes a brief introduction of what DPM actually is.
Introduction To Dynamic Process Management:
A feature added in the MPI spec 2, dynamic process management can be simply described as creating and ending new processes on an already running job. The relationship is like that of parent-child processes. A running MPI process calls the spawn function (much similar to a fork) to create new process(es). An intercommunicator is established between the parent and the child. The parent and child processes can then communicate like any other processes.
- Utilize resources dynamically.
- Add/remove processes dynamically.
- Join separately started processes.
- Increase fault tolerance and performance.
- How to start new processes?
- How to create multiple sets of child processes?
- How do the child sets (worlds) communicate with each other? Is it through the parent, or can they communicate directly over an intercommunicator?
- MPJExpress runtime consists of two parts, Run and Daemon. How to contact MPJExpress daemon from within a job?
Thats a lot of challenges 😳 . Hoping to overcome the challenges and come up with the solution soon! 🙂