Itoyori  v0.0.1
ityr::common Namespace Reference

Namespaces

 numa
 
 profiler
 
 rma
 
 topology
 
 wallclock
 

Classes

class  mpi_win_resource
 
class  block_resource
 
class  remotable_resource
 
class  freelist
 
class  global_lock
 
class  mpi_win_manager
 
class  mpi_win_manager< void >
 
class  mpi_initializer
 
class  option_base
 
class  option
 
class  option_initializer
 
struct  enable_shared_memory_option
 
struct  global_clock_sync_round_trips_option
 
struct  prof_output_per_rank_option
 
struct  rma_use_mpi_win_allocate
 
struct  allocator_block_size_option
 
struct  allocator_max_unflushed_free_objs_option
 
struct  runtime_options
 
class  physical_mem
 
struct  prof_event_target_base
 
struct  prof_event_mpi_rma_get
 
struct  prof_event_mpi_rma_put
 
struct  prof_event_mpi_rma_atomic_faa
 
struct  prof_event_mpi_rma_atomic_cas
 
struct  prof_event_mpi_rma_atomic_get
 
struct  prof_event_mpi_rma_atomic_put
 
struct  prof_event_mpi_rma_flush
 
struct  prof_event_rma_get_nb
 
struct  prof_event_rma_put_nb
 
struct  prof_event_rma_flush
 
struct  prof_event_global_lock_trylock
 
struct  prof_event_global_lock_priolock
 
struct  prof_event_global_lock_unlock
 
struct  prof_event_allocator_alloc
 
struct  prof_event_allocator_free_local
 
struct  prof_event_allocator_free_remote
 
struct  prof_event_allocator_collect
 
class  prof_events
 
class  span
 
class  singleton
 
class  singleton_initializer
 
class  move_only_t
 
class  mmap_noreplace_exception
 
class  virtual_mem
 

Functions

template<typename T >
void remote_get (const remotable_resource &rmr, T *origin_p, const T *target_p, std::size_t size)
 
template<typename T >
remote_get_value (const remotable_resource &rmr, const T *target_p)
 
template<typename T >
void remote_put (const remotable_resource &rmr, const T *origin_p, T *target_p, std::size_t size)
 
template<typename T >
void remote_put_value (const remotable_resource &rmr, const T &val, T *target_p)
 
template<typename T >
remote_faa_value (const remotable_resource &rmr, const T &val, T *target_p)
 
template<int Level = 1>
void verbose (const char *fmt,...)
 
void mpi_win_flush (int target_rank, MPI_Win win)
 
void mpi_win_flush_all (MPI_Win win)
 
