
* Include a 'demo' component that shows some of the features. * Currently has hooks for: - MPI_Initialized - top, bottom - MPI_Init_thread - top, bottom - MPI_Finalized - top, bottom - MPI_Init - top (pre-opal_init), top (post-opal_init), error, bottom - MPI_Finalize - top, bottom * Other places in ompi can 'register' to hook into any one of these places by passing back a component structure filled with function pointers. * Add a `MCA_BASE_COMPONENT_FLAG_REQUIRED` flag to the MCA structure that is checked by the `hook` framework. If a required, static component has been excluded then the `hook` framework will fail to initialize. - See note in `opal/mca/mca.h` as to why this is checked in the `hook` framework and not in `opal/mca/base/mca_base_component_find.c` Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
66 строки
1.4 KiB
C
66 строки
1.4 KiB
C
/*
|
|
* Copyright (c) 2017 IBM Corporation. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#include "ompi_config.h"
|
|
|
|
#include "hook_demo.h"
|
|
|
|
#define DEBUG_OUTPUT( fn_name ) \
|
|
do { \
|
|
opal_output(0, "hook:demo: %s", __func__ ); \
|
|
} while(0)
|
|
|
|
void ompi_hook_demo_mpi_initialized_top(int *flag) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_initialized_bottom(int *flag) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
|
|
void ompi_hook_demo_mpi_finalized_top(int *flag) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_finalized_bottom(int *flag) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
|
|
void ompi_hook_demo_mpi_init_top(int argc, char **argv, int requested, int *provided) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_init_top_post_opal(int argc, char **argv, int requested, int *provided) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_init_bottom(int argc, char **argv, int requested, int *provided) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_init_error(int argc, char **argv, int requested, int *provided) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
|
|
void ompi_hook_demo_mpi_finalize_top(void) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
void ompi_hook_demo_mpi_finalize_bottom(void) {
|
|
DEBUG_OUTPUT();
|
|
}
|
|
|
|
|
|
void ompi_hook_demo_extra_mpi_init_bottom(int argc, char **argv, int requested, int *provided) {
|
|
DEBUG_OUTPUT();
|
|
}
|