Skip to content
Snippets Groups Projects
BP1Aggregator.h 1.38 KiB
Newer Older
wfg's avatar
wfg committed
/*
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
wfg's avatar
wfg committed
 * BP1Aggregator.h
 *
 *  Created on: Mar 1, 2017
 *      Author: William F Godoy godoywf@ornl.gov
wfg's avatar
wfg committed
 */

#ifndef ADIOS2_TOOLKIT_FORMAT_BP1_BP1AGGREGATOR_H_
#define ADIOS2_TOOLKIT_FORMAT_BP1_BP1AGGREGATOR_H_
wfg's avatar
wfg committed

/// \cond EXCLUDE_FROM_DOXYGEN
#include <string>
/// \endcond

#include "adios2/ADIOSConfig.h"
#include "adios2/ADIOSMPICommOnly.h"
namespace adios2
wfg's avatar
wfg committed
{
namespace format
{

/** Does all MPI aggregation tasks */
wfg's avatar
wfg committed
class BP1Aggregator
{

    MPI_Comm m_MPIComm;  ///< MPI communicator from Engine
    int m_RankMPI = 0;   ///< current MPI rank process
    int m_SizeMPI = 1;   ///< current MPI processes size
    int m_Processes = 1; ///< number of aggregated MPI processes

    /**
     * Unique constructor
     * @param mpiComm coming from engine
     */
    BP1Aggregator(MPI_Comm mpiComm, const bool debugMode = false);


    /**
     * Function that aggregates and writes (from rank = 0) profiling.log in
wfg's avatar
wfg committed
     * python dictionary format
     * @param rankLog contain rank profiling info to be aggregated
     */
    std::string GetGlobalProfilingJSON(const std::string &rankLog);
wfg's avatar
wfg committed

    const bool m_DebugMode = false;
} // end namespace format
} // end namespace adios
wfg's avatar
wfg committed

#endif /* ADIOS2_UTILITIES_FORMAT_BP1_BP1AGGREGATOR_H_ */