gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
hdf5_combine_tools.hpp File Reference

Greg's code for combining HDF5 output of multiple MPI processes. More...

#include <vector>
#include <sstream>
#include <unordered_set>
#include <unordered_map>
#include <hdf5.h>
#include "gambit/Printers/printers/hdf5printer/hdf5tools.hpp"
#include "gambit/Utils/standalone_error_handlers.hpp"
#include "gambit/Utils/mpiwrapper.hpp"
#include "gambit/Utils/local_info.hpp"
#include "gambit/Utils/new_mpi_datatypes.hpp"
Include dependency graph for hdf5_combine_tools.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Gambit::Printers::HDF5::read_hdf5
 
struct  Gambit::Printers::HDF5::copy_hdf5
 
struct  Gambit::Printers::HDF5::ra_copy_hdf5
 
class  Gambit::Printers::HDF5::hdf5_stuff
 

Namespaces

 Gambit
 TODO: see if we can use this one:
 
 Gambit::Printers
 Forward declaration of Printers::BasePrinter class for use in print functions.
 
 Gambit::Printers::HDF5
 

Macros

#define DSET_SIZE_CHECK(VEC)
 

Functions

template<typename T >
Gambit::Printers::HDF5::type_ret ()
 
template<class U , typename... T>
void Gambit::Printers::HDF5::Enter_HDF5 (hid_t dataset, T &... params)
 
void Gambit::Printers::HDF5::combine_hdf5_files (const std::string output_file, const std::string &base_file_name, const std::string &group, const size_t num, const bool resume, const bool cleanup, const bool skip, const std::vector< std::string > input_files=std::vector< std::string >())
 
std::unordered_map< PPIDpair, unsigned long long, PPIDHash, PPIDEqual > Gambit::Printers::HDF5::get_RA_write_hash (hid_t group_id, std::unordered_set< PPIDpair, PPIDHash, PPIDEqual > &left_to_match)
 Helper function to create output hash map for RA points note: left_to_match points will be erased as we go, and are passed by reference, so will be erased in calling context also. More...
 
std::pair< std::vector< std::string >, std::vector< size_t > > Gambit::Printers::HDF5::find_temporary_files (const std::string &finalfile)
 Search for temporary files to be combined. More...
 
std::pair< std::vector< std::string >, std::vector< size_t > > Gambit::Printers::HDF5::find_temporary_files (const std::string &finalfile, size_t &max_i)
 Search for temporary files to be combined. More...
 

Detailed Description

Greg's code for combining HDF5 output of multiple MPI processes.

Replaces the old Python script


Authors (add name and date if you modify):

Author
Gregory Martinez (grego.nosp@m.ry.d.nosp@m.avid..nosp@m.mart.nosp@m.inez@.nosp@m.gmai.nosp@m.l.com)
Date
???

Definition in file hdf5_combine_tools.hpp.

Macro Definition Documentation

◆ DSET_SIZE_CHECK

#define DSET_SIZE_CHECK (   VEC)
Value:
if(VEC.size()!=ndsets) \
{ \
std::ostringstream errmsg; \
errmsg << STRINGIFY(VEC) << " vector has inconsistent size! ("<<VEC.size()<<", should be "<<ndsets<<"). This is a bug, please report it."; \
printer_error().raise(LOCAL_INFO, errmsg.str()); \
}
#define STRINGIFY(X)
Definition: stringify.hpp:29
#define LOCAL_INFO
Definition: local_info.hpp:34

Referenced by Gambit::Printers::HDF5::ra_copy_hdf5::run().