On Apr 12, 2010, at 8:42 AM, Eugene Loh wrote:
> Ralph Castain wrote:
>> If someone tells us -bind-to-socket, but there is only one socket, then we really cannot bind them to anything. Any check by their code would reveal that they had not, in fact, been bound - raising questions as to whether or not OMPI is performing the request. Our operating standard has been to error out if the user specifies something we cannot do to avoid that kind of confusion. This is what generated the code in the system today.
>> Now I can see an argument that -bind-to-socket with one socket maybe shouldn't generate an error, but that decision then has to get reflected in other code areas as well.
>> But first we need to resolve the question: should this scenario return an error or not?
> From the onset of the -bind-to-X functionality, -bind-to-board -byboard for a single-board system would result in binding to everything|nothing -- is the glass completely full or completely empty? In any case, no error.
Only because we haven't really implemented bind-to-board yet - once we do (should that happen), then it would indeed generate an error.
> Consider a single-board, two-socket, quad-core node and these command lines with 1.3.4r22104:
> % mpirun -H mynode -n 1 -bycore -bind-to-core -report-bindings ./a.out
> % mpirun -H mynode -n 1 -bysocket -bind-to-socket -report-bindings ./a.out
> % mpirun -H mynode -n 1 -byboard -bind-to-board -report-bindings ./a.out
> The first binds to "cpus 0001", the second to "socket 0 cpus 000f", and the third reports no bindings ("bind to everything") and no errors.
> devel mailing list