Process Management Interface (PMI)

group Process Management Interface

This implemented getters and setters for the PMI interface in MPC.

Defines

MPC_LAUNCH_PMI_SUCCESS 0

Wrapper for PMI_SUCCESS.

MPC_LAUNCH_PMI_FAIL -1

Wrapper for PMI_FAIL.

Functions

int mpc_launch_pmi_init()

Main initialization point for MPI support.

Main initialization point for MPI support.

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_finalize()

Main release point for PMI support.

Main release point for PMI support.

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_get_max_key_len()

Maximum length of a PMI key.

Returns:

int max key len

int mpc_launch_pmi_get_max_val_len()

Maximum length of a PMI value.

Returns:

int max value len

int mpc_launch_pmi_is_initialized()

Check if PMI was initialized.

Returns:

int 1 if initialized 0 otherwise

void mpc_launch_pmi_abort(const int return_code)

Abort the process using PMI.

Parameters:
  • return_code[in] Return code to return from the processes

int mpc_launch_pmi_barrier()

Execute a PMI barrier between UNIX processes.

Execute a PMI barrier between UNIX processes.

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_put_as_rank(char *value, int tag, int is_local)

Put a value in KVS for rank using an integer tag.

Parameters:
  • value – Data to be stored in the PMI

  • tag – identifier of the stored value

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_get_as_rank(char *value, size_t size, int tag, int rank)

Get a value in KVS for rank using an integer tag.

Parameters:
  • value – Data to be retrieved from the PMI

  • size – maximum size of the expected data

  • tag – tag of the data to be retrieved

  • rank – rank to retrieve data for

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_put(char *value, char *key, int is_local)

Set a value at key in the KVS.

Parameters:
  • value – value to be set

  • key – corresponding key

  • is_local – if the value is to be stored locally not over net

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_get(char *value, size_t size, char *key, int remote)

Get a value at key in the KVS.

Parameters:
  • value – value to be retrieved

  • size – maximum value size

  • key – corresponding key

  • remote – remote rank to query

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_get_process_layout(struct mpc_launch_pmi_process_layout **layout)

Retrieve a UTHASH hash-table gathering process layout on nodes.

Parameters:
  • layout – [OUT] where to store the pointer (not to free)

Returns:

int SCTK_PMI_SUCCESS / _FAIL

int mpc_launch_pmi_get_global_rank_from_local(const int remote)

Translates a local (to the node) rank into a global rank.

Parameters:
  • remote – [in] Local rank to translate

Returns:

Global rank of the given peer

int mpc_launch_pmi_get_job_id(uint64_t *id)

Get the job id.

Parameters:
  • id – Pointer to store the job id

struct mpc_launch_pmi_process_layout

Defines an UTHASH hash-table to retrieve per node process layout.

Public Members

int node_rank

Node info for rank.

int nb_process

Number of processes on the node.

int *process_list

List of processes ID on the node.

UT_hash_handle hh

UTHash handle.