It seems that it is in many cases not safe to call fork() in MPI applications. This page http://www.open-mpi.de/faq/?category=openfabrics#ofa-fork has some information. The upshot seems to be: - In many (most) cases, one can call system() or popen() to execute external processes while waiting for them. - It is generally not safe to call fork() to execute a certain task in the background. However, it should be possible to use threads in this case.