diff --git a/ompi/mca/pml/crcpw/Makefile.am b/ompi/mca/pml/crcpw/Makefile.am deleted file mode 100644 index 381c37fd35..0000000000 --- a/ompi/mca/pml/crcpw/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -crcpw_sources = \ - pml_crcpw.h \ - pml_crcpw_component.c \ - pml_crcpw_module.c - -if MCA_BUILD_ompi_pml_crcpw_DSO -component_noinst = -component_install = mca_pml_crcpw.la -else -component_noinst = libmca_pml_crcpw.la -component_install = -endif - - -mcacomponentdir = $(ompilibdir) -mcacomponent_LTLIBRARIES = $(component_install) -mca_pml_crcpw_la_SOURCES = $(crcpw_sources) -mca_pml_crcpw_la_LDFLAGS = -module -avoid-version - -noinst_LTLIBRARIES = $(component_noinst) -libmca_pml_crcpw_la_SOURCES = $(crcpw_sources) -libmca_pml_crcpw_la_LDFLAGS = -module -avoid-version diff --git a/ompi/mca/pml/crcpw/configure.m4 b/ompi/mca/pml/crcpw/configure.m4 deleted file mode 100644 index b09529be4f..0000000000 --- a/ompi/mca/pml/crcpw/configure.m4 +++ /dev/null @@ -1,28 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2010 The Trustees of Indiana University. -# All rights reserved. -# Copyright (c) 2004-2005 The Trustees of the University of Tennessee. -# All rights reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_pml_crcpw_CONFIG([action-if-found], [action-if-not-found]) -# ----------------------------------------------------------- -AC_DEFUN([MCA_ompi_pml_crcpw_CONFIG],[ - AC_CONFIG_FILES([ompi/mca/pml/crcpw/Makefile]) - - # If we don't want FT, don't compile this component - AS_IF([test "$opal_want_ft_cr" = "1"], - [$1], - [$2]) -])dnl diff --git a/ompi/mca/pml/crcpw/owner.txt b/ompi/mca/pml/crcpw/owner.txt deleted file mode 100644 index 29b7476009..0000000000 --- a/ompi/mca/pml/crcpw/owner.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -# owner/status file -# owner: institution that is responsible for this package -# status: e.g. active, maintenance, unmaintained -# -owner: nobody -status: unmaintained diff --git a/ompi/mca/pml/crcpw/pml_crcpw.h b/ompi/mca/pml/crcpw/pml_crcpw.h deleted file mode 100644 index 5f6b800836..0000000000 --- a/ompi/mca/pml/crcpw/pml_crcpw.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2007 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -/** - * @file - */ - -#ifndef MCA_PML_CRCPW_H -#define MCA_PML_CRCPW_H - -#include "ompi_config.h" - -#include "opal/class/opal_free_list.h" -#include "ompi/request/request.h" -#include "ompi/mca/pml/pml.h" -#include "ompi/mca/pml/base/pml_base_request.h" -#include "ompi/mca/pml/base/pml_base_bsend.h" -#include "ompi/mca/pml/base/pml_base_sendreq.h" -#include "ompi/datatype/ompi_datatype.h" -#include "ompi/mca/crcp/crcp.h" -#include "ompi/mca/crcp/base/base.h" - -BEGIN_C_DECLS - - /** - * CRCPW PML module - */ - struct mca_pml_crcpw_component_t { - mca_pml_base_component_t super; - int verbose; - int priority; - int output_handle; - bool pml_crcp_wrapped; - }; - typedef struct mca_pml_crcpw_component_t mca_pml_crcpw_component_t; - OMPI_MODULE_DECLSPEC extern mca_pml_crcpw_component_t mca_pml_crcpw_component; - - struct mca_pml_crcpw_module_t { - mca_pml_base_module_t super; - mca_pml_base_component_t wrapped_pml_component; - mca_pml_base_module_t wrapped_pml_module; - }; - typedef struct mca_pml_crcpw_module_t mca_pml_crcpw_module_t; - extern mca_pml_crcpw_module_t mca_pml_crcpw_module; - - /* Free list of PML states */ - OMPI_MODULE_DECLSPEC extern opal_free_list_t pml_state_list; - OMPI_MODULE_DECLSPEC extern bool pml_crcpw_is_finalized; - - /* - * PML module functions. - */ - int mca_pml_crcpw_component_open(void); - int mca_pml_crcpw_component_close(void); - - mca_pml_base_module_t* mca_pml_crcpw_component_init(int *priority, - bool enable_progress_threads, - bool enable_mpi_threads - ); - - int mca_pml_crcpw_component_finalize(void); - - /* - * PML interface functions. - */ - int mca_pml_crcpw_enable( bool enable ); - - int mca_pml_crcpw_add_comm( struct ompi_communicator_t* comm ); - int mca_pml_crcpw_del_comm( struct ompi_communicator_t* comm ); - - int mca_pml_crcpw_add_procs( struct ompi_proc_t **procs, size_t nprocs ); - int mca_pml_crcpw_del_procs( struct ompi_proc_t **procs, size_t nprocs ); - - int mca_pml_crcpw_progress(void); - - int mca_pml_crcpw_iprobe(int dst, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t* status ); - - int mca_pml_crcpw_probe( int dst, int tag, struct ompi_communicator_t* comm, ompi_status_public_t* status ); - - - int mca_pml_crcpw_improbe( int dst, - int tag, - struct ompi_communicator_t* comm, - int *matched, - struct ompi_message_t **message, - ompi_status_public_t* status ); - - int mca_pml_crcpw_mprobe( int dst, - int tag, - struct ompi_communicator_t* comm, - struct ompi_message_t **message, - ompi_status_public_t* status ); - - int mca_pml_crcpw_isend_init( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request ); - - int mca_pml_crcpw_isend( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request ); - - int mca_pml_crcpw_send( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm ); - - int mca_pml_crcpw_irecv_init( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, struct ompi_request_t **request); - - int mca_pml_crcpw_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, struct ompi_request_t **request ); - - int mca_pml_crcpw_recv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, ompi_status_public_t* status); - - int mca_pml_crcpw_imrecv( void *buf, - size_t count, - ompi_datatype_t *datatype, - struct ompi_message_t **message, - struct ompi_request_t **request ); - - int mca_pml_crcpw_mrecv( void *buf, - size_t count, - ompi_datatype_t *datatype, - struct ompi_message_t **message, - ompi_status_public_t* status ); - - int mca_pml_crcpw_dump( struct ompi_communicator_t* comm, int verbose ); - - int mca_pml_crcpw_start( size_t count, ompi_request_t** requests ); - - int mca_pml_crcpw_ft_event(int state); - -END_C_DECLS - -#endif /* MCA_PML_CRCPW_H */ diff --git a/ompi/mca/pml/crcpw/pml_crcpw_component.c b/ompi/mca/pml/crcpw/pml_crcpw_component.c deleted file mode 100644 index 64bbfe455d..0000000000 --- a/ompi/mca/pml/crcpw/pml_crcpw_component.c +++ /dev/null @@ -1,192 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" -#include "opal/runtime/opal.h" -#include "opal/util/output.h" -#include "opal/mca/event/event.h" -#include "opal/mca/btl/base/base.h" - -#include "mpi.h" -#include "ompi/mca/pml/pml.h" -#include "ompi/mca/pml/base/pml_base_bsend.h" -#include "ompi/mca/pml/crcpw/pml_crcpw.h" -#include "ompi/mca/bml/base/base.h" - -static int mca_pml_crcpw_component_register(void); - -mca_pml_crcpw_component_t mca_pml_crcpw_component = { - { - /* First, the mca_base_component_t struct containing meta - information about the component itself */ - - .pmlm_version = { - MCA_PML_BASE_VERSION_2_0_0, - - .mca_component_name = "crcpw", - MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, - OMPI_RELEASE_VERSION), - .mca_open_component = mca_pml_crcpw_component_open, - .mca_close_component = mca_pml_crcpw_component_close, - .mca_register_component_params = mca_pml_crcpw_component_register, - }, - .pmlm_data = { - /* The component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, - - .pmlm_init = mca_pml_crcpw_component_init, - .pmlm_finalize = mca_pml_crcpw_component_finalize, - }, - /* Verbosity */ - 0, - /* Priority */ - PML_SELECT_WRAPPER_PRIORITY, - /* Are we being used as a wrapper? */ - false -}; - -opal_free_list_t pml_state_list; -bool pml_crcpw_is_finalized = false; - -static int mca_pml_crcpw_component_register(void) -{ - /* - * Register some MCA parameters - */ - mca_pml_crcpw_component.priority = PML_SELECT_WRAPPER_PRIORITY; - (void) mca_base_component_var_register(&mca_pml_crcpw_component.super.pmlm_version, "priority", - "Priority of the PML crcpw component", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, - &mca_pml_crcpw_component.priority); - - mca_pml_crcpw_component.verbose = 0; - (void) mca_base_component_var_register(&mca_pml_crcpw_component.super.pmlm_version, "verbose", - "Verbose level for the PML crcpw component", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, - &mca_pml_crcpw_component.verbose); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_component_open(void) -{ - opal_output_verbose( 10, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_open: Open"); - - mca_pml_crcpw_component.output_handle = opal_output_open(NULL); - if ( 0 != mca_pml_crcpw_component.verbose) { - opal_output_set_verbosity(mca_pml_crcpw_component.output_handle, - mca_pml_crcpw_component.verbose); - } - - /* - * Debug Output - */ - opal_output_verbose(10, mca_pml_crcpw_component.output_handle, - "pml:crcpw: open()"); - opal_output_verbose(20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: open: priority = %d", - mca_pml_crcpw_component.priority); - opal_output_verbose(20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: open: verbosity = %d", - mca_pml_crcpw_component.verbose); - - return OMPI_SUCCESS; -} - - -int mca_pml_crcpw_component_close(void) -{ - opal_output_verbose( 20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_close: Close"); - - return OMPI_SUCCESS; -} - - -mca_pml_base_module_t* mca_pml_crcpw_component_init(int* priority, - bool enable_progress_threads, - bool enable_mpi_threads) -{ - /* We use the PML_SELECT_WRAPPER_PRIORITY to indicate when this - * component should wrap around what is already selected - * If it is not set to this seminal value, then we are doing a - * normal selection operation - */ - if(*priority == PML_SELECT_WRAPPER_PRIORITY ) { - opal_output_verbose( 20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_init: Wrap the selected component %s", - mca_pml_base_selected_component.pmlm_version.mca_component_name); - - mca_pml_crcpw_module.wrapped_pml_component = mca_pml_base_selected_component; - mca_pml_crcpw_module.wrapped_pml_module = mca_pml; - mca_pml_crcpw_component.pml_crcp_wrapped = true; - - opal_output_verbose( 20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_init: Initalize Wrapper"); - - OBJ_CONSTRUCT(&pml_state_list, opal_free_list_t); - opal_free_list_init (&pml_state_list, - sizeof(ompi_crcp_base_pml_state_t), - opal_cache_line_size, - OBJ_CLASS(ompi_crcp_base_pml_state_t), - 0,opal_cache_line_size, - 5, /* Initial number */ - -1, /* Max = Unlimited */ - 64, /* Increment by */ - NULL, 0, NULL, NULL, NULL); - } - else { - opal_output_verbose( 20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_init: Priority %d", - mca_pml_crcpw_component.priority); - } - - - *priority = mca_pml_crcpw_component.priority; - - pml_crcpw_is_finalized = false; - - return &mca_pml_crcpw_module.super; -} - -int mca_pml_crcpw_component_finalize(void) -{ - opal_output_verbose( 20, mca_pml_crcpw_component.output_handle, - "pml:crcpw: component_finalize: Finalize"); - - OBJ_DESTRUCT(&pml_state_list); - - pml_crcpw_is_finalized = true; - - if(mca_pml_crcpw_component.pml_crcp_wrapped) { - return mca_pml_crcpw_module.wrapped_pml_component.pmlm_finalize(); - } - - return OMPI_SUCCESS; -} - diff --git a/ompi/mca/pml/crcpw/pml_crcpw_module.c b/ompi/mca/pml/crcpw/pml_crcpw_module.c deleted file mode 100644 index 51ed444221..0000000000 --- a/ompi/mca/pml/crcpw/pml_crcpw_module.c +++ /dev/null @@ -1,842 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2013 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include -#include - -#include "opal/mca/btl/base/base.h" -#include "ompi/mca/pml/pml.h" -#include "ompi/mca/pml/crcpw/pml_crcpw.h" -#include "ompi/mca/bml/base/base.h" - -#include "opal/class/opal_free_list.h" - -mca_pml_crcpw_module_t mca_pml_crcpw_module = { - { - mca_pml_crcpw_add_procs, - mca_pml_crcpw_del_procs, - mca_pml_crcpw_enable, - mca_pml_crcpw_progress, - mca_pml_crcpw_add_comm, - mca_pml_crcpw_del_comm, - mca_pml_crcpw_irecv_init, - mca_pml_crcpw_irecv, - mca_pml_crcpw_recv, - mca_pml_crcpw_isend_init, - mca_pml_crcpw_isend, - mca_pml_crcpw_send, - mca_pml_crcpw_iprobe, - mca_pml_crcpw_probe, - mca_pml_crcpw_start, - mca_pml_crcpw_improbe, - mca_pml_crcpw_mprobe, - mca_pml_crcpw_imrecv, - mca_pml_crcpw_mrecv, - mca_pml_crcpw_dump, - mca_pml_crcpw_ft_event, - - 32768, - INT_MAX - } -}; - -#define PML_CRCP_STATE_ALLOC(pml_state) \ -do { \ - if( !pml_crcpw_is_finalized ) { \ - pml_state = (ompi_crcp_base_pml_state_t*) \ - opal_free_list_wait (&pml_state_list); \ - } \ -} while(0); - -#define PML_CRCP_STATE_RETURN(pml_state) \ -do { \ - if( !pml_crcpw_is_finalized ) { \ - opal_free_list_return (&pml_state_list, \ - (opal_free_list_item_t*)pml_state); \ - } \ -} while(0); - -int mca_pml_crcpw_enable(bool enable) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - if( OPAL_UNLIKELY(NULL == ompi_crcp.pml_enable) ) { - return mca_pml_crcpw_module.wrapped_pml_module.pml_enable(enable); - } - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_enable(enable, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_enable(enable) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_enable(enable, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_add_comm(ompi_communicator_t* comm) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - if( OPAL_UNLIKELY(NULL == ompi_crcp.pml_add_comm) ) { - return mca_pml_crcpw_module.wrapped_pml_module.pml_add_comm(comm); - } - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_add_comm(comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_add_comm(comm) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_add_comm(comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_del_comm(ompi_communicator_t* comm) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - if( OPAL_UNLIKELY(NULL == ompi_crcp.pml_del_comm) ) { - return mca_pml_crcpw_module.wrapped_pml_module.pml_del_comm(comm); - } - - PML_CRCP_STATE_ALLOC(pml_state); - if( NULL == pml_state ) { - return mca_pml_crcpw_module.wrapped_pml_module.pml_del_comm(comm); - } - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_del_comm(comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_del_comm(comm) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_del_comm(comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_add_procs(ompi_proc_t** procs, size_t nprocs) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_add_procs(procs, nprocs, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_add_procs(procs, nprocs) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_add_procs(procs, nprocs, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_del_procs(ompi_proc_t** procs, size_t nprocs) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_del_procs(procs, nprocs, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_del_procs(procs, nprocs) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_del_procs(procs, nprocs, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_iprobe(int dst, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t* status ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_iprobe(dst, tag, comm, matched, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_DONE == pml_state->state) { - goto CLEANUP; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_iprobe(dst, tag, comm, matched, status) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_iprobe(dst, tag, comm, matched, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - CLEANUP: - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_probe( int dst, int tag, struct ompi_communicator_t* comm, ompi_status_public_t* status ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_probe(dst, tag, comm, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_DONE == pml_state->state) { - goto CLEANUP; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_probe(dst, tag, comm, status) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_probe(dst, tag, comm, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - CLEANUP: - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_isend_init( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_isend_init(buf, count, datatype, dst, tag, mode, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_isend_init(buf, count, datatype, dst, tag, mode, comm, request) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_isend_init(buf, count, datatype, dst, tag, mode, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_isend( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_isend(buf, count, datatype, dst, tag, mode, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_isend(buf, count, datatype, dst, tag, mode, comm, request) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_isend(buf, count, datatype, dst, tag, mode, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - opal_cr_stall_check = false; - OPAL_CR_TEST_CHECKPOINT_READY(); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_send( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, - mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_send(buf, count, datatype, dst, tag, mode, comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_send(buf, count, datatype, dst, tag, mode, comm) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_send(buf, count, datatype, dst, tag, mode, comm, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - opal_cr_stall_check = false; - OPAL_CR_TEST_CHECKPOINT_READY(); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_irecv_init( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, struct ompi_request_t **request) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_irecv_init(buf, count, datatype, src, tag, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_irecv_init(buf, count, datatype, src, tag, comm, request) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_irecv_init(buf, count, datatype, src, tag, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, struct ompi_request_t **request ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_irecv(buf, count, datatype, src, tag, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_DONE == pml_state->state) { - goto CLEANUP; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_irecv(buf, count, datatype, src, tag, comm, request) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_irecv(buf, count, datatype, src, tag, comm, request, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - CLEANUP: - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_recv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag, - struct ompi_communicator_t* comm, ompi_status_public_t* given_status) -{ - int ret = OMPI_SUCCESS, actual_ret = OMPI_SUCCESS; - ompi_status_public_t* status = NULL; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - if( given_status == NULL) { - status = (ompi_status_public_t*)malloc(sizeof(ompi_status_public_t)); - } - else { - status = given_status; - } - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_recv(buf, count, datatype, src, tag, comm, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_DONE == pml_state->state) { - goto CLEANUP; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (actual_ret = mca_pml_crcpw_module.wrapped_pml_module.pml_recv(buf, count, datatype, src, tag, comm, status) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_recv(buf, count, datatype, src, tag, comm, status, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( given_status == NULL) { - free(status); - } - - CLEANUP: - PML_CRCP_STATE_RETURN(pml_state); - - opal_cr_stall_check = false; - OPAL_CR_TEST_CHECKPOINT_READY(); - - return actual_ret; -} - -int mca_pml_crcpw_dump( struct ompi_communicator_t* comm, int verbose ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_dump(comm, verbose, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_dump(comm, verbose) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_dump(comm, verbose, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_progress(void) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - if( OPAL_LIKELY(NULL == ompi_crcp.pml_progress) ) { - return mca_pml_crcpw_module.wrapped_pml_module.pml_progress(); - } - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_progress(pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_progress() ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_progress(pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - -int mca_pml_crcpw_start( size_t count, ompi_request_t** requests ) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_start(count, requests, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_DONE == pml_state->state) { - goto CLEANUP; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_start(count, requests) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_start(count, requests, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - CLEANUP: - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -} - - -int -mca_pml_crcpw_improbe(int dst, - int tag, - struct ompi_communicator_t* comm, - int *matched, - struct ompi_message_t **message, - ompi_status_public_t* status) -{ - return OMPI_ERR_NOT_SUPPORTED; -} - - -int -mca_pml_crcpw_mprobe(int dst, - int tag, - struct ompi_communicator_t* comm, - struct ompi_message_t **message, - ompi_status_public_t* status) -{ - return OMPI_ERR_NOT_SUPPORTED; -} - - -int -mca_pml_crcpw_imrecv(void *buf, - size_t count, - ompi_datatype_t *datatype, - struct ompi_message_t **message, - struct ompi_request_t **request) -{ - return OMPI_ERR_NOT_SUPPORTED; -} - - -int -mca_pml_crcpw_mrecv(void *buf, - size_t count, - ompi_datatype_t *datatype, - struct ompi_message_t **message, - ompi_status_public_t* status) -{ - return OMPI_ERR_NOT_SUPPORTED; -} - - -int mca_pml_crcpw_ft_event(int state) -{ - int ret; - ompi_crcp_base_pml_state_t * pml_state = NULL; - - PML_CRCP_STATE_ALLOC(pml_state); - - pml_state->wrapped_pml_component = &(mca_pml_crcpw_module.wrapped_pml_component); - pml_state->wrapped_pml_module = &(mca_pml_crcpw_module.wrapped_pml_module); - - pml_state->state = OMPI_CRCP_PML_PRE; - pml_state = ompi_crcp.pml_ft_event(state, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - if( OMPI_CRCP_PML_SKIP != pml_state->state && - NULL != mca_pml_crcpw_module.wrapped_pml_module.pml_ft_event) { - if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_ft_event(state) ) ) { - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - } - - pml_state->state = OMPI_CRCP_PML_POST; - pml_state = ompi_crcp.pml_ft_event(state, pml_state); - if( OMPI_SUCCESS != pml_state->error_code) { - ret = pml_state->error_code; - PML_CRCP_STATE_RETURN(pml_state); - return ret; - } - - PML_CRCP_STATE_RETURN(pml_state); - - return OMPI_SUCCESS; -}