template<typename T >
void mpi_get_nb (T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_get (T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
MPI_Request mpi_rget (T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
mpi_get_value (int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_put_nb (const T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_put (const T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
MPI_Request mpi_rput (const T *origin, std::size_t count, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_put_value (const T &value, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_atomic_faa_nb (const T *origin, T *result, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
mpi_atomic_faa_value (const T &value, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_atomic_cas_nb (const T *origin, const T *compare, T *result, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
mpi_atomic_cas_value (const T &value, const T &compare, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_atomic_get_nb (T *origin, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
mpi_atomic_get_value (int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
void mpi_atomic_put_nb (const T *origin, T *result, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
mpi_atomic_put_value (const T &value, int target_rank, std::size_t target_disp, MPI_Win win)
 
template<typename T >
MPI_Datatype mpi_type ()
 
template<>
MPI_Datatype mpi_type< int > ()
 
template<>
MPI_Datatype mpi_type< unsigned int > ()
 
template<>
MPI_Datatype mpi_type< long > ()
 
template<>
MPI_Datatype mpi_type< unsigned long > ()
 
template<>
MPI_Datatype mpi_type< bool > ()
 
template<>
MPI_Datatype mpi_type< void * > ()
 
int mpi_comm_rank (MPI_Comm comm)
 
int mpi_comm_size (MPI_Comm comm)
 
void mpi_barrier (MPI_Comm comm)
 
MPI_Request mpi_ibarrier (MPI_Comm comm)
 
template<typename T >
void mpi_send (const T *buf, std::size_t count, int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
MPI_Request mpi_isend (const T *buf, std::size_t count, int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
void mpi_send_value (const T &value, int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
void mpi_recv (T *buf, std::size_t count, int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
MPI_Request mpi_irecv (T *buf, std::size_t count, int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
mpi_recv_value (int target_rank, int tag, MPI_Comm comm)
 
template<typename T >
void mpi_bcast (T *buf, std::size_t count, int root_rank, MPI_Comm comm)
 
template<typename T >
mpi_bcast_value (const T &value, int root_rank, MPI_Comm comm)
 
template<typename T >
void mpi_reduce (const T *sendbuf, T *recvbuf, std::size_t count, int root_rank, MPI_Comm comm, MPI_Op op=MPI_SUM)
 
template<typename T >
mpi_reduce_value (const T &value, int root_rank, MPI_Comm comm, MPI_Op op=MPI_SUM)
 
template<typename T >
void mpi_allreduce (const T *sendbuf, T *recvbuf, std::size_t count, MPI_Comm comm, MPI_Op op=MPI_SUM)
 
template<typename T >
mpi_allreduce_value (const T &value, MPI_Comm comm, MPI_Op op=MPI_SUM)
 
template<typename T >
void mpi_allgather (const T *sendbuf, std::size_t sendcount, T *recvbuf, std::size_t recvcount, MPI_Comm comm)
 
template<typename T >
std::vector< T > mpi_allgather_value (const T &value, MPI_Comm comm)
 
template<typename T >
void mpi_scatter (const T *sendbuf, T *recvbuf, std::size_t count, int root_rank, MPI_Comm comm)
 
template<typename T >
mpi_scatter_value (const T *sendbuf, int root_rank, MPI_Comm comm)
 
void mpi_wait (MPI_Request &req)
 
bool mpi_test (MPI_Request &req)
 
void mpi_make_progress ()
 
MPI_Comm & mpi_comm_root ()
 
template<typename T >
getenv_coll (const std::string &env_var, T default_val)
 
void print_compile_options ()
 
std::vector< option_base * > & get_options ()
 
void print_runtime_options ()
 
template<typename T >
constexpr auto data (const span< T > &s) noexcept
 
template<typename T >
constexpr auto size (const span< T > &s) noexcept
 
template<typename T >
constexpr auto begin (const span< T > &s) noexcept
 
template<typename T >
constexpr auto end (const span< T > &s) noexcept
 
uint64_t clock_gettime_ns ()
 
 __attribute__ ((noinline)) inline void die(const char *fmt
 
 va_start (args, fmt)
 
 vsnprintf (msg, slen, fmt, args)
 
 va_end (args)
 
 fprintf (stderr, "\x1b[31m%s\x1b[39m\n", msg)
 
 fflush (stderr)
 
template<typename T >
getenv_with_default (const char *env_var, T default_val)
 
uint64_t next_pow2 (uint64_t x)
 
template<typename T >
bool is_pow2 (T x)
 
template<typename T >
round_down_pow2 (T x, T alignment)
 
template<typename T >
T * round_down_pow2 (T *x, uintptr_t alignment)
 
template<typename T >
round_up_pow2 (T x, T alignment)
 
template<typename T >
T * round_up_pow2 (T *x, uintptr_t alignment)
 
std::size_t get_page_size ()
 
move_only_t operator+ (const move_only_t &mo1, const move_only_t &mo2)
 
void munmap (void *addr, std::size_t size)
 
void * mmap_no_physical_mem (void *addr, std::size_t size, bool replace=false, std::size_t alignment=alignof(max_align_t))
 
virtual_mem reserve_same_vm_coll (std::size_t size, std::size_t alignment=alignof(max_align_t))
 

Variables

constexpr bool use_dynamic_win = ITYR_ALLOCATOR_USE_DYNAMIC_WIN
 
constexpr int max_verbose_level = ITYR_MAX_VERBOSE_LEVEL
 
constexpr std::size_t mpi_win_size_min = 1024
 
constexpr std::size_t hardware_destructive_interference_size = 64
 
va_list args
 

Function Documentation

◆ __attribute__()

ityr::common::__attribute__ ( (noinline)  ) const

◆ begin()

template<typename T >
constexpr auto ityr::common::begin ( const span< T > &  s)
inlineconstexprnoexcept

◆ clock_gettime_ns()

uint64_t ityr::common::clock_gettime_ns ( )
inline

◆ data()

template<typename T >
constexpr auto ityr::common::data ( const span< T > &  s)
inlineconstexprnoexcept

◆ end()

template<typename T >
constexpr auto ityr::common::end ( const span< T > &  s)
inlineconstexprnoexcept

◆ fflush()

ityr::common::fflush ( stderr  )

◆ fprintf()

ityr::common::fprintf ( stderr  ,
"\x1b[31m%s\x1b[39m\n"  ,
msg   
)

◆ get_options()

std::vector<option_base*>& ityr::common::get_options ( )
inline

◆ get_page_size()

std::size_t ityr::common::get_page_size ( )
inline

◆ getenv_coll()

template<typename T >
T ityr::common::getenv_coll ( const std::string &  env_var,
default_val 
)
inline

◆ getenv_with_default()

template<typename T >
T ityr::common::getenv_with_default ( const char *  env_var,
default_val 
)
inline

◆ is_pow2()

template<typename T >
bool ityr::common::is_pow2 ( x)
inline

◆ mmap_no_physical_mem()

void * ityr::common::mmap_no_physical_mem ( void *  addr,
std::size_t  size,
bool  replace = false,
std::size_t  alignment = alignof(max_align_t) 
)
inline

◆ mpi_allgather()

template<typename T >
void ityr::common::mpi_allgather ( const T *  sendbuf,
std::size_t  sendcount,
T *  recvbuf,
std::size_t  recvcount,
MPI_Comm  comm 
)
inline

◆ mpi_allgather_value()

template<typename T >
std::vector<T> ityr::common::mpi_allgather_value ( const T &  value,
MPI_Comm  comm 
)
inline

◆ mpi_allreduce()

template<typename T >
void ityr::common::mpi_allreduce ( const T *  sendbuf,
T *  recvbuf,
std::size_t  count,
MPI_Comm  comm,
MPI_Op  op = MPI_SUM 
)
inline

◆ mpi_allreduce_value()

template<typename T >
T ityr::common::mpi_allreduce_value ( const T &  value,
MPI_Comm  comm,
MPI_Op  op = MPI_SUM 
)
inline

◆ mpi_atomic_cas_nb()

template<typename T >
void ityr::common::mpi_atomic_cas_nb ( const T *  origin,
const T *  compare,
T *  result,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_cas_value()

template<typename T >
T ityr::common::mpi_atomic_cas_value ( const T &  value,
const T &  compare,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_faa_nb()

template<typename T >
void ityr::common::mpi_atomic_faa_nb ( const T *  origin,
T *  result,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_faa_value()

template<typename T >
T ityr::common::mpi_atomic_faa_value ( const T &  value,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_get_nb()

template<typename T >
void ityr::common::mpi_atomic_get_nb ( T *  origin,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_get_value()

template<typename T >
T ityr::common::mpi_atomic_get_value ( int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_put_nb()

template<typename T >
void ityr::common::mpi_atomic_put_nb ( const T *  origin,
T *  result,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_atomic_put_value()

template<typename T >
T ityr::common::mpi_atomic_put_value ( const T &  value,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_barrier()

void ityr::common::mpi_barrier ( MPI_Comm  comm)
inline

◆ mpi_bcast()

template<typename T >
void ityr::common::mpi_bcast ( T *  buf,
std::size_t  count,
int  root_rank,
MPI_Comm  comm 
)
inline

◆ mpi_bcast_value()

template<typename T >
T ityr::common::mpi_bcast_value ( const T &  value,
int  root_rank,
MPI_Comm  comm 
)
inline

◆ mpi_comm_rank()

int ityr::common::mpi_comm_rank ( MPI_Comm  comm)
inline

◆ mpi_comm_root()

MPI_Comm& ityr::common::mpi_comm_root ( )
inline

◆ mpi_comm_size()

int ityr::common::mpi_comm_size ( MPI_Comm  comm)
inline

◆ mpi_get()

template<typename T >
void ityr::common::mpi_get ( T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_get_nb()

template<typename T >
void ityr::common::mpi_get_nb ( T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_get_value()

template<typename T >
T ityr::common::mpi_get_value ( int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_ibarrier()

MPI_Request ityr::common::mpi_ibarrier ( MPI_Comm  comm)
inline

◆ mpi_irecv()

template<typename T >
MPI_Request ityr::common::mpi_irecv ( T *  buf,
std::size_t  count,
int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_isend()

template<typename T >
MPI_Request ityr::common::mpi_isend ( const T *  buf,
std::size_t  count,
int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_make_progress()

void ityr::common::mpi_make_progress ( )
inline

◆ mpi_put()

template<typename T >
void ityr::common::mpi_put ( const T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_put_nb()

template<typename T >
void ityr::common::mpi_put_nb ( const T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_put_value()

template<typename T >
void ityr::common::mpi_put_value ( const T &  value,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_recv()

template<typename T >
void ityr::common::mpi_recv ( T *  buf,
std::size_t  count,
int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_recv_value()

template<typename T >
T ityr::common::mpi_recv_value ( int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_reduce()

template<typename T >
void ityr::common::mpi_reduce ( const T *  sendbuf,
T *  recvbuf,
std::size_t  count,
int  root_rank,
MPI_Comm  comm,
MPI_Op  op = MPI_SUM 
)
inline

◆ mpi_reduce_value()

template<typename T >
T ityr::common::mpi_reduce_value ( const T &  value,
int  root_rank,
MPI_Comm  comm,
MPI_Op  op = MPI_SUM 
)
inline

◆ mpi_rget()

template<typename T >
MPI_Request ityr::common::mpi_rget ( T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_rput()

template<typename T >
MPI_Request ityr::common::mpi_rput ( const T *  origin,
std::size_t  count,
int  target_rank,
std::size_t  target_disp,
MPI_Win  win 
)
inline

◆ mpi_scatter()

template<typename T >
void ityr::common::mpi_scatter ( const T *  sendbuf,
T *  recvbuf,
std::size_t  count,
int  root_rank,
MPI_Comm  comm 
)
inline

◆ mpi_scatter_value()

template<typename T >
T ityr::common::mpi_scatter_value ( const T *  sendbuf,
int  root_rank,
MPI_Comm  comm 
)
inline

◆ mpi_send()

template<typename T >
void ityr::common::mpi_send ( const T *  buf,
std::size_t  count,
int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_send_value()

template<typename T >
void ityr::common::mpi_send_value ( const T &  value,
int  target_rank,
int  tag,
MPI_Comm  comm 
)
inline

◆ mpi_test()

bool ityr::common::mpi_test ( MPI_Request &  req)
inline

◆ mpi_type()

template<typename T >
MPI_Datatype ityr::common::mpi_type ( )
inline

◆ mpi_type< bool >()

template<>
MPI_Datatype ityr::common::mpi_type< bool > ( )
inline

◆ mpi_type< int >()

template<>
MPI_Datatype ityr::common::mpi_type< int > ( )
inline

◆ mpi_type< long >()

template<>
MPI_Datatype ityr::common::mpi_type< long > ( )
inline

◆ mpi_type< unsigned int >()

template<>
MPI_Datatype ityr::common::mpi_type< unsigned int > ( )
inline

◆ mpi_type< unsigned long >()

template<>
MPI_Datatype ityr::common::mpi_type< unsigned long > ( )
inline

◆ mpi_type< void * >()

template<>
MPI_Datatype ityr::common::mpi_type< void * > ( )
inline

◆ mpi_wait()

void ityr::common::mpi_wait ( MPI_Request &  req)
inline

◆ mpi_win_flush()

void ityr::common::mpi_win_flush ( int  target_rank,
MPI_Win  win 
)
inline

◆ mpi_win_flush_all()

void ityr::common::mpi_win_flush_all ( MPI_Win  win)
inline

◆ munmap()

void ityr::common::munmap ( void *  addr,
std::size_t  size 
)
inline

◆ next_pow2()

uint64_t ityr::common::next_pow2 ( uint64_t  x)
inline

◆ operator+()

move_only_t ityr::common::operator+ ( const move_only_t mo1,
const move_only_t mo2 
)
inline

◆ print_compile_options()

void ityr::common::print_compile_options ( )
inline

◆ print_runtime_options()

void ityr::common::print_runtime_options ( )
inline

◆ remote_faa_value()

template<typename T >
T ityr::common::remote_faa_value ( const remotable_resource rmr,
const T &  val,
T *  target_p 
)

◆ remote_get()

template<typename T >
void ityr::common::remote_get ( const remotable_resource rmr,
T *  origin_p,
const T *  target_p,
std::size_t  size 
)

◆ remote_get_value()

template<typename T >
T ityr::common::remote_get_value ( const remotable_resource rmr,
const T *  target_p 
)

◆ remote_put()

template<typename T >
void ityr::common::remote_put ( const remotable_resource rmr,
const T *  origin_p,
T *  target_p,
std::size_t  size 
)

◆ remote_put_value()

template<typename T >
void ityr::common::remote_put_value ( const remotable_resource rmr,
const T &  val,
T *  target_p 
)

◆ reserve_same_vm_coll()

virtual_mem ityr::common::reserve_same_vm_coll ( std::size_t  size,
std::size_t  alignment = alignof(max_align_t) 
)
inline

◆ round_down_pow2() [1/2]

template<typename T >
T* ityr::common::round_down_pow2 ( T *  x,
uintptr_t  alignment 
)
inline

◆ round_down_pow2() [2/2]

template<typename T >
T ityr::common::round_down_pow2 ( x,
alignment 
)
inline

◆ round_up_pow2() [1/2]

template<typename T >
T* ityr::common::round_up_pow2 ( T *  x,
uintptr_t  alignment 
)
inline

◆ round_up_pow2() [2/2]

template<typename T >
T ityr::common::round_up_pow2 ( x,
alignment 
)
inline

◆ size()

template<typename T >
constexpr auto ityr::common::size ( const span< T > &  s)
inlineconstexprnoexcept

◆ va_end()

ityr::common::va_end ( args  )

◆ va_start()

ityr::common::va_start ( args  ,
fmt   
)

◆ verbose()

template<int Level = 1>
void ityr::common::verbose ( const char *  fmt,
  ... 
)
inline

◆ vsnprintf()

ityr::common::vsnprintf ( msg  ,
slen  ,
fmt  ,
args   
)

Variable Documentation

◆ args

va_list ityr::common::args

◆ hardware_destructive_interference_size

constexpr std::size_t ityr::common::hardware_destructive_interference_size = 64
constexpr

◆ max_verbose_level

constexpr int ityr::common::max_verbose_level = ITYR_MAX_VERBOSE_LEVEL
inlineconstexpr

◆ mpi_win_size_min

constexpr std::size_t ityr::common::mpi_win_size_min = 1024
inlineconstexpr

◆ use_dynamic_win

constexpr bool ityr::common::use_dynamic_win = ITYR_ALLOCATOR_USE_DYNAMIC_WIN
inlineconstexpr