[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