Itoyori  v0.0.1
ityr::ito Namespace Reference

Namespaces

 worker
 

Classes

struct  context_frame_aarch64
 
class  context_aarch64
 
struct  context_frame_x86_64
 
class  context_x86_64
 
class  callstack
 
class  ito
 
struct  stack_size_option
 
struct  wsqueue_capacity_option
 
struct  thread_state_allocator_size_option
 
struct  suspended_thread_allocator_size_option
 
struct  sched_loop_make_mpi_progress_option
 
struct  adws_enable_steal_option
 
struct  adws_wsqueue_capacity_option
 
struct  adws_max_depth_option
 
struct  adws_max_dtree_reuse_option
 
struct  adws_min_drange_size_option
 
struct  runtime_options
 
struct  prof_event_sched_steal
 
struct  prof_event_sched_mailbox_put
 
struct  prof_event_sched_adws_scan_tree
 
struct  prof_event_wsqueue_push
 
struct  prof_event_wsqueue_pop
 
struct  prof_event_wsqueue_steal_nolock
 
struct  prof_event_wsqueue_steal_abort
 
struct  prof_event_wsqueue_pass
 
struct  prof_event_wsqueue_empty
 
struct  prof_event_wsqueue_empty_batch
 
struct  prof_phase_sched_loop
 
struct  prof_phase_sched_fork
 
struct  prof_phase_sched_join
 
struct  prof_phase_sched_die
 
struct  prof_phase_sched_migrate
 
struct  prof_phase_sched_evacuate
 
struct  prof_phase_sched_resume_popped
 
struct  prof_phase_sched_resume_join
 
struct  prof_phase_sched_resume_stolen
 
struct  prof_phase_sched_resume_migrate
 
struct  prof_phase_sched_start_new
 
struct  prof_phase_cb_drift_fork
 
struct  prof_phase_cb_drift_die
 
struct  prof_phase_cb_pre_suspend
 
struct  prof_phase_cb_post_suspend
 
struct  prof_phase_thread
 
struct  prof_phase_spmd
 
class  prof_events
 
class  flipper
 
class  dist_range
 
class  dist_tree
 
class  scheduler_adws
 
class  scheduler_randws
 
class  scheduler_serial
 
class  dag_profiler_disabled
 
class  dag_profiler_workspan
 
class  task_general
 
class  callable_task
 
struct  no_retval_t
 
struct  callback_retval
 
struct  callback_retval< std::nullptr_t, Args... >
 
struct  callback_retval< std::nullptr_t &, Args... >
 
class  oneslot_mailbox
 
class  oneslot_mailbox< void >
 
struct  with_callback_t
 
struct  workhint
 
class  thread
 
class  aslr_checker
 
class  wsqueue_full_exception
 
class  wsqueue
 

Typedefs

using instance = common::singleton< ito >
 
using task_group_data = scheduler::task_group_data
 
using dag_profiler = ITYR_CONCAT(dag_profiler_, ITYR_ITO_DAG_PROF)
 
template<typename Fn , typename... Args>
using callback_retval_t = typename callback_retval< Fn, Args... >::type
 
using scheduler = ITYR_CONCAT(scheduler_, ITYR_ITO_SCHEDULER)
 

Functions

void init (MPI_Comm comm=MPI_COMM_WORLD)
 
void fini ()
 
template<typename Fn , typename... Args>
auto root_exec (Fn &&fn, Args &&... args)
 
template<typename SchedLoopCallback , typename Fn , typename... Args>
auto root_exec (with_callback_t, SchedLoopCallback cb, Fn &&fn, Args &&... args)
 
bool is_spmd ()
 
bool is_root ()
 
template<typename Fn , typename... Args>
auto coll_exec (const Fn &fn, const Args &... args)
 
template<typename PreSuspendCallback , typename PostSuspendCallback >
void migrate_to (common::topology::rank_t target_rank, PreSuspendCallback &&pre_suspend_cb, PostSuspendCallback &&post_suspend_cb)
 
void migrate_to (common::topology::rank_t target_rank)
 
template<typename PreSuspendCallback , typename PostSuspendCallback >
void poll (PreSuspendCallback &&pre_suspend_cb, PostSuspendCallback &&post_suspend_cb)
 
void task_group_begin (task_group_data *tgdata)
 
template<typename PreSuspendCallback , typename PostSuspendCallback >
void task_group_end (PreSuspendCallback &&pre_suspend_cb, PostSuspendCallback &&post_suspend_cb)
 
void dag_prof_begin ()
 
void dag_prof_end ()
 
void dag_prof_print ()
 
void print_compile_options ()
 
