I have a program that allow user to enter their choice of operation. For example, when the user enter '4', the program will enter a function which will spawn some other programs stored in the same directory. When the user enter '5', the program will enter another function to request all spawned processes to exit. Therefore, initially only one process which act as the controller is spawned.
My MPI_Info_create and MPI_Comm_spawn_multiple are called in a function. Everything is working fine except when I tried to free the MPI_Info in the function by calling MPI_Info_free, I have segmentation fault error. The second problem is when i do the spawning once and exit the controller program with MPI_Finalize, the program exited normally. But when spawning is done more than once and exit the controller program with MPI_Finalize, there is segmentation fault. I also realize that when the spawed processes exit, the 'orted' process is still running. Thus, when multiple MPI_Comm_spawn_multiple are called, there will be multiple 'orted' processes.
Thank you and hope someone has a solution to my problem.