diff --git a/README b/README index 7d83833371..22b7c1ab72 100644 --- a/README +++ b/README @@ -874,9 +874,6 @@ Open MPI Extensions - affinity: Provides the OMPI_Affinity_str() a string indicating the resources which a process is bound. For more details, see its man page. - - cr: Provides routines to access to checkpoint restart routines. - See ompi/mpiext/cr/mpiext_cr_c.h for a listing of available - functions. - cuda: When the library is compiled with CUDA-aware support, it provides two things. First, a macro MPIX_CUDA_AWARE_SUPPORT. Secondly, the function diff --git a/ompi/mpiext/cr/Makefile.am b/ompi/mpiext/cr/Makefile.am deleted file mode 100644 index 1ab8b74818..0000000000 --- a/ompi/mpiext/cr/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# -# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This Makefile is not traversed during a normal "make all" in an OMPI -# build. It *is* traversed during "make dist", however. So you can -# put EXTRA_DIST targets in here. -# -# You can also use this as a convenience for building this MPI -# extension (i.e., "make all" in this directory to invoke "make all" -# in all the subdirectories). - -SUBDIRS = c diff --git a/ompi/mpiext/cr/c/Makefile.am b/ompi/mpiext/cr/c/Makefile.am deleted file mode 100644 index 9a35c55381..0000000000 --- a/ompi/mpiext/cr/c/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -# -# Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2018 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This file builds the C bindings for MPI extensions. It must be -# present in all MPI extensions. - -# We must set these #defines so that the inner OMPI MPI prototype -# header files do the Right Thing. -AM_CPPFLAGS = -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_FORTRAN_WRAPPERS=1 - -# Convenience libtool library that will be slurped up into libmpi.la. -noinst_LTLIBRARIES = libmpiext_cr_c.la - -# This is where the top-level header file (that is included in -# ) must be installed. -ompidir = $(ompiincludedir)/mpiext - -# This is the header file that is installed. -ompi_HEADERS = mpiext_cr_c.h - -# Sources for the convenience libtool library. Other than the one -# header file, all source files in the extension have no file naming -# conventions. -libmpiext_cr_c_la_SOURCES = \ - $(ompi_HEADERS) \ - checkpoint.c \ - restart.c \ - migrate.c \ - inc_register_callback.c \ - quiesce_start.c \ - quiesce_end.c \ - quiesce_checkpoint.c \ - self_register_checkpoint.c \ - self_register_restart.c \ - self_register_continue.c -libmpiext_cr_c_la_LDFLAGS = -module -avoid-version diff --git a/ompi/mpiext/cr/c/checkpoint.c b/ompi/mpiext/cr/c/checkpoint.c deleted file mode 100644 index fbd956eb35..0000000000 --- a/ompi/mpiext/cr/c/checkpoint.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Checkpoint"; -#define HANDLE_SIZE_MAX 256 - -int OMPI_CR_Checkpoint(char **handle, int *seq, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - MPI_Comm comm = MPI_COMM_WORLD; - orte_snapc_base_request_op_t *datum = NULL; - int state = 0; - int my_rank; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_CHECKPOINT; - datum->is_active = true; - - MPI_Comm_rank(comm, &my_rank); - if( 0 == my_rank ) { - datum->leader = OMPI_PROC_MY_NAME->vpid; - } else { - datum->leader = -1; /* Unknown from non-root ranks */ - } - - /* - * All processes must make this call before it can start - */ - MPI_Barrier(comm); - - /* - * Leader sends the request - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - if( OMPI_SUCCESS != ret ) { - OBJ_RELEASE(datum); - OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_OTHER, - FUNC_NAME); - } - OPAL_CR_EXIT_LIBRARY(); - - /* - * Leader then sends out the commit message - */ - if( datum->leader == (int)OMPI_PROC_MY_NAME->vpid ) { - *handle = strdup(datum->global_handle); - *seq = datum->seq_num; - state = 0; - } else { - *handle = (char*)malloc(sizeof(char)*HANDLE_SIZE_MAX); - } - - MPI_Bcast(&state, 1, MPI_INT, 0, comm); - MPI_Bcast(seq, 1, MPI_INT, 0, comm); - MPI_Bcast(*handle, HANDLE_SIZE_MAX, MPI_CHAR, 0, comm); - - datum->is_active = false; - OBJ_RELEASE(datum); - - return ret; -} diff --git a/ompi/mpiext/cr/c/inc_register_callback.c b/ompi/mpiext/cr/c/inc_register_callback.c deleted file mode 100644 index 37ee760553..0000000000 --- a/ompi/mpiext/cr/c/inc_register_callback.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "opal/runtime/opal_cr.h" -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "ompi/errhandler/errhandler.h" - -static const char FUNC_NAME[] = "OMPI_CR_INC_register_callback"; - -int OMPI_CR_INC_register_callback(OMPI_CR_INC_callback_event_t event, - OMPI_CR_INC_callback_function function, - OMPI_CR_INC_callback_function *prev_function) -{ - int rc; - - if ( MPI_PARAM_CHECK ) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - OPAL_CR_ENTER_LIBRARY(); - - rc = opal_cr_user_inc_register_callback(event, function, prev_function); - - OMPI_ERRHANDLER_RETURN(rc, MPI_COMM_WORLD, rc, FUNC_NAME); -} diff --git a/ompi/mpiext/cr/c/migrate.c b/ompi/mpiext/cr/c/migrate.c deleted file mode 100644 index 2ac1c28cf6..0000000000 --- a/ompi/mpiext/cr/c/migrate.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012-2018 Cisco Systems, Inc. All rights reserved - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "opal/util/string_copy.h" - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Migrate"; - -int OMPI_CR_Migrate(MPI_Comm comm, char *hostname, int rank, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - orte_snapc_base_request_op_t *datum = NULL; - int my_rank, my_size, i; - char loc_hostname[MPI_MAX_PROCESSOR_NAME]; - int my_vpid; - int info_flag; - char info_value[6]; - int my_off_node = (int)false; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_MIGRATE; - datum->is_active = true; - - MPI_Comm_rank(comm, &my_rank); - MPI_Comm_size(comm, &my_size); - if( 0 == my_rank ) { - datum->leader = OMPI_PROC_MY_NAME->vpid; - } else { - datum->leader = -1; /* Unknown from non-root ranks */ - } - - /* - * Gather all preferences to the root - */ - if( NULL == hostname ) { - loc_hostname[0] = '\0'; - } else { - opal_string_copy(loc_hostname, hostname, sizeof(loc_hostname)); - } - my_vpid = (int) OMPI_PROC_MY_NAME->vpid; - - if( 0 == my_rank ) { - datum->mig_num = my_size; - datum->mig_vpids = (int *) malloc(sizeof(int) * my_size); - datum->mig_host_pref = (char (*)[OPAL_MAX_PROCESSOR_NAME]) malloc(sizeof(char) * my_size * MPI_MAX_PROCESSOR_NAME); - datum->mig_vpid_pref = (int *) malloc(sizeof(int) * my_size); - datum->mig_off_node = (int *) malloc(sizeof(int) * my_size); - - for( i = 0; i < my_size; ++i ) { - (datum->mig_vpids)[i] = 0; - (datum->mig_host_pref)[i][0] = '\0'; - (datum->mig_vpid_pref)[i] = 0; - (datum->mig_off_node)[i] = (int)false; - } - } - - my_off_node = (int)false; - if( NULL != info ) { - MPI_Info_get(*info, "CR_OFF_NODE", 5, info_value, &info_flag); - if( info_flag ) { - if( 0 == strncmp(info_value, "true", strlen("true")) ) { - my_off_node = (int)true; - } - } - } - - MPI_Gather(&my_vpid, 1, MPI_INT, - (datum->mig_vpids), 1, MPI_INT, 0, comm); - MPI_Gather(loc_hostname, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, - (datum->mig_host_pref), MPI_MAX_PROCESSOR_NAME, MPI_CHAR, 0, comm); - MPI_Gather(&my_vpid, 1, MPI_INT, - (datum->mig_vpid_pref), 1, MPI_INT, 0, comm); - MPI_Gather(&my_off_node, 1, MPI_INT, - (datum->mig_off_node), 1, MPI_INT, 0, comm); - - /* - * Leader sends the request - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - if( OMPI_SUCCESS != ret ) { - OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_OTHER, - FUNC_NAME); - } - OPAL_CR_EXIT_LIBRARY(); - - datum->is_active = false; - OBJ_RELEASE(datum); - - /* - * All processes must sync before leaving - */ - MPI_Barrier(comm); - - return ret; -} diff --git a/ompi/mpiext/cr/c/mpiext_cr_c.h b/ompi/mpiext/cr/c/mpiext_cr_c.h deleted file mode 100644 index d54d6794a6..0000000000 --- a/ompi/mpiext/cr/c/mpiext_cr_c.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University. - * All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ -#include "opal/runtime/opal_cr.h" - -/******************************** - * C/R Interfaces - ********************************/ -/* - * Request a checkpoint - */ -OMPI_DECLSPEC int OMPI_CR_Checkpoint(char **handle, int *seq, MPI_Info *info); - -/* - * Request a restart - */ -OMPI_DECLSPEC int OMPI_CR_Restart(char *handle, int seq, MPI_Info *info); - - -/******************************** - * Migration Interface - ********************************/ -/* - * Request a migration - */ -OMPI_DECLSPEC int OMPI_CR_Migrate(MPI_Comm comm, char *hostname, int rank, MPI_Info *info); - - -/******************************** - * INC Interfaces - ********************************/ -typedef opal_cr_user_inc_callback_event_t OMPI_CR_INC_callback_event_t; - -typedef opal_cr_user_inc_callback_state_t OMPI_CR_INC_callback_state_t; - -typedef int (*OMPI_CR_INC_callback_function)(OMPI_CR_INC_callback_event_t event, - OMPI_CR_INC_callback_state_t state); - -OMPI_DECLSPEC int OMPI_CR_INC_register_callback(OMPI_CR_INC_callback_event_t event, - OMPI_CR_INC_callback_function function, - OMPI_CR_INC_callback_function *prev_function); - - -/******************************** - * SELF CRS Application Interfaces - ********************************/ -typedef int (*OMPI_CR_self_checkpoint_fn)(char **restart_cmd); -typedef int (*OMPI_CR_self_restart_fn)(void); -typedef int (*OMPI_CR_self_continue_fn)(void); - -OMPI_DECLSPEC int OMPI_CR_self_register_checkpoint_callback(OMPI_CR_self_checkpoint_fn function); -OMPI_DECLSPEC int OMPI_CR_self_register_restart_callback(OMPI_CR_self_restart_fn function); -OMPI_DECLSPEC int OMPI_CR_self_register_continue_callback(OMPI_CR_self_continue_fn function); - - -/******************************** - * Quiescence Interfaces - ********************************/ -/* - * Start the Quiescent region. - * Note: 'comm' required to be MPI_COMM_WORLD - */ -OMPI_DECLSPEC int OMPI_CR_Quiesce_start(MPI_Comm comm, MPI_Info *info); - -/* - * Request a checkpoint during a quiescent region - * Note: 'comm' required to be MPI_COMM_WORLD - */ -OMPI_DECLSPEC int OMPI_CR_Quiesce_checkpoint(MPI_Comm comm, char **handle, int *seq, MPI_Info *info); - -/* - * End the Quiescent Region - * Note: 'comm' required to be MPI_COMM_WORLD - */ -OMPI_DECLSPEC int OMPI_CR_Quiesce_end(MPI_Comm comm, MPI_Info *info); diff --git a/ompi/mpiext/cr/c/quiesce_checkpoint.c b/ompi/mpiext/cr/c/quiesce_checkpoint.c deleted file mode 100644 index 85ff1f48e8..0000000000 --- a/ompi/mpiext/cr/c/quiesce_checkpoint.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Quiesce_checkpoint"; - -int OMPI_CR_Quiesce_checkpoint(MPI_Comm commP, char **handle, int *seq, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - MPI_Comm comm = MPI_COMM_WORLD; /* Currently ignore provided comm */ - orte_snapc_base_request_op_t *datum = NULL; - int my_rank; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_QUIESCE_CHECKPOINT; - datum->is_active = true; - - MPI_Comm_rank(comm, &my_rank); - if( 0 == my_rank ) { - datum->leader = OMPI_PROC_MY_NAME->vpid; - } else { - datum->leader = -1; /* Unknown from non-root ranks */ - } - - /* - * Since we are quiescent, then this is a local operation - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - /*ret = ompi_crcp_base_quiesce_start(info);*/ - if( OMPI_SUCCESS != ret ) { - OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_OTHER, - FUNC_NAME); - } - OPAL_CR_EXIT_LIBRARY(); - - *handle = strdup(datum->global_handle); - *seq = datum->seq_num; - - datum->is_active = false; - OBJ_RELEASE(datum); - - return ret; -} diff --git a/ompi/mpiext/cr/c/quiesce_end.c b/ompi/mpiext/cr/c/quiesce_end.c deleted file mode 100644 index 7d716f2f7a..0000000000 --- a/ompi/mpiext/cr/c/quiesce_end.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Quiesce_end"; - -int OMPI_CR_Quiesce_end(MPI_Comm commP, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - MPI_Comm comm = MPI_COMM_WORLD; /* Currently ignore provided comm */ - orte_snapc_base_request_op_t *datum = NULL; - int my_rank; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_QUIESCE_END; - datum->is_active = true; - - MPI_Comm_rank(comm, &my_rank); - if( 0 == my_rank ) { - datum->leader = OMPI_PROC_MY_NAME->vpid; - } else { - datum->leader = -1; /* Unknown from non-root ranks */ - } - - /* - * Leader sends the request - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - /*ret = ompi_crcp_base_quiesce_end(info);*/ - if( OMPI_SUCCESS != ret ) { - OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_OTHER, - FUNC_NAME); - } - OPAL_CR_EXIT_LIBRARY(); - - /* - * All processes must make this call before it can complete - */ - MPI_Barrier(comm); - - /* - * (Old) info logic - */ - /*cur_datum.epoch = -1;*/ - - return ret; -} - diff --git a/ompi/mpiext/cr/c/quiesce_start.c b/ompi/mpiext/cr/c/quiesce_start.c deleted file mode 100644 index 3c15ab2964..0000000000 --- a/ompi/mpiext/cr/c/quiesce_start.c +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2011 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Quiesce_start"; - -int OMPI_CR_Quiesce_start(MPI_Comm commP, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - MPI_Comm comm = MPI_COMM_WORLD; /* Currently ignore provided comm */ - orte_snapc_base_request_op_t *datum = NULL; - int my_rank; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_QUIESCE_START; - datum->is_active = true; - - MPI_Comm_rank(comm, &my_rank); - if( 0 == my_rank ) { - datum->leader = OMPI_PROC_MY_NAME->vpid; - } else { - datum->leader = -1; /* Unknown from non-root ranks */ - } - - /* - * All processes must make this call before it can start - */ - MPI_Barrier(comm); - - /* - * Leader sends the request - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - /*ret = ompi_crcp_base_quiesce_start(info);*/ - if( OMPI_SUCCESS != ret ) { - OBJ_RELEASE(datum); - OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_OTHER, - FUNC_NAME); - } - - OPAL_CR_EXIT_LIBRARY(); - - datum->is_active = false; - OBJ_RELEASE(datum); - - /* - * (Old) info logic - */ - /*opal_info_set((opal_info_t*)*info, "target", cur_datum.target_dir);*/ - - return ret; -} - -/***************** - * Local Functions - ******************/ -#if 0 -/* Info keys: - * - * - crs: - * none = (Default) No CRS Service - * default = Whatever CRS service MPI chooses - * blcr = BLCR - * self = app level callbacks - * - * - cmdline: - * Command line to restart the process with. - * If empty, the user must manually enter it - * - * - target: - * Absolute path to the target directory. - * - * - handle: - * first = Earliest checkpoint directory available - * last = Most recent checkpoint directory available - * [global:local] = handle provided by the MPI library - * - * - restarting: - * 0 = not restarting - * 1 = restarting - * - * - checkpointing: - * 0 = No need to prepare for checkpointing - * 1 = MPI should prepare for checkpointing - * - * - inflight: - * default = message - * message = Drain inflight messages at the message level - * network = Drain inflight messages at the network level (if possible) - * - * - user_space_mem: - * 0 = Memory does not need to be managed - * 1 = Memory must be in user space (i.e., not on network card - * - */ -static int extract_info_into_datum(opal_info_t *info, orte_snapc_base_quiesce_t *datum) -{ - int info_flag = false; - int max_crs_len = 32; - bool info_bool = false; - char *info_char = NULL; - - info_char = (char *) malloc(sizeof(char) * (OPAL_PATH_MAX+1)); - - /* - * Key: crs - */ - opal_info_get(info, "crs", max_crs_len, info_char, &info_flag); - if( info_flag) { - datum->crs_name = strdup(info_char); - } - - /* - * Key: cmdline - */ - opal_info_get(info, "cmdline", OPAL_PATH_MAX, info_char, &info_flag); - if( info_flag) { - datum->cmdline = strdup(info_char); - } - - /* - * Key: handle - */ - opal_info_get(info, "handle", OPAL_PATH_MAX, info_char, &info_flag); - if( info_flag) { - datum->handle = strdup(info_char); - } - - /* - * Key: target - */ - opal_info_get(info, "target", OPAL_PATH_MAX, info_char, &info_flag); - if( info_flag) { - datum->target_dir = strdup(info_char); - } - - /* - * Key: restarting - */ - opal_info_get_bool(info, "restarting", &info_bool, &info_flag); - if( info_flag ) { - datum->restarting = info_bool; - } else { - datum->restarting = false; - } - - /* - * Key: checkpointing - */ - opal_info_get_bool(info, "checkpointing", &info_bool, &info_flag); - if( info_flag ) { - datum->checkpointing = info_bool; - } else { - datum->checkpointing = false; - } - - /* - * Display all values - */ - OPAL_OUTPUT_VERBOSE((3, mca_crcp_bkmrk_component.super.output_handle, - "crcp:bkmrk: %s extract_info: Info('crs' = '%s')", - OMPI_NAME_PRINT(OMPI_PROC_MY_NAME), - (NULL == datum->crs_name ? "Default (none)" : datum->crs_name))); - OPAL_OUTPUT_VERBOSE((3, mca_crcp_bkmrk_component.super.output_handle, - "crcp:bkmrk: %s extract_info: Info('cmdline' = '%s')", - OMPI_NAME_PRINT(OMPI_PROC_MY_NAME), - (NULL == datum->cmdline ? "Default ()" : datum->cmdline))); - OPAL_OUTPUT_VERBOSE((3, mca_crcp_bkmrk_component.super.output_handle, - "crcp:bkmrk: %s extract_info: Info('checkpointing' = '%c')", - OMPI_NAME_PRINT(OMPI_PROC_MY_NAME), - (datum->checkpointing ? 'T' : 'F'))); - OPAL_OUTPUT_VERBOSE((3, mca_crcp_bkmrk_component.super.output_handle, - "crcp:bkmrk: %s extract_info: Info('restarting' = '%c')", - OMPI_NAME_PRINT(OMPI_PROC_MY_NAME), - (datum->restarting ? 'T' : 'F'))); - - if( NULL != info_char ) { - free(info_char); - info_char = NULL; - } - - return OMPI_SUCCESS; -} -#endif diff --git a/ompi/mpiext/cr/c/restart.c b/ompi/mpiext/cr/c/restart.c deleted file mode 100644 index 38814b08de..0000000000 --- a/ompi/mpiext/cr/c/restart.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "ompi/info/info.h" -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "orte/mca/snapc/snapc.h" - -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -static const char FUNC_NAME[] = "OMPI_CR_Restart"; - -int OMPI_CR_Restart(char *handle, int seq, MPI_Info *info) -{ - int ret = MPI_SUCCESS; - MPI_Comm comm = MPI_COMM_WORLD; - orte_snapc_base_request_op_t *datum = NULL; - - /* argument checking */ - if (MPI_PARAM_CHECK) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - /* - * Setup the data structure for the operation - */ - datum = OBJ_NEW(orte_snapc_base_request_op_t); - datum->event = ORTE_SNAPC_OP_RESTART; - datum->is_active = true; - - /* - * Restart is not collective, so the caller is the leader - */ - datum->leader = OMPI_PROC_MY_NAME->vpid; - datum->seq_num = seq; - datum->global_handle = strdup(handle); - - /* - * Leader sends the request - */ - OPAL_CR_ENTER_LIBRARY(); - ret = orte_snapc.request_op(datum); - if( OMPI_SUCCESS != ret ) { - OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_OTHER, - FUNC_NAME); - } - OPAL_CR_EXIT_LIBRARY(); - - datum->is_active = false; - OBJ_RELEASE(datum); - - /********** If successful, should never reach this point (JJH) ******/ - - return ret; -} diff --git a/ompi/mpiext/cr/c/self_register_checkpoint.c b/ompi/mpiext/cr/c/self_register_checkpoint.c deleted file mode 100644 index a7bdc6330e..0000000000 --- a/ompi/mpiext/cr/c/self_register_checkpoint.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "opal/runtime/opal_cr.h" -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "ompi/errhandler/errhandler.h" -#include "opal/mca/crs/crs.h" -#include "opal/mca/crs/base/base.h" - -static const char FUNC_NAME[] = "OMPI_CR_self_register_checkpoint_callback"; - -int OMPI_CR_self_register_checkpoint_callback(OMPI_CR_self_checkpoint_fn function) -{ - int rc; - - if ( MPI_PARAM_CHECK ) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - OPAL_CR_ENTER_LIBRARY(); - - rc = opal_crs_base_self_register_checkpoint_callback(function); - - OMPI_ERRHANDLER_RETURN(rc, MPI_COMM_WORLD, rc, FUNC_NAME); -} diff --git a/ompi/mpiext/cr/c/self_register_continue.c b/ompi/mpiext/cr/c/self_register_continue.c deleted file mode 100644 index 166063699d..0000000000 --- a/ompi/mpiext/cr/c/self_register_continue.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "opal/runtime/opal_cr.h" -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "ompi/errhandler/errhandler.h" -#include "opal/mca/crs/crs.h" -#include "opal/mca/crs/base/base.h" - -static const char FUNC_NAME[] = "OMPI_CR_self_register_continue_callback"; - -int OMPI_CR_self_register_continue_callback(OMPI_CR_self_continue_fn function) -{ - int rc; - - if ( MPI_PARAM_CHECK ) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - OPAL_CR_ENTER_LIBRARY(); - - rc = opal_crs_base_self_register_continue_callback(function); - - OMPI_ERRHANDLER_RETURN(rc, MPI_COMM_WORLD, rc, FUNC_NAME); -} diff --git a/ompi/mpiext/cr/c/self_register_restart.c b/ompi/mpiext/cr/c/self_register_restart.c deleted file mode 100644 index 6e7675c3f6..0000000000 --- a/ompi/mpiext/cr/c/self_register_restart.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include - -#include "ompi/mpi/c/bindings.h" -#include "opal/runtime/opal_cr.h" -#include "ompi/mpiext/cr/c/mpiext_cr_c.h" - -#include "ompi/runtime/params.h" -#include "ompi/communicator/communicator.h" -#include "ompi/errhandler/errhandler.h" -#include "opal/mca/crs/crs.h" -#include "opal/mca/crs/base/base.h" - -static const char FUNC_NAME[] = "OMPI_CR_self_register_restart_callback"; - -int OMPI_CR_self_register_restart_callback(OMPI_CR_self_restart_fn function) -{ - int rc; - - if ( MPI_PARAM_CHECK ) { - OMPI_ERR_INIT_FINALIZE(FUNC_NAME); - } - - OPAL_CR_ENTER_LIBRARY(); - - rc = opal_crs_base_self_register_restart_callback(function); - - OMPI_ERRHANDLER_RETURN(rc, MPI_COMM_WORLD, rc, FUNC_NAME); -} diff --git a/ompi/mpiext/cr/configure.m4 b/ompi/mpiext/cr/configure.m4 deleted file mode 100644 index ca07c5cb94..0000000000 --- a/ompi/mpiext/cr/configure.m4 +++ /dev/null @@ -1,40 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2010 The Trustees of Indiana University. -# All rights reserved. -# Copyright (c) 2012-2015 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# OMPI_MPIEXT_cr_CONFIG([action-if-found], [action-if-not-found]) -# ----------------------------------------------------------- -AC_DEFUN([OMPI_MPIEXT_cr_CONFIG],[ - AC_CONFIG_FILES([ompi/mpiext/cr/Makefile]) - AC_CONFIG_FILES([ompi/mpiext/cr/c/Makefile]) - - OPAL_VAR_SCOPE_PUSH([ompi_mpi_ext_cr_happy]) - - # If we don't want FT, don't compile this extention - AS_IF([test "$ENABLE_cr" = "1" || \ - test "$ENABLE_EXT_ALL" = "1"], - [ompi_mpi_ext_cr_happy=1], - [ompi_mpi_ext_cr_happy=0]) - - AS_IF([test "$ompi_mpi_ext_cr_happy" = "1" && \ - test "$opal_want_ft_cr" = "1"], - [$1], - [ # Error if the user specifically asked for this extension, - # but we can't build it. - AS_IF([test "$ENABLE_cr" = "1"], - [AC_MSG_WARN([Requested "cr" MPI extension, but cannot build it]) - AC_MSG_WARN([because fault tolerance is not enabled.]) - AC_MSG_WARN([Try again with --enable-ft]) - AC_MSG_ERROR([Cannot continue])]) - $2]) - - OPAL_VAR_SCOPE_POP -])