I have three processes A,B & C. A will receive some data and process and after that will pass results to B. Thereafter, A will go back to get data and process and prepare to send them to B again. Same goes for B to C where C will provide the final output. As all the processes are running asynchronously, I can't find a method to quit all processes gracefully. I have tried to use C to issue MPI_Abort when quit command is received with processes A and B entering the SIGTERM handler to free all the allocated memories. However, the processes may be in the midst of a communication when SIGTERM signal is raise, resulting in some error msg like "remote connection close" etc. To prevent such error messages from displaying, I couldn't use MPI_Finalize.
I seek your advice on methods to quit asynchonous processes properly without all these error messages. And I would also like to find out what will be the outcome eventually if I don't close the processes with an MPI_Finalize command, will it lead to eventual memory leak etc?
Thank you very much.