Skip to content
Snippets Groups Projects
Commit 087af30a authored by Sonja Happ's avatar Sonja Happ
Browse files

vendor/bindings: Add MPIX_Spawn_async and MPIX_Spawn_status bindings.

parent 4ea48b1d
No related branches found
No related tags found
No related merge requests found
......@@ -1952,6 +1952,7 @@ def dump_validation(func, t):
if RE.search(r'mpi_comm_', func_name, re.IGNORECASE):
G.out.append("MPIR_ERRTEST_INTRA_ROOT(comm_ptr, root, mpi_errno);")
else:
if not RE.match(r'mpix_spawn_async$', func_name, re.IGNORECASE):
G.out.append("if (comm_ptr->comm_kind == MPIR_COMM_KIND__INTRACOMM) {")
G.out.append(" MPIR_ERRTEST_INTRA_ROOT(comm_ptr, root, mpi_errno);")
G.out.append("} else {")
......
......@@ -147,3 +147,34 @@ MPI_Publish_name:
MPI_Unpublish_name:
.desc: Unpublish a service name published with MPI_Publish_name
MPIX_Spawn_async:
.desc: Spawn new processes asynchronously, call is collective, allocate new resources from RMS (via root proc) if required (only one active MPIX_Spawn at a time)
.file: spawn_async_x
.skip: validate-STRING_ARRAY, validate-ERROR_CODE
command: STRING, root_only=True, constant=True, [name of program to be spawned]
argv: STRING_ARRAY, root_only=True, [arguments to command]
maxprocs: COMM_SIZE, root_only=True, [maximum number of processes to start]
info: INFO, root_only=True, [a set of key-value pairs telling the runtime system where and how to start the processes]
root: RANK, [rank of process in which previous arguments are examined]
resize_allocation: LOGICAL_BOOLEAN, [If true, root can request additional nodes from RMS (if required w.r.t. maxprocs)]
status: INFO, direction=out, [Summary of the spawn status right after the call]
{ -- error_check -- info, command, maxprocs
if (MPIR_Process.rank == root) {
MPIR_ERRTEST_INFO_OR_NULL(info, mpi_errno);
MPIR_ERRTEST_ARGNULL(command, "command", mpi_errno);
MPIR_ERRTEST_ARGNEG(maxprocs, "maxprocs", mpi_errno);
}
}
{ -- handle_ptr -- info
MPIR_Info *info_ptr = NULL;
if (MPIR_Process.rank == root) {
MPIR_Info_get_ptr(info, info_ptr);
}
}
MPIX_Spawn_status:
.desc: Obtain the status of MPIX_Spawn
.skip: initcheck
.file: spawn_status_x
status: INFO, direction=out, [Status of MPIX_Spawn]
......@@ -351,3 +351,14 @@ int MPIR_Unpublish_name_impl(const char *service_name, MPIR_Info * info_ptr, con
fn_fail:
goto fn_exit;
}
int MPIR_Spawn_async_impl(const char *command, char *argv[], int maxprocs, MPIR_Info * info_ptr,
int root, int resize_allocation, MPIR_Info ** status_ptr)
{
return MPI_SUCCESS;
}
int MPIR_Spawn_status_impl(MPIR_Info ** status_ptr)
{
return MPI_SUCCESS;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment