On Sun, Jan 30, 2011 at 7:11 AM, Andreas Kloeckner
<li...@informa.tiker.net> wrote:

> Try calling pytools.prefork.enable_prefork before you call MPI_Init().
> (PyCUDA is already prepared for this under the hood, and you already
> have pytools if you have PyCUDA.)
>
> http://git.tiker.net/pytools.git/blob/HEAD:/pytools/prefork.py

Thank you for the suggestion. Unfortunately it doesn't solve the
problem. If I run this:

import sys
import time

from pytools import prefork
prefork.enable_prefork()

tcmd = ["gcc","--version"]

retcode, stdout, stderr = prefork.call_capture_output(tcmd)

sys.stdout.write("stdout: %s\n"%(stdout))
sys.stdout.write("stderr: %s\n"%(stderr))
sys.stdout.flush()

time.sleep(10)
sys.stdout.write("done\n")

using mpich2 1.3, only one process returns any output on stdout, the
others return None. The pytools methods succeed in doing the fork and
I can see the sockets that are created, but nothing is returned.

As an interim, I have hacked compiler.py in the way I intimated in the
original post to the list, which gets things running, but I am sure
there must be a more elegant way of solving this.

_______________________________________________
PyCUDA mailing list
PyCUDA@tiker.net
http://lists.tiker.net/listinfo/pycuda

Reply via email to