int opal_init(int* pargc, char*** pargv) { int ret; if( ++opal_initialized != 1 ) { if( opal_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* initialize util code */ if (OPAL_SUCCESS != (ret = opal_init_util(pargc, pargv))) { return ret; } OBJ_CONSTRUCT(&opal_init_domain, opal_finalize_domain_t); (void) opal_finalize_domain_init (&opal_init_domain, "opal_init"); opal_finalize_set_domain (&opal_init_domain); opal_finalize_register_cleanup_arg (mca_base_framework_close_list, opal_init_frameworks); opal_finalize_register_cleanup (opal_tsd_keys_destruct); ret = mca_base_framework_open_list (opal_init_frameworks, 0); if (OPAL_UNLIKELY(OPAL_SUCCESS != ret)) { return opal_init_error ("opal_init framework open", ret); } /* initialize the memory manager / tracker */ if (OPAL_SUCCESS != (ret = opal_mem_hooks_init())) { return opal_init_error ("opal_mem_hooks_init", ret); } /* select the memory checker */ if (OPAL_SUCCESS != (ret = opal_memchecker_base_select())) { return opal_init_error ("opal_memchecker_base_select", ret); } /* * Initialize the general progress engine */ if (OPAL_SUCCESS != (ret = opal_progress_init())) { return opal_init_error ("opal_progress_init", ret); } /* we want to tick the event library whenever possible */ opal_progress_event_users_increment(); /* setup the shmem framework */ if (OPAL_SUCCESS != (ret = opal_shmem_base_select())) { return opal_init_error ("opal_shmem_base_select", ret); } /* Intitialize reachable framework */ if (OPAL_SUCCESS != (ret = opal_reachable_base_select())) { return opal_init_error ("opal_reachable_base_select", ret); } return OPAL_SUCCESS; }
int opal_init(int* pargc, char*** pargv) { int ret; char *error = NULL; if( ++opal_initialized != 1 ) { if( opal_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* initialize util code */ if (OPAL_SUCCESS != (ret = opal_init_util(pargc, pargv))) { return ret; } /* initialize the mca */ if (OPAL_SUCCESS != (ret = mca_base_open())) { error = "mca_base_open"; goto return_error; } /* open hwloc - since this is a static framework, no * select is required */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_hwloc_base_framework, 0))) { error = "opal_hwloc_base_open"; goto return_error; } /* the memcpy component should be one of the first who get * loaded in order to make sure we have all the available * versions of memcpy correctly configured. */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memcpy_base_framework, 0))) { error = "opal_memcpy_base_open"; goto return_error; } /* open the memory manager components. Memory hooks may be triggered before this (any time after mem_free_init(), actually). This is a hook available for memory manager hooks without good initialization routine support */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memory_base_framework, 0))) { error = "opal_memory_base_open"; goto return_error; } /* initialize the memory manager / tracker */ if (OPAL_SUCCESS != (ret = opal_mem_hooks_init())) { error = "opal_mem_hooks_init"; goto return_error; } /* initialize the memory checker, to allow early support for annotation */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memchecker_base_framework, 0))) { error = "opal_memchecker_base_open"; goto return_error; } /* select the memory checker */ if (OPAL_SUCCESS != (ret = opal_memchecker_base_select())) { error = "opal_memchecker_base_select"; goto return_error; } if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_backtrace_base_framework, 0))) { error = "opal_backtrace_base_open"; goto return_error; } if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_timer_base_framework, 0))) { error = "opal_timer_base_open"; goto return_error; } /* * Need to start the event and progress engines if none else is. * opal_cr_init uses the progress engine, so it is lumped together * into this set as well. */ /* * Initialize the event library */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_event_base_framework, 0))) { error = "opal_event_base_open"; goto return_error; } /* * Initialize the general progress engine */ if (OPAL_SUCCESS != (ret = opal_progress_init())) { error = "opal_progress_init"; goto return_error; } /* we want to tick the event library whenever possible */ opal_progress_event_users_increment(); /* setup the shmem framework */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_shmem_base_framework, 0))) { error = "opal_shmem_base_open"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_shmem_base_select())) { error = "opal_shmem_base_select"; goto return_error; } #if OPAL_ENABLE_FT_CR == 1 /* * Initialize the compression framework * Note: Currently only used in C/R so it has been marked to only * initialize when C/R is enabled. If other places in the code * wish to use this framework, it is safe to remove the protection. */ if( OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_compress_base_framework, 0)) ) { error = "opal_compress_base_open"; goto return_error; } if( OPAL_SUCCESS != (ret = opal_compress_base_select()) ) { error = "opal_compress_base_select"; goto return_error; } #endif /* * Initalize the checkpoint/restart functionality * Note: Always do this so we can detect if the user * attempts to checkpoint a non checkpointable job, * otherwise the tools may hang or not clean up properly. */ if (OPAL_SUCCESS != (ret = opal_cr_init() ) ) { error = "opal_cr_init"; goto return_error; } /* initialize the security framework */ if( OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_sec_base_framework, 0)) ) { error = "opal_sec_base_open"; goto return_error; } if( OPAL_SUCCESS != (ret = opal_sec_base_select()) ) { error = "opal_sec_base_select"; goto return_error; } return OPAL_SUCCESS; return_error: opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); return ret; }
int opal_init(int* pargc, char*** pargv) { int ret; char *error = NULL; if( ++opal_initialized != 1 ) { if( opal_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* initialize util code */ if (OPAL_SUCCESS != (ret = opal_init_util(pargc, pargv))) { return ret; } /* open hwloc - since this is a static framework, no * select is required */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_hwloc_base_framework, 0))) { error = "opal_hwloc_base_open"; goto return_error; } /* the memcpy component should be one of the first who get * loaded in order to make sure we have all the available * versions of memcpy correctly configured. */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memcpy_base_framework, 0))) { error = "opal_memcpy_base_open"; goto return_error; } /* open the memory manager components. Memory hooks may be triggered before this (any time after mem_free_init(), actually). This is a hook available for memory manager hooks without good initialization routine support */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memory_base_framework, 0))) { error = "opal_memory_base_open"; goto return_error; } /* initialize the memory manager / tracker */ if (OPAL_SUCCESS != (ret = opal_mem_hooks_init())) { error = "opal_mem_hooks_init"; goto return_error; } /* initialize the memory checker, to allow early support for annotation */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_memchecker_base_framework, 0))) { error = "opal_memchecker_base_open"; goto return_error; } /* select the memory checker */ if (OPAL_SUCCESS != (ret = opal_memchecker_base_select())) { error = "opal_memchecker_base_select"; goto return_error; } if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_backtrace_base_framework, 0))) { error = "opal_backtrace_base_open"; goto return_error; } if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_timer_base_framework, 0))) { error = "opal_timer_base_open"; goto return_error; } /* * Need to start the event and progress engines if none else is. */ /* * Initialize the event library */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_event_base_framework, 0))) { error = "opal_event_base_open"; goto return_error; } /* * Initialize the general progress engine */ if (OPAL_SUCCESS != (ret = opal_progress_init())) { error = "opal_progress_init"; goto return_error; } /* we want to tick the event library whenever possible */ opal_progress_event_users_increment(); /* setup the shmem framework */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_shmem_base_framework, 0))) { error = "opal_shmem_base_open"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_shmem_base_select())) { error = "opal_shmem_base_select"; goto return_error; } /* initialize the security framework */ if( OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_sec_base_framework, 0)) ) { error = "opal_sec_base_open"; goto return_error; } if( OPAL_SUCCESS != (ret = opal_sec_base_select()) ) { error = "opal_sec_base_select"; goto return_error; } return OPAL_SUCCESS; return_error: opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); return ret; }