common::topology::rank_t get_random_rank (common::topology::rank_t a, common::topology::rank_t b)
 
template<typename T , typename Fn , typename ArgsTuple >
decltype(auto) invoke_fn (Fn &&fn, ArgsTuple &&args_tuple)
 
template<typename PhaseFrom , typename PhaseFn , typename PhaseTo , typename Fn , typename... Args>
auto call_with_prof_events (Fn &&fn, Args &&... args)
 
template<typename PhaseFrom , typename PhaseFn , typename PhaseTo , typename Fn , typename... Args>
auto call_with_prof_events (Fn &&fn, no_retval_t, Args &&... args)
 

Variables

constexpr with_callback_t with_callback
 

Typedef Documentation

◆ callback_retval_t

template<typename Fn , typename... Args>
using ityr::ito::callback_retval_t = typedef typename callback_retval<Fn, Args...>::type

◆ dag_profiler

using ityr::ito::dag_profiler = typedef ITYR_CONCAT(dag_profiler_, ITYR_ITO_DAG_PROF)

◆ instance

◆ scheduler

using ityr::ito::scheduler = typedef ITYR_CONCAT(scheduler_, ITYR_ITO_SCHEDULER)

◆ task_group_data

using ityr::ito::task_group_data = typedef scheduler::task_group_data

Function Documentation

◆ call_with_prof_events() [1/2]

template<typename PhaseFrom , typename PhaseFn , typename PhaseTo , typename Fn , typename... Args>
auto ityr::ito::call_with_prof_events ( Fn &&  fn,
Args &&...  args 
)
inline

◆ call_with_prof_events() [2/2]

template<typename PhaseFrom , typename PhaseFn , typename PhaseTo , typename Fn , typename... Args>
auto ityr::ito::call_with_prof_events ( Fn &&  fn,
no_retval_t  ,
Args &&...  args 
)
inline

◆ coll_exec()

template<typename Fn , typename... Args>
auto ityr::ito::coll_exec ( const Fn &  fn,
const Args &...  args 
)
inline

◆ dag_prof_begin()

void ityr::ito::dag_prof_begin ( )
inline

◆ dag_prof_end()

void ityr::ito::dag_prof_end ( )
inline

◆ dag_prof_print()

void ityr::ito::dag_prof_print ( )
inline

◆ fini()

void ityr::ito::fini ( )
inline

◆ get_random_rank()

common::topology::rank_t ityr::ito::get_random_rank ( common::topology::rank_t  a,
common::topology::rank_t  b 
)
inline

◆ init()

void ityr::ito::init ( MPI_Comm  comm = MPI_COMM_WORLD)
inline

◆ invoke_fn()

template<typename T , typename Fn , typename ArgsTuple >
decltype(auto) ityr::ito::invoke_fn ( Fn &&  fn,
ArgsTuple &&  args_tuple 
)
inline

◆ is_root()

bool ityr::ito::is_root ( )
inline

◆ is_spmd()

bool ityr::ito::is_spmd ( )
inline

◆ migrate_to() [1/2]

void ityr::ito::migrate_to ( common::topology::rank_t  target_rank)
inline

◆ migrate_to() [2/2]

template<typename PreSuspendCallback , typename PostSuspendCallback >
void ityr::ito::migrate_to ( common::topology::rank_t  target_rank,
PreSuspendCallback &&  pre_suspend_cb,
PostSuspendCallback &&  post_suspend_cb 
)
inline

◆ poll()

template<typename PreSuspendCallback , typename PostSuspendCallback >
void ityr::ito::poll ( PreSuspendCallback &&  pre_suspend_cb,
PostSuspendCallback &&  post_suspend_cb 
)
inline

◆ print_compile_options()

void ityr::ito::print_compile_options ( )
inline

◆ root_exec() [1/2]

template<typename Fn , typename... Args>
auto ityr::ito::root_exec ( Fn &&  fn,
Args &&...  args 
)
inline

◆ root_exec() [2/2]

template<typename SchedLoopCallback , typename Fn , typename... Args>
auto ityr::ito::root_exec ( with_callback_t  ,
SchedLoopCallback  cb,
Fn &&  fn,
Args &&...  args 
)
inline

◆ task_group_begin()

void ityr::ito::task_group_begin ( task_group_data tgdata)
inline

◆ task_group_end()

template<typename PreSuspendCallback , typename PostSuspendCallback >
void ityr::ito::task_group_end ( PreSuspendCallback &&  pre_suspend_cb,
PostSuspendCallback &&  post_suspend_cb 
)
inline

Variable Documentation

◆ with_callback

constexpr with_callback_t ityr::ito::with_callback
inlineconstexpr