1
1

Merge pull request #3793 from bosilca/topic/monitoring_install_fix

Topic/monitoring install fix
Этот коммит содержится в:
bosilca 2017-09-25 15:05:11 -04:00 коммит произвёл GitHub
родитель 702a535c58 64bff0e326
Коммит f8a02eb649
13 изменённых файлов: 118 добавлений и 34 удалений

Просмотреть файл

@ -1420,11 +1420,8 @@ AC_CONFIG_FILES([
test/threads/Makefile
test/util/Makefile
])
m4_ifdef([project_ompi], [AC_CONFIG_FILES([test/monitoring/Makefile])])
m4_ifdef([project_ompi], [
m4_ifdef([MCA_BUILD_ompi_pml_monitoring_DSO_TRUE],
[AC_CONFIG_LINKS(test/monitoring/profile2mat.pl:test/monitoring/profile2mat.pl
test/monitoring/aggregate_profile.pl:test/monitoring/aggregate_profile.pl)])])
AC_CONFIG_FILES([contrib/dist/mofed/debian/rules],
[chmod +x contrib/dist/mofed/debian/rules])

23
ompi/mca/coll/monitoring/configure.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,23 @@
# -*- shell-script -*-
#
# Copyright (c) 2017 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# MCA_ompi_coll_monitoring_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_ompi_coll_monitoring_CONFIG],[
AC_CONFIG_FILES([ompi/mca/coll/monitoring/Makefile])
AS_IF([test MCA_BUILD_ompi_common_monitoring_DSO_TRUE == ''],
[$1],
[$2])
])dnl

Просмотреть файл

@ -1,4 +1,7 @@
#
# Copyright (c) 2016 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2016 Inria. All rights reserved.
# Copyright (c) 2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
@ -9,6 +12,8 @@
# $HEADER$
#
EXTRA_DIST = profile2mat.pl aggregate_profile.pl
sources = common_monitoring.c common_monitoring_coll.c
headers = common_monitoring.h common_monitoring_coll.h
@ -19,6 +24,19 @@ component_noinst = libmca_common_monitoring_noinst.la
if MCA_BUILD_ompi_common_monitoring_DSO
lib_LTLIBRARIES += $(component_install)
lib_LTLIBRARIES += ompi_monitoring_prof.la
ompi_monitoring_prof_la_SOURCES = monitoring_prof.c
ompi_monitoring_prof_la_LDFLAGS= \
-module -avoid-version -shared $(WRAPPER_EXTRA_LDFLAGS)
ompi_monitoring_prof_la_LIBADD = \
$(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \
$(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la
if OPAL_INSTALL_BINARIES
bin_SCRIPTS = profile2mat.pl aggregate_profile.pl
endif # OPAL_INSTALL_BINARIES
else
noinst_LTLIBRARIES += $(component_noinst)
endif

Просмотреть файл

@ -110,6 +110,7 @@ typedef struct mca_monitoring_coll_data_t mca_monitoring_coll_data_t;
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_monitoring_coll_data_t);
OMPI_DECLSPEC mca_monitoring_coll_data_t*mca_common_monitoring_coll_new(ompi_communicator_t*comm);
OMPI_DECLSPEC int mca_common_monitoring_coll_cache_name(ompi_communicator_t*comm);
OMPI_DECLSPEC void mca_common_monitoring_coll_release(mca_monitoring_coll_data_t*data);
OMPI_DECLSPEC void mca_common_monitoring_coll_o2a(size_t size, mca_monitoring_coll_data_t*data);
OMPI_DECLSPEC void mca_common_monitoring_coll_a2o(size_t size, mca_monitoring_coll_data_t*data);

Просмотреть файл

@ -41,13 +41,20 @@ struct mca_monitoring_coll_data_t {
/* Collectives operation monitoring */
static opal_hash_table_t *comm_data = NULL;
int mca_common_monitoring_coll_cache_name(ompi_communicator_t*comm)
{
mca_monitoring_coll_data_t*data;
int ret = opal_hash_table_get_value_uint64(comm_data, *((uint64_t*)&comm), (void*)&data);
if( OPAL_SUCCESS == ret ) {
data->comm_name = strdup(comm->c_name);
data->p_comm = NULL;
}
return ret;
}
static inline void mca_common_monitoring_coll_cache(mca_monitoring_coll_data_t*data)
{
if( data->is_released ) {
/* As long as the data struct is not released, we still have the communicator to
immediately fetch the communicator's name */
data->comm_name = strdup(data->p_comm->c_name);
}
int world_rank;
if( -1 == data->world_rank ) {
/* Get current process world_rank */
mca_common_monitoring_get_world_rank(ompi_comm_rank(data->p_comm), data->p_comm,
@ -160,9 +167,8 @@ void mca_common_monitoring_coll_flush(FILE *pf, mca_monitoring_coll_data_t*data)
"O2A\t%" PRId32 "\t%zu bytes\t%zu msgs sent\n"
"A2O\t%" PRId32 "\t%zu bytes\t%zu msgs sent\n"
"A2A\t%" PRId32 "\t%zu bytes\t%zu msgs sent\n",
data->p_comm ? data->p_comm->c_name
: data->comm_name ? data->comm_name : "(no-name)",
data->procs,
data->comm_name ? data->comm_name : data->p_comm ?
data->p_comm->c_name : "(no-name)", data->procs,
data->world_rank, data->o2a_size, data->o2a_count,
data->world_rank, data->a2o_size, data->a2o_count,
data->world_rank, data->a2a_size, data->a2a_count);

28
ompi/mca/common/monitoring/configure.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,28 @@
# -*- shell-script -*-
#
# Copyright (c) 2017 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# MCA_ompi_common_monitoring_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_ompi_common_monitoring_CONFIG],[
AC_CONFIG_FILES([ompi/mca/common/monitoring/Makefile])
m4_ifdef([project_ompi], [
m4_ifdef([MCA_BUILD_ompi_common_monitoring_DSO_TRUE],
[AC_CONFIG_LINKS(profile2mat.pl:test/monitoring/profile2mat.pl
aggregate_profile.pl:test/monitoring/aggregate_profile.pl)])])
AS_IF([test MCA_BUILD_ompi_common_monitoring_DSO_TRUE == ''],
[$1],
[$2])
])dnl

Просмотреть файл

@ -11,9 +11,12 @@
# MCA_ompi_osc_monitoring_CONFIG()
# ------------------------------------------------
AC_DEFUN([MCA_ompi_osc_monitoring_CONFIG],[
AC_CONFIG_FILES([ompi/mca/osc/monitoring/Makefile])
AC_CONFIG_FILES([ompi/mca/osc/monitoring/Makefile])
OPAL_CHECK_PORTALS4([osc_monitoring],
[AC_DEFINE([OMPI_WITH_OSC_PORTALS4], [1], [Whether or not to generate template for osc_portals4])],
[])
])dnl
AS_IF([test MCA_BUILD_ompi_common_monitoring_DSO_TRUE == ''],
[$1],
[$2])
OPAL_CHECK_PORTALS4([osc_monitoring],
[AC_DEFINE([OMPI_WITH_OSC_PORTALS4], [1], [Whether or not to generate template for osc_portals4])],
[])
])dnl

