diff --git a/orte/tools/orterun/orterun.1 b/orte/tools/orterun/orterun.1 index 0fa22a57d6..4e1e3d8f05 100644 --- a/orte/tools/orterun/orterun.1 +++ b/orte/tools/orterun/orterun.1 @@ -236,6 +236,11 @@ Suppress informative messages from orterun during application execution. . . .TP +.B -rf \f |--rankfile \fP. +Provide a rankfile file. +. +. +.TP .B --tmpdir \fR\fP Set the root for the session directory tree for mpirun only. . @@ -519,6 +524,27 @@ on host a. And runs one copy of the executable on hosts b and c. . . +.SS Specifying Ranks +. +Rankfile came to provide Open MPI a file with the location of each MPI_COMM_WORLD rank. The syntax of the rankfile as follows: + rank i=host_j slot=x + + \fBshell$\fP cat my-rankfile + rank 1=host1 slot=1:0,1 + rank 0=host2 slot=0:* + rank 2=host4 slot=1-2 + rank 3=host3 slot=0:1,1:0-2 + + \fBshell$\fP mpirun --hostfile my-hostfile -np 4 --rankfile my-rankfile a.out + +This means that + a. rank 1 will run on host1 bounded to socket1:core0 and socket1:core1 + b. rank 0 will run on host2 bounded to any core on socket0 + c. rank 2 will run on host4 bounded to CPU#1 and CPU#2 + d. rank 3 will run on host3 bounded to socket0:core1 and socket1:core0, socket1:core1, socket1:core2 +. +. +. .SS Providing cartofile . The cartofile suplies an information of the the host structure and connection among the host components i.e memory nodes,CPUs, Ethernet and inifiniband ports. The information stored as a graph in the cartofile. This graph contains the names and types of EDGEs, connecting BRANCHes and distance among them. See the fallowing example of the cartofile: diff --git a/orte/tools/orterun/orterun.c b/orte/tools/orterun/orterun.c index f6caca1604..09578c3fef 100644 --- a/orte/tools/orterun/orterun.c +++ b/orte/tools/orterun/orterun.c @@ -199,6 +199,10 @@ static opal_cmd_line_init_t cmd_line_init[] = { NULL, OPAL_CMD_LINE_TYPE_STRING, "Provide a cartography file" }, + { "rmaps_rank", "file", "path", '\0', "rf", "rankfile", 1, + NULL, OPAL_CMD_LINE_TYPE_STRING, + "Provide a rankfile file" }, + /* Export environment variables; potentially used multiple times, so it does not make sense to set into a variable */ { NULL, NULL, NULL, 'x', NULL, NULL, 1,