|
NAMEOMPI_Affinity_str - Obtain prettyprint strings of processor affinity information for this processSYNTAXC Syntax#include <mpi.h> #include <mpi-ext.h> int OMPI_Affinity_str(ompi_affinity_fmt_type_t fmt_type, char ompi_bound[OMPI_AFFINITY_STRING_MAX], char current_binding[OMPI_AFFINITY_STRING_MAX], char exists[OMPI_AFFINITY_STRING_MAX]) Fortran SyntaxThere is no Fortran binding for this function.C++ SyntaxThere is no C++ binding for this function.INPUT PARAMETERS
OUTPUT PARAMETERS
DESCRIPTIONOpen MPI may bind a process to specific sockets and/or cores at process launch time. This non-standard Open MPI function call returns prettyprint information about three things:
ExamplesExample 1: Print out processes binding using resource string format.int rank; char ompi_bound[OMPI_AFFINITY_STRING_MAX]; char current_binding[OMPI_AFFINITY_STRING_MAX]; char exists[OMPI_AFFINITY_STRING_MAX]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); OMPI_Affinity_str(OMPI_AFFINITY_RSRC_STRING_FMT, ompi_bound, current_binding, exists); printf("rank %d: \n" " ompi_bound: %s\n" " current_binding: %s\n" " exists: %s\n", rank, ompi_bound, current_binding, exists); ... Output of mpirun -np 2 -bind-to-core a.out: rank 0: ompi_bound: socket 0[core 0] current_binding: socket 0[core 0] exists: socket 0 has 4 cores rank 1: ompi_bound: socket 0[core 1] current_binding: socket 0[core 1] exists: socket 0 has 4 cores Output of mpirun -np 2 -bind-to-socket a.out: rank 0: ompi_bound: socket 0[core 0-3] current_binding: Not bound (or bound to all available processors) exists: socket 0 has 4 cores rank 1: ompi_bound: socket 0[core 0-3] current_binding: Not bound (or bound to all available processors) exists: socket 0 has 4 cores Example 2: Print out processes binding using layout string format. int rank; char ompi_bound[OMPI_AFFINITY_STRING_MAX]; char current_binding[OMPI_AFFINITY_STRING_MAX]; char exists[OMPI_AFFINITY_STRING_MAX]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); OMPI_Affinity_str(OMPI_AFFINITY_LAYOUT_FMT, ompi_bound, current_binding, exists); printf("rank %d: \n" " ompi_bound: %s\n" " current_binding: %s\n" " exists: %s\n", rank, ompi_bound, current_binding, exists); ... Output of mpirun -np 2 -bind-to-core a.out: rank 0: ompi_bound: [B . . .] current_binding: [B . . .] exists: [. . . .] rank 1: ompi_bound: [. B . .] current_binding: [. B . .] exists: [. . . .] Output of mpirun -np 2 -bind-to-socket a.out: rank 0: ompi_bound: [B B B B] current_binding: [B B B B] exists: [. . . .] rank 1: ompi_bound: [B B B B] current_binding: [B B B B] exists: [. . . .] See Alsompirun(1)
Visit the GSP FreeBSD Man Page Interface. |