24
ompi/mca/pml/monitoring/configure.m4 Обычный файл
Просмотреть файл

@ -0,0 +1,24 @@
# -*- shell-script -*-
#
# Copyright (c) 2017 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# MCA_ompi_coll_monitoring_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_ompi_pml_monitoring_CONFIG],[
AC_CONFIG_FILES([ompi/mca/pml/monitoring/Makefile])
AS_IF([test MCA_BUILD_ompi_common_monitoring_DSO_TRUE == ''],
[$1],
[$2])
])dnl

Просмотреть файл

@ -20,5 +20,6 @@ int mca_pml_monitoring_add_comm(struct ompi_communicator_t* comm)
int mca_pml_monitoring_del_comm(struct ompi_communicator_t* comm)
{
mca_common_monitoring_coll_cache_name(comm);
return pml_selected_module.pml_del_comm(comm);
}

Просмотреть файл

@ -14,8 +14,6 @@
# $HEADER$
#
EXTRA_DIST = profile2mat.pl aggregate_profile.pl
# This test requires multiple processes to run. Don't run it as part
# of 'make check'
if PROJECT_OMPI
@ -45,21 +43,6 @@ if PROJECT_OMPI
example_reduce_count_LDADD = \
$(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \
$(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la
if MCA_BUILD_ompi_pml_monitoring_DSO
lib_LTLIBRARIES = ompi_monitoring_prof.la
ompi_monitoring_prof_la_SOURCES = monitoring_prof.c
ompi_monitoring_prof_la_LDFLAGS= \
-module -avoid-version -shared $(WRAPPER_EXTRA_LDFLAGS)
ompi_monitoring_prof_la_LIBADD = \
$(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \
$(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la
endif # MCA_BUILD_ompi_pml_monitoring_DSO
if OPAL_INSTALL_BINARIES
bin_SCRIPTS = profile2mat.pl aggregate_profile.pl
endif # OPAL_INSTALL_BINARIES
endif # PROJECT_OMPI
distclean: