[Developers] Calling system() on Infiniband machines

Erik Schnetter schnetter at cct.lsu.edu
Tue May 27 09:20:28 CDT 2008


Several large Infiniband supercomputers do not allow calling system(),  
or any routine which internally uses fork(), presumably because of a  
problem with the kernel driver.  system() is e.g. used by Formaline to  
announce simulation status to a portal.  Announcing on such machines  
leads to segmentation faults.

It turns out that it is still possible to call fork() before calling  
MPI_Init.  I suggest to add a mechanism to the Cactus flesh which  
starts a daemon with popen().  Instead of calling system(), the  
command is passed on to the daemon which then calls system().  This  
will be good enough for the purposes of Formaline.

It is necessary to implement this in the flesh because the daemon  
needs to be started before MPI_Init is called, which needs to happen  
very early, even before the command line arguments are parsed or the  
parameter file is read.

-erik

-- 
Erik Schnetter <schnetter at cct.lsu.edu>   http://www.cct.lsu.edu/~eschnett/

My email is as private as my paper mail.  I therefore support encrypting
and signing email messages.  Get my PGP key from www.keyserver.net.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
Url : http://www.cactuscode.org/pipermail/developers/attachments/20080527/ecf28253/attachment.bin 


More information about the Developers mailing list