BioCMAMC-ST
execinfo.hpp
1#ifndef __EXEC_INFO_HPP__
2#define __EXEC_INFO_HPP__
3
4#include <biocma_cst_config.hpp>
5#include <common/has_serialize.hpp>
6#include <cstddef>
7#include <cstdint>
8#include <iostream>
9#include <string>
10
12{
13 uint64_t run_id;
14 uint32_t n_rank;
15 uint32_t current_rank;
17 bool verbose;
18 //Compiler typically adds 3 bytes padding
19
20#if defined(__cpp_lib_hardware_interference_size)
21 // default cacheline size from runtime
22 static constexpr size_t cache_line_size = std::hardware_destructive_interference_size;
23#else
24 // most common cacheline size otherwise
25 static constexpr size_t cache_line_size = 64;
26#endif
27
28 template <class Archive, typename T = void> std::enable_if_t<AutoGenerated::FlagCompileTime::use_cereal_serde, T> serialize(Archive &ar)
29 {
31 }
32
33 static std::string get_version();
34};
35
36inline std::ostream &operator<<(std::ostream &stream, const ExecInfo &obj)
37{
38 stream << obj.run_id << "\t" << obj.n_rank << "\t" << obj.thread_per_process << "\t";
39 return stream;
40}
41
42#endif //__EXEC_INFO_HPP__
std::ostream & operator<<(std::ostream &stream, const UserControlParameters &params)
Definition simulation_parameters.cpp:51
Definition execinfo.hpp:12
uint32_t current_rank
Definition execinfo.hpp:15
uint32_t n_rank
Definition execinfo.hpp:14
bool verbose
Definition execinfo.hpp:17
uint64_t run_id
Definition execinfo.hpp:13
std::enable_if_t< AutoGenerated::FlagCompileTime::use_cereal_serde, T > serialize(Archive &ar)
Definition execinfo.hpp:28
static constexpr size_t cache_line_size
Definition execinfo.hpp:25
static std::string get_version()
Definition common.cpp:5
uint32_t thread_per_process
Definition execinfo.hpp:16