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 =
23 std::hardware_destructive_interference_size;
24#else
25 // most common cacheline size otherwise
26 static constexpr size_t cache_line_size = 64;
27#endif
28
29 template <class Archive, typename T = void>
30 std::enable_if_t<AutoGenerated::FlagCompileTime::use_cereal_serde, T>
31 serialize(Archive& ar)
32 {
34 }
35
36 static std::string get_version();
37};
38
39inline std::ostream& operator<<(std::ostream& stream, const ExecInfo& obj)
40{
41 stream << obj.run_id << "\t" << obj.n_rank << "\t" << obj.thread_per_process
42 << "\t";
43 return stream;
44}
45
46#endif //__EXEC_INFO_HPP__
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:31
static constexpr size_t cache_line_size
Definition execinfo.hpp:26
static std::string get_version()
Definition common.cpp:5
uint32_t thread_per_process
Definition execinfo.hpp:16