Ralph Castain wrote:

On May 5, 2009, at 3:37 AM, Geoffroy Pignot wrote:

 The result is : everything works fine with MPI executables : logical !!!

What I was trying to do , was to run non MPI exes thanks to mpirun. There , openmpi is not able to bind these processes to a particular CPU.
My conclusion is that the process affinity is set in MPI_Init, right ?

Yes - sorry, I should have caught that in your cmd line. Not enough sleep lately... :-)

Could it be possible to have the paffinity features working without any MPI_Init call, using taskset for example. I agree , it's not your job to support the execution of any kind of exes but it would be nice !!

Actually, it is worth the question. As things stand, processes don't bind until they call MPI_Init. This has caused some problems for people that rely on the procs to be restricted to specific processor sets, but who don't (for various reasons) call MPI_Init at the beginning of their program.

I'll raise the question inside the devel community and see what people think.

Another case is where you have a NUMA node and the MPI process allocates and touches a bunch of memory before MPI_Init is called. In this case, we wouldn't want to wait until MPI_Init for process binding. Rather, we would want the process bound as soon as it is started.

Put more strongly, the "correct" (subjective term) way for an MPI implementation to bind processes is upon process creation and waiting until MPI_Init is "wrong". This point of view has nothing to do with asking the MPI implementation to support binding of non-MPI processes.

Reply via email to