ARGOBOTS  1.1
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
abt.h File Reference
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
#include <sys/time.h>
Include dependency graph for abt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ABT_mutex_memory
 A struct that can be converted to ABT_mutex. More...
 
struct  ABT_cond_memory
 A struct that can be converted to ABT_cond. More...
 
struct  ABT_sched_config_var
 A struct that sets and gets a scheduler configuration. More...
 
struct  ABT_sched_def
 A struct that defines a scheduler. More...
 
struct  ABT_pool_def
 A struct that defines a pool. More...
 

Macros

#define ABT_API_PUBLIC
 
#define ABT_VERSION   "1.1"
 Version string of Argobots. More...
 
#define ABT_NUMVERSION   10100300
 Version number of Argobots. More...
 
#define ABT_RELEASE_TYPE_ALPHA   0
 
#define ABT_RELEASE_TYPE_BETA   1
 
#define ABT_RELEASE_TYPE_RC   2
 
#define ABT_RELEASE_TYPE_PATCH   3
 
#define ABT_CALC_VERSION(MAJOR, MINOR, REVISION, TYPE, PATCH)   (((MAJOR) * 10000000) + ((MINOR) * 100000) + ((REVISION) * 1000) + ((TYPE) * 100) + (PATCH))
 
#define ABT_DEPRECATED   __attribute__((deprecated))
 
#define ABT_ENABLE_VER_20_API_VAL   0
 
#define ABT_SUCCESS   0
 Error code: the routine returns successfully. More...
 
#define ABT_ERR_UNINITIALIZED   1
 Error code: Argobots it not initialized. More...
 
#define ABT_ERR_MEM   2
 Error code: Memory allocation failure. More...
 
#define ABT_ERR_OTHER   3
 Error code: other error. More...
 
#define ABT_ERR_INV_XSTREAM   4
 Error code: invalid execution stream. More...
 
#define ABT_ERR_INV_XSTREAM_RANK   5
 Error code: invalid execution stream rank. More...
 
#define ABT_ERR_INV_XSTREAM_BARRIER   6
 Error code: invalid execution stream barrier. More...
 
#define ABT_ERR_INV_SCHED   7
 Error code: invalid scheduler. More...
 
#define ABT_ERR_INV_SCHED_KIND   8
 Error code: invalid scheduler kind. More...
 
#define ABT_ERR_INV_SCHED_PREDEF   9
 Error code: invalid predefined scheduler type. More...
 
#define ABT_ERR_INV_SCHED_TYPE   10
 Unused error code. More...
 
#define ABT_ERR_INV_SCHED_CONFIG   11
 Error code: invalid scheduler configuration. More...
 
#define ABT_ERR_INV_POOL   12
 Error code: invalid pool. More...
 
#define ABT_ERR_INV_POOL_KIND   13
 Error code: invalid pool kind. More...
 
#define ABT_ERR_INV_POOL_ACCESS   14
 Error code: invalid pool access type. More...
 
#define ABT_ERR_INV_UNIT   15
 Error code: invalid work unit for scheduling. More...
 
#define ABT_ERR_INV_THREAD   16
 Error code: invalid work unit. More...
 
#define ABT_ERR_INV_THREAD_ATTR   17
 Error code: invalid ULT attribute. More...
 
#define ABT_ERR_INV_TASK   18
 Error code: invalid work unit. More...
 
#define ABT_ERR_INV_KEY   19
 Error code: invalid work-unit-specific data key. More...
 
#define ABT_ERR_INV_MUTEX   20
 Error code: invalid mutex. More...
 
#define ABT_ERR_INV_MUTEX_ATTR   21
 Error code: invalid mutex attribute. More...
 
#define ABT_ERR_INV_COND   22
 Error code: invalid condition variable. More...
 
#define ABT_ERR_INV_RWLOCK   23
 Error code: invalid readers-writer lock. More...
 
#define ABT_ERR_INV_EVENTUAL   24
 Error code: invalid eventual. More...
 
#define ABT_ERR_INV_FUTURE   25
 Error code: invalid future. More...
 
#define ABT_ERR_INV_BARRIER   26
 Error code: invalid barrier. More...
 
#define ABT_ERR_INV_TIMER   27
 Error code: invalid timer. More...
 
#define ABT_ERR_INV_QUERY_KIND   28
 Error code: invalid query kind. More...
 
#define ABT_ERR_INV_TOOL_CONTEXT   52
 Error code: invalid tool context. More...
 
#define ABT_ERR_INV_ARG   53
 Error code: invalid user argument. More...
 
#define ABT_ERR_XSTREAM   29
 Error code: error related to an execution stream. More...
 
#define ABT_ERR_XSTREAM_STATE   30
 Error code: error related to an execution stream state. More...
 
#define ABT_ERR_XSTREAM_BARRIER   31
 Error code: error related to an execution stream. More...
 
#define ABT_ERR_SCHED   32
 Error code: error related to a scheduler. More...
 
#define ABT_ERR_SCHED_CONFIG   33
 Error code: error related to a scheduler configuration. More...
 
#define ABT_ERR_POOL   34
 Error code: error related to a pool. More...
 
#define ABT_ERR_UNIT   35
 Error code: error related to a work unit for scheduling. More...
 
#define ABT_ERR_THREAD   36
 Error code: error related to a work unit. More...
 
#define ABT_ERR_TASK   37
 Error code: error related to a work unit. More...
 
#define ABT_ERR_KEY   38
 Error code: error related to a work-unit-specific data key. More...
 
#define ABT_ERR_MUTEX   39
 Error code: error related to a mutex. More...
 
#define ABT_ERR_MUTEX_LOCKED   40
 Error code: a return value when a mutex is locked. More...
 
#define ABT_ERR_COND   41
 Error code: error related to a condition variable. More...
 
#define ABT_ERR_COND_TIMEDOUT   42
 Error code: a return value when a condition variable is timed out. More...
 
#define ABT_ERR_RWLOCK   43
 Error code: error related to a readers-writer lock. More...
 
#define ABT_ERR_EVENTUAL   44
 Error code: error related to an eventual. More...
 
#define ABT_ERR_FUTURE   45
 Error code: error related to a future. More...
 
#define ABT_ERR_BARRIER   46
 Error code: error related to a barrier. More...
 
#define ABT_ERR_TIMER   47
 Error code: error related to a timer. More...
 
#define ABT_ERR_MIGRATION_TARGET   48
 Error code: error related to a migration target. More...
 
#define ABT_ERR_MIGRATION_NA   49
 Error code: migration is not supported. More...
 
#define ABT_ERR_MISSING_JOIN   50
 Unused error code. More...
 
#define ABT_ERR_FEATURE_NA   51
 Error code: unsupported feature. More...
 
#define ABT_ERR_SYS   54
 Error code: error related to system calls and standard libraries. More...
 
#define ABT_ERR_CPUID   55
 Error code: error related to CPU ID. More...
 
#define ABT_TOOL_EVENT_THREAD_NONE   (0)
 Work-unit-event mask: none. More...
 
#define ABT_TOOL_EVENT_THREAD_CREATE   (1 << 0)
 Work-unit-event mask: creating a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_JOIN   (1 << 1)
 Work-unit-event mask: joining a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_FREE   (1 << 2)
 Work-unit-event mask: freeing a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_REVIVE   (1 << 3)
 Work-unit-event mask: reviving a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_RUN   (1 << 4)
 Work-unit-event mask: running a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_FINISH   (1 << 5)
 Work-unit-event mask: finishing a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_CANCEL   (1 << 6)
 Work-unit-event mask: canceling a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_YIELD   (1 << 7)
 Work-unit-event mask: yielding a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_SUSPEND   (1 << 8)
 Work-unit-event mask: suspending a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_RESUME   (1 << 9)
 Work-unit-event mask: resuming a work unit. More...
 
#define ABT_TOOL_EVENT_THREAD_ALL   ((uint64_t)((1 << 12) - 1))
 Work-unit-event mask: all events. More...
 
#define ABT_TRUE   1
 True constant for ABT_bool. More...
 
#define ABT_FALSE   0
 False constant for ABT_bool. More...
 
#define ABT_XSTREAM_ANY_RANK   -1
 Unused macro. More...
 
#define ABT_NULL   0
 
#define ABT_XSTREAM_NULL   ((ABT_xstream) (0x01))
 
#define ABT_XSTREAM_BARRIER_NULL   ((ABT_xstream_barrier)(0x02))
 
#define ABT_SCHED_NULL   ((ABT_sched) (0x03))
 
#define ABT_SCHED_CONFIG_NULL   ((ABT_sched_config) (0x04))
 
#define ABT_POOL_NULL   ((ABT_pool) (0x05))
 
#define ABT_POOL_CONFIG_NULL   ((ABT_pool_config) (0x06))
 
#define ABT_UNIT_NULL   ((ABT_unit) (0x07))
 
#define ABT_THREAD_NULL   ((ABT_thread) (0x08))
 
#define ABT_THREAD_ATTR_NULL   ((ABT_thread_attr) (0x09))
 
#define ABT_TASK_NULL   ((ABT_task) (0x0a))
 
#define ABT_KEY_NULL   ((ABT_key) (0x0b))
 
#define ABT_MUTEX_NULL   ((ABT_mutex) (0x0c))
 
#define ABT_MUTEX_ATTR_NULL   ((ABT_mutex_attr) (0x0d))
 
#define ABT_COND_NULL   ((ABT_cond) (0x0e))
 
#define ABT_RWLOCK_NULL   ((ABT_rwlock) (0x0f))
 
#define ABT_EVENTUAL_NULL   ((ABT_eventual) (0x10))
 
#define ABT_FUTURE_NULL   ((ABT_future) (0x11))
 
#define ABT_BARRIER_NULL   ((ABT_barrier) (0x12))
 
#define ABT_TIMER_NULL   ((ABT_timer) (0x13))
 
#define ABT_TOOL_CONTEXT_NULL   ((ABT_tool_context) (0x14))
 
#define ABT_MUTEX_INITIALIZER   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
 Initialize ABT_mutex_memory. More...
 
#define ABT_RECURSIVE_MUTEX_INITIALIZER   { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
 Initialize ABT_mutex_memory with a recursive property. More...
 
#define ABT_MUTEX_MEMORY_GET_HANDLE(p_mutex_memory)   ((ABT_mutex)p_mutex_memory)
 Obtain ABT_mutex from ABT_mutex_memory. More...
 
#define ABT_COND_INITIALIZER   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
 Initialize ABT_cond_memory. More...
 
#define ABT_COND_MEMORY_GET_HANDLE(p_cond_memory)   ((ABT_cond)p_cond_memory)
 Obtain ABT_cond from ABT_cond_memory. More...
 
#define ABT_task_is_unnamed   ABT_thread_is_unnamed
 
#define ABT_task_set_specific   ABT_thread_set_specific
 
#define ABT_task_get_specific   ABT_thread_get_specific
 
#define ABT_self_get_task   ABT_self_get_thread
 
#define ABT_self_get_task_id   ABT_self_get_thread_id
 

Typedefs

typedef struct ABT_xstream_opaque * ABT_xstream
 Execution stream handle type. More...
 
typedef enum ABT_xstream_state ABT_xstream_state
 Execution stream state type. More...
 
typedef struct ABT_xstream_barrier_opaque * ABT_xstream_barrier
 Execution-stream barrier handle type. More...
 
typedef struct ABT_sched_opaque * ABT_sched
 Scheduler handle type. More...
 
typedef struct ABT_sched_config_opaque * ABT_sched_config
 Scheduler configuration handle type. More...
 
typedef enum ABT_sched_predef ABT_sched_predef
 Predefined scheduler type. More...
 
typedef enum ABT_sched_state ABT_sched_state
 Scheduler state type. More...
 
typedef enum ABT_sched_type ABT_sched_type
 Scheduler's work unit type. More...
 
typedef struct ABT_pool_opaque * ABT_pool
 Pool handle type. More...
 
typedef struct ABT_pool_config_opaque * ABT_pool_config
 Pool configuration handle type. More...
 
typedef enum ABT_pool_kind ABT_pool_kind
 Predefined pool type. More...
 
typedef enum ABT_pool_access ABT_pool_access
 Pool access type. More...
 
typedef struct ABT_unit_opaque * ABT_unit
 Work unit handle type for scheduling. More...
 
typedef enum ABT_unit_type ABT_unit_type
 Work unit type. More...
 
typedef uint64_t ABT_unit_id
 Work unit ID type. More...
 
typedef struct ABT_thread_opaque * ABT_thread
 Work unit handle type. More...
 
typedef struct ABT_thread_attr_opaque * ABT_thread_attr
 ULT attribute handle type. More...
 
typedef enum ABT_thread_state ABT_thread_state
 Work unit state type. More...
 
typedef enum ABT_task_state ABT_task_state
 Tasklet state type. More...
 
typedef ABT_unit_id ABT_thread_id
 Work unit ID type. More...
 
typedef struct ABT_thread_opaque * ABT_task
 Work unit handle type. More...
 
typedef struct ABT_key_opaque * ABT_key
 Work-unit-specific data key handle type. More...
 
typedef struct ABT_mutex_opaque * ABT_mutex
 Mutex handle type. More...
 
typedef struct ABT_mutex_attr_opaque * ABT_mutex_attr
 Mutex attribute handle type. More...
 
typedef struct ABT_cond_opaque * ABT_cond
 Condition variable handle type. More...
 
typedef struct ABT_rwlock_opaque * ABT_rwlock
 Readers-writer lock handle type. More...
 
typedef struct ABT_eventual_opaque * ABT_eventual
 Eventual handle type. More...
 
typedef struct ABT_future_opaque * ABT_future
 Future handle type. More...
 
typedef struct ABT_barrier_opaque * ABT_barrier
 Barrier handle type. More...
 
typedef struct ABT_timer_opaque * ABT_timer
 Timer handle type. More...
 
typedef int ABT_bool
 Boolean type. More...
 
typedef enum ABT_info_query_kind ABT_info_query_kind
 Query type for ABT_info_query_config(). More...
 
typedef struct ABT_tool_context_opaque * ABT_tool_context
 Tool context handle type. More...
 
typedef enum ABT_tool_query_kind ABT_tool_query_kind
 Tool query type. More...
 
typedef enum ABT_exec_entity_type ABT_exec_entity_type
 Execution entity type. More...
 
typedef enum ABT_sync_event_type ABT_sync_event_type
 Synchronization event type. More...
 
typedef int(* ABT_sched_init_fn) (ABT_sched, ABT_sched_config)
 
typedef void(* ABT_sched_run_fn) (ABT_sched)
 
typedef int(* ABT_sched_free_fn) (ABT_sched)
 
typedef ABT_pool(* ABT_sched_get_migr_pool_fn) (ABT_sched)
 
typedef ABT_unit_type(* ABT_unit_get_type_fn) (ABT_unit)
 
typedef ABT_thread(* ABT_unit_get_thread_fn) (ABT_unit)
 
typedef ABT_task(* ABT_unit_get_task_fn) (ABT_unit)
 
typedef ABT_bool(* ABT_unit_is_in_pool_fn) (ABT_unit)
 
typedef ABT_unit(* ABT_unit_create_from_thread_fn) (ABT_thread)
 
typedef ABT_unit(* ABT_unit_create_from_task_fn) (ABT_task)
 
typedef void(* ABT_unit_free_fn) (ABT_unit *)
 
typedef int(* ABT_pool_init_fn) (ABT_pool, ABT_pool_config)
 
typedef size_t(* ABT_pool_get_size_fn) (ABT_pool)
 
typedef void(* ABT_pool_push_fn) (ABT_pool, ABT_unit)
 
typedef ABT_unit(* ABT_pool_pop_fn) (ABT_pool)
 
typedef ABT_unit(* ABT_pool_pop_wait_fn) (ABT_pool, double)
 
typedef ABT_unit(* ABT_pool_pop_timedwait_fn) (ABT_pool, double)
 
typedef int(* ABT_pool_remove_fn) (ABT_pool, ABT_unit)
 
typedef int(* ABT_pool_free_fn) (ABT_pool)
 
typedef int(* ABT_pool_print_all_fn) (ABT_pool, void *arg, void(*) (void *, ABT_unit))
 
typedef void(* ABT_tool_thread_callback_fn) (ABT_thread, ABT_xstream, uint64_t event, ABT_tool_context context, void *user_arg)
 
typedef void(* ABT_tool_task_callback_fn) (ABT_task, ABT_xstream, uint64_t event, ABT_tool_context context, void *user_arg)
 

Enumerations

enum  ABT_xstream_state { ABT_XSTREAM_STATE_RUNNING, ABT_XSTREAM_STATE_TERMINATED }
 State of an execution stream. More...
 
enum  ABT_thread_state { ABT_THREAD_STATE_READY, ABT_THREAD_STATE_RUNNING, ABT_THREAD_STATE_BLOCKED, ABT_THREAD_STATE_TERMINATED }
 State of a work unit. More...
 
enum  ABT_task_state { ABT_TASK_STATE_READY, ABT_TASK_STATE_RUNNING, ABT_TASK_STATE_TERMINATED }
 State of a tasklet. More...
 
enum  ABT_sched_state { ABT_SCHED_STATE_READY, ABT_SCHED_STATE_RUNNING, ABT_SCHED_STATE_STOPPED, ABT_SCHED_STATE_TERMINATED }
 Unused enum. More...
 
enum  ABT_sched_predef {
  ABT_SCHED_DEFAULT, ABT_SCHED_BASIC, ABT_SCHED_PRIO, ABT_SCHED_RANDWS,
  ABT_SCHED_BASIC_WAIT
}
 Predefined scheduler type. More...
 
enum  ABT_sched_type { ABT_SCHED_TYPE_ULT, ABT_SCHED_TYPE_TASK }
 Scheduler's work unit type. More...
 
enum  ABT_pool_kind { ABT_POOL_FIFO, ABT_POOL_FIFO_WAIT }
 Predefined pool type. More...
 
enum  ABT_pool_access {
  ABT_POOL_ACCESS_PRIV, ABT_POOL_ACCESS_SPSC, ABT_POOL_ACCESS_MPSC, ABT_POOL_ACCESS_SPMC,
  ABT_POOL_ACCESS_MPMC
}
 Pool access type. More...
 
enum  ABT_unit_type { ABT_UNIT_TYPE_THREAD, ABT_UNIT_TYPE_TASK, ABT_UNIT_TYPE_XSTREAM, ABT_UNIT_TYPE_EXT }
 Type of a work unit for scheduling. More...
 
enum  ABT_info_query_kind {
  ABT_INFO_QUERY_KIND_ENABLED_DEBUG, ABT_INFO_QUERY_KIND_ENABLED_PRINT_ERRNO, ABT_INFO_QUERY_KIND_ENABLED_LOG, ABT_INFO_QUERY_KIND_ENABLED_VALGRIND,
  ABT_INFO_QUERY_KIND_ENABLED_CHECK_ERROR, ABT_INFO_QUERY_KIND_ENABLED_CHECK_POOL_PRODUCER, ABT_INFO_QUERY_KIND_ENABLED_CHECK_POOL_CONSUMER, ABT_INFO_QUERY_KIND_ENABLED_PRESERVE_FPU,
  ABT_INFO_QUERY_KIND_ENABLED_THREAD_CANCEL, ABT_INFO_QUERY_KIND_ENABLED_TASK_CANCEL, ABT_INFO_QUERY_KIND_ENABLED_MIGRATION, ABT_INFO_QUERY_KIND_ENABLED_STACKABLE_SCHED,
  ABT_INFO_QUERY_KIND_ENABLED_EXTERNAL_THREAD, ABT_INFO_QUERY_KIND_ENABLED_SCHED_SLEEP, ABT_INFO_QUERY_KIND_ENABLED_PRINT_CONFIG, ABT_INFO_QUERY_KIND_ENABLED_AFFINITY,
  ABT_INFO_QUERY_KIND_MAX_NUM_XSTREAMS, ABT_INFO_QUERY_KIND_DEFAULT_THREAD_STACKSIZE, ABT_INFO_QUERY_KIND_DEFAULT_SCHED_STACKSIZE, ABT_INFO_QUERY_KIND_DEFAULT_SCHED_EVENT_FREQ,
  ABT_INFO_QUERY_KIND_DEFAULT_SCHED_SLEEP_NSEC, ABT_INFO_QUERY_KIND_ENABLED_TOOL, ABT_INFO_QUERY_KIND_FCONTEXT, ABT_INFO_QUERY_KIND_DYNAMIC_PROMOTION,
  ABT_INFO_QUERY_KIND_ENABLED_STACK_UNWIND, ABT_INFO_QUERY_KIND_ENABLED_STACK_OVERFLOW_CHECK, ABT_INFO_QUERY_KIND_WAIT_POLICY
}
 Query kind for ABT_info_query_config(). More...
 
enum  ABT_tool_query_kind {
  ABT_TOOL_QUERY_KIND_POOL, ABT_TOOL_QUERY_KIND_STACK_DEPTH, ABT_TOOL_QUERY_KIND_CALLER_TYPE, ABT_TOOL_QUERY_KIND_CALLER_HANDLE,
  ABT_TOOL_QUERY_KIND_SYNC_OBJECT_TYPE, ABT_TOOL_QUERY_KIND_SYNC_OBJECT_HANDLE
}
 Tool query kind for ABT_tool_query_thread(). More...
 
enum  ABT_exec_entity_type { ABT_EXEC_ENTITY_TYPE_EXT, ABT_EXEC_ENTITY_TYPE_THREAD }
 Type of execution entity. More...
 
enum  ABT_sync_event_type {
  ABT_SYNC_EVENT_TYPE_UNKNOWN = 0, ABT_SYNC_EVENT_TYPE_USER, ABT_SYNC_EVENT_TYPE_OTHER, ABT_SYNC_EVENT_TYPE_XSTREAM_JOIN,
  ABT_SYNC_EVENT_TYPE_THREAD_JOIN, ABT_SYNC_EVENT_TYPE_MUTEX, ABT_SYNC_EVENT_TYPE_COND, ABT_SYNC_EVENT_TYPE_RWLOCK,
  ABT_SYNC_EVENT_TYPE_EVENTUAL, ABT_SYNC_EVENT_TYPE_FUTURE, ABT_SYNC_EVENT_TYPE_BARRIER
}
 Type of synchronization event. More...
 
enum  ABT_sched_config_type { ABT_SCHED_CONFIG_INT = 0, ABT_SCHED_CONFIG_DOUBLE = 1, ABT_SCHED_CONFIG_PTR = 2 }
 A struct that sets and gets a scheduler configuration. More...
 

Functions

int ABT_init (int argc, char **argv) ABT_API_PUBLIC
 Initialize the Argobots execution environment. More...
 
int ABT_finalize (void) ABT_API_PUBLIC
 Finalize the Argobots execution environment. More...
 
int ABT_initialized (void) ABT_API_PUBLIC
 Check if the Argobots execution environment has been initialized. More...
 
int ABT_xstream_create (ABT_sched sched, ABT_xstream *newxstream) ABT_API_PUBLIC
 Create a new execution stream. More...
 
int ABT_xstream_create_basic (ABT_sched_predef predef, int num_pools, ABT_pool *pools, ABT_sched_config config, ABT_xstream *newxstream) ABT_API_PUBLIC
 Create a new execution stream with a predefined scheduler. More...
 
int ABT_xstream_create_with_rank (ABT_sched sched, int rank, ABT_xstream *newxstream) ABT_API_PUBLIC
 Create a new execution stream with a specific rank. More...
 
int ABT_xstream_free (ABT_xstream *xstream) ABT_API_PUBLIC
 Free an execution stream. More...
 
int ABT_xstream_join (ABT_xstream xstream) ABT_API_PUBLIC
 Wait for an execution stream to terminate. More...
 
int ABT_xstream_revive (ABT_xstream xstream) ABT_API_PUBLIC
 Revive a terminated execution stream. More...
 
int ABT_xstream_exit (void) ABT_API_PUBLIC
 Terminate an execution stream that is running the calling ULT. More...
 
int ABT_xstream_cancel (ABT_xstream xstream) ABT_API_PUBLIC
 Send a cancellation request to an execution stream. More...
 
int ABT_xstream_self (ABT_xstream *xstream) ABT_API_PUBLIC
 Get an execution stream that is running the calling work unit. More...
 
int ABT_xstream_self_rank (int *rank) ABT_API_PUBLIC
 Return a rank of an execution stream associated with a caller. More...
 
int ABT_xstream_set_rank (ABT_xstream xstream, int rank) ABT_API_PUBLIC
 Set a rank for an execution stream. More...
 
int ABT_xstream_get_rank (ABT_xstream xstream, int *rank) ABT_API_PUBLIC
 Retrieve a rank of an execution stream. More...
 
int ABT_xstream_set_main_sched (ABT_xstream xstream, ABT_sched sched) ABT_API_PUBLIC
 Set the main scheduler of an execution stream. More...
 
int ABT_xstream_set_main_sched_basic (ABT_xstream xstream, ABT_sched_predef predef, int num_pools, ABT_pool *pools) ABT_API_PUBLIC
 Set the main scheduler of an execution stream to a predefined scheduler. More...
 
int ABT_xstream_get_main_sched (ABT_xstream xstream, ABT_sched *sched) ABT_API_PUBLIC
 Retrieve the main scheduler of an execution stream. More...
 
int ABT_xstream_get_main_pools (ABT_xstream xstream, int max_pools, ABT_pool *pools) ABT_API_PUBLIC
 Get pools associated with the main scheduler of an execution stream. More...
 
int ABT_xstream_get_state (ABT_xstream xstream, ABT_xstream_state *state) ABT_API_PUBLIC
 Get a state of an execution stream. More...
 
int ABT_xstream_equal (ABT_xstream xstream1, ABT_xstream xstream2, ABT_bool *result) ABT_API_PUBLIC
 Compare two execution stream handles for equality. More...
 
int ABT_xstream_get_num (int *num_xstreams) ABT_API_PUBLIC
 Get the number of current existing execution streams. More...
 
int ABT_xstream_is_primary (ABT_xstream xstream, ABT_bool *is_primary) ABT_API_PUBLIC
 Check if the target execution stream is primary. More...
 
int ABT_xstream_run_unit (ABT_unit unit, ABT_pool pool) ABT_API_PUBLIC
 Execute a work unit. More...
 
int ABT_xstream_check_events (ABT_sched sched) ABT_API_PUBLIC
 Process events associated with a scheduler. More...
 
int ABT_xstream_set_cpubind (ABT_xstream xstream, int cpuid) ABT_API_PUBLIC
 Bind an execution stream to a target CPU. More...
 
int ABT_xstream_get_cpubind (ABT_xstream xstream, int *cpuid) ABT_API_PUBLIC
 Get CPU ID of a CPU to which an execution stream is bound. More...
 
int ABT_xstream_set_affinity (ABT_xstream xstream, int num_cpuids, int *cpuids) ABT_API_PUBLIC
 Bind an execution stream to target CPUs. More...
 
int ABT_xstream_get_affinity (ABT_xstream xstream, int max_cpuids, int *cpuids, int *num_cpuids) ABT_API_PUBLIC
 Get CPU IDs of CPUs to which an execution stream is bound. More...
 
int ABT_xstream_barrier_create (uint32_t num_waiters, ABT_xstream_barrier *newbarrier) ABT_API_PUBLIC
 Create a new execution-stream barrier. More...
 
int ABT_xstream_barrier_free (ABT_xstream_barrier *barrier) ABT_API_PUBLIC
 Free an execution-stream barrier. More...
 
int ABT_xstream_barrier_wait (ABT_xstream_barrier barrier) ABT_API_PUBLIC
 Wait on an execution-stream barrier. More...
 
int ABT_sched_create (ABT_sched_def *def, int num_pools, ABT_pool *pools, ABT_sched_config config, ABT_sched *newsched) ABT_API_PUBLIC
 Create a new scheduler with a scheduler definition. More...
 
int ABT_sched_create_basic (ABT_sched_predef predef, int num_pools, ABT_pool *pools, ABT_sched_config config, ABT_sched *newsched) ABT_API_PUBLIC
 Create a new scheduler with a predefined scheduler type. More...
 
int ABT_sched_free (ABT_sched *sched) ABT_API_PUBLIC
 Free a scheduler. More...
 
int ABT_sched_set_data (ABT_sched sched, void *data) ABT_API_PUBLIC
 Associate a user value with a scheduler. More...
 
int ABT_sched_get_data (ABT_sched sched, void **data) ABT_API_PUBLIC
 Retrieve a user value associated with a scheduler. More...
 
int ABT_sched_get_num_pools (ABT_sched sched, int *num_pools) ABT_API_PUBLIC
 Obtain the number of pools associated with a scheduler. More...
 
int ABT_sched_get_pools (ABT_sched sched, int max_pools, int idx, ABT_pool *pools) ABT_API_PUBLIC
 Retrieve pools associated with a scheduler. More...
 
int ABT_sched_get_size (ABT_sched sched, size_t *size) ABT_API_PUBLIC
 Obtain the sum of sizes of pools associated with a scheduler. More...
 
int ABT_sched_get_total_size (ABT_sched sched, size_t *size) ABT_API_PUBLIC
 Obtain the sum of the total sizes of pools associated with a scheduler. More...
 
int ABT_sched_finish (ABT_sched sched) ABT_API_PUBLIC
 Request a scheduler to finish after its pools get empty. More...
 
int ABT_sched_exit (ABT_sched sched) ABT_API_PUBLIC
 Request a scheduler to finish. More...
 
int ABT_sched_has_to_stop (ABT_sched sched, ABT_bool *stop) ABT_API_PUBLIC
 Check if a scheduler needs to stop. More...
 
int ABT_sched_config_create (ABT_sched_config *config,...) ABT_API_PUBLIC
 Create a new scheduler configuration. More...
 
int ABT_sched_config_read (ABT_sched_config config, int num_vars,...) ABT_API_PUBLIC
 Retrieve values from a scheduler configuration. More...
 
int ABT_sched_config_free (ABT_sched_config *config) ABT_API_PUBLIC
 Free a scheduler configuration. More...
 
int ABT_pool_create (ABT_pool_def *def, ABT_pool_config config, ABT_pool *newpool) ABT_API_PUBLIC
 Create a new pool. More...
 
int ABT_pool_create_basic (ABT_pool_kind kind, ABT_pool_access access, ABT_bool automatic, ABT_pool *newpool) ABT_API_PUBLIC
 Create a new pool from a predefined type. More...
 
int ABT_pool_free (ABT_pool *pool) ABT_API_PUBLIC
 Free a pool. More...
 
int ABT_pool_get_access (ABT_pool pool, ABT_pool_access *access) ABT_API_PUBLIC
 Get an access type of a pool. More...
 
int ABT_pool_get_size (ABT_pool pool, size_t *size) ABT_API_PUBLIC
 Get the size of a pool. More...
 
int ABT_pool_get_total_size (ABT_pool pool, size_t *size) ABT_API_PUBLIC
 Get the total size of a pool. More...
 
int ABT_pool_pop (ABT_pool pool, ABT_unit *unit) ABT_API_PUBLIC
 Pop a work unit from a pool. More...
 
int ABT_pool_pop_wait (ABT_pool pool, ABT_unit *unit, double time_secs) ABT_API_PUBLIC
 Pop a unit from a pool with wait. More...
 
int ABT_pool_pop_timedwait (ABT_pool pool, ABT_unit *unit, double abstime_secs) ABT_DEPRECATED ABT_API_PUBLIC
 Pop a unit from a pool with timed wait. More...
 
int ABT_pool_remove (ABT_pool pool, ABT_unit unit) ABT_API_PUBLIC
 Remove a specified work unit from a pool. More...
 
int ABT_pool_push (ABT_pool pool, ABT_unit unit) ABT_API_PUBLIC
 Push a unit to a pool. More...
 
int ABT_pool_print_all (ABT_pool pool, void *arg, void(*print_fn)(void *arg, ABT_unit)) ABT_API_PUBLIC
 
int ABT_pool_set_data (ABT_pool pool, void *data) ABT_API_PUBLIC
 Set user data in a pool. More...
 
int ABT_pool_get_data (ABT_pool pool, void **data) ABT_API_PUBLIC
 Retrieve user data from a pool. More...
 
int ABT_pool_add_sched (ABT_pool pool, ABT_sched sched) ABT_API_PUBLIC
 Create a new work unit associated with a scheduler and push it to a pool. More...
 
int ABT_pool_get_id (ABT_pool pool, int *id) ABT_API_PUBLIC
 Get ID of a pool. More...
 
int ABT_unit_get_thread (ABT_unit unit, ABT_thread *thread) ABT_API_PUBLIC
 Get a thread handle of the target work unit. More...
 
int ABT_unit_set_associated_pool (ABT_unit unit, ABT_pool pool) ABT_API_PUBLIC
 No operation. More...
 
int ABT_thread_create (ABT_pool pool, void(*thread_func)(void *), void *arg, ABT_thread_attr attr, ABT_thread *newthread) ABT_API_PUBLIC
 Create a new ULT. More...
 
int ABT_thread_create_on_xstream (ABT_xstream xstream, void(*thread_func)(void *), void *arg, ABT_thread_attr attr, ABT_thread *newthread) ABT_API_PUBLIC
 Create a new ULT associated with an execution stream. More...
 
int ABT_thread_create_many (int num_threads, ABT_pool *pool_list, void(**thread_func_list)(void *), void **arg_list, ABT_thread_attr attr, ABT_thread *newthread_list) ABT_API_PUBLIC
 Create a set of new ULTs. More...
 
int ABT_thread_revive (ABT_pool pool, void(*thread_func)(void *), void *arg, ABT_thread *thread) ABT_API_PUBLIC
 Revive a terminated work unit. More...
 
int ABT_thread_free (ABT_thread *thread) ABT_API_PUBLIC
 Free a work unit. More...
 
int ABT_thread_free_many (int num_threads, ABT_thread *thread_list) ABT_API_PUBLIC
 Free a set of work units. More...
 
int ABT_thread_join (ABT_thread thread) ABT_API_PUBLIC
 Wait for a work unit to terminate. More...
 
int ABT_thread_join_many (int num_threads, ABT_thread *thread_list) ABT_API_PUBLIC
 Wait for a set of work units to terminate. More...
 
int ABT_thread_exit (void) ABT_API_PUBLIC
 Terminate a calling ULT. More...
 
int ABT_thread_cancel (ABT_thread thread) ABT_API_PUBLIC
 Send a cancellation request to a work unit. More...
 
int ABT_thread_self (ABT_thread *thread) ABT_API_PUBLIC
 Get the calling work unit. More...
 
int ABT_thread_self_id (ABT_unit_id *id) ABT_API_PUBLIC
 Get ID of the calling work unit. More...
 
int ABT_thread_get_last_xstream (ABT_thread thread, ABT_xstream *xstream) ABT_API_PUBLIC
 Get an execution stream associated with a work unit. More...
 
int ABT_thread_get_state (ABT_thread thread, ABT_thread_state *state) ABT_API_PUBLIC
 Get a state of a work unit. More...
 
int ABT_thread_get_last_pool (ABT_thread thread, ABT_pool *pool) ABT_API_PUBLIC
 Get the last pool of a work unit. More...
 
int ABT_thread_get_last_pool_id (ABT_thread thread, int *id) ABT_API_PUBLIC
 Get the last pool's ID of a work unit. More...
 
int ABT_thread_get_unit (ABT_thread thread, ABT_unit *unit) ABT_API_PUBLIC
 Get a unit handle of the target work unit. More...
 
int ABT_thread_set_associated_pool (ABT_thread thread, ABT_pool pool) ABT_API_PUBLIC
 Set an associated pool for the target work unit. More...
 
int ABT_thread_yield_to (ABT_thread thread) ABT_API_PUBLIC
 Yield the calling ULT to another ULT. More...
 
int ABT_thread_yield (void) ABT_API_PUBLIC
 Yield the calling ULT to its parent ULT. More...
 
int ABT_thread_resume (ABT_thread thread) ABT_API_PUBLIC
 Resume a ULT. More...
 
int ABT_thread_migrate_to_xstream (ABT_thread thread, ABT_xstream xstream) ABT_API_PUBLIC
 Request a migration of a work unit to a specific execution stream. More...
 
int ABT_thread_migrate_to_sched (ABT_thread thread, ABT_sched sched) ABT_API_PUBLIC
 Request a migration of a work unit to a specific scheduler. More...
 
int ABT_thread_migrate_to_pool (ABT_thread thread, ABT_pool pool) ABT_API_PUBLIC
 Request a migration of a work unit to a specific pool. More...
 
int ABT_thread_migrate (ABT_thread thread) ABT_API_PUBLIC
 Request a migration of a work unit to any available execution stream. More...
 
int ABT_thread_set_callback (ABT_thread thread, void(*cb_func)(ABT_thread thread, void *cb_arg), void *cb_arg) ABT_API_PUBLIC
 Register a callback function in a work unit. More...
 
int ABT_thread_set_migratable (ABT_thread thread, ABT_bool migratable) ABT_API_PUBLIC
 Set the migratability in a work unit. More...
 
int ABT_thread_is_migratable (ABT_thread thread, ABT_bool *is_migratable) ABT_API_PUBLIC
 Get the migratability of a work unit. More...
 
int ABT_thread_is_primary (ABT_thread thread, ABT_bool *is_primary) ABT_API_PUBLIC
 Check if a work unit is the primary ULT. More...
 
int ABT_thread_is_unnamed (ABT_thread thread, ABT_bool *is_unnamed) ABT_API_PUBLIC
 Check if a work unit is unnamed. More...
 
int ABT_thread_equal (ABT_thread thread1, ABT_thread thread2, ABT_bool *result) ABT_API_PUBLIC
 Compare two work unit handles for equality. More...
 
int ABT_thread_get_stacksize (ABT_thread thread, size_t *stacksize) ABT_API_PUBLIC
 Get a stack size of a work unit. More...
 
int ABT_thread_get_id (ABT_thread thread, ABT_unit_id *thread_id) ABT_API_PUBLIC
 Get ID of a work unit. More...
 
int ABT_thread_set_arg (ABT_thread thread, void *arg) ABT_API_PUBLIC
 Set an argument for a work-unit function of a work unit. More...
 
int ABT_thread_get_arg (ABT_thread thread, void **arg) ABT_API_PUBLIC
 Retrieve an argument for a work-unit function of a work unit. More...
 
int ABT_thread_get_thread_func (ABT_thread thread, void(**thread_func)(void *)) ABT_API_PUBLIC
 Retrieve a work-unit function of a work unit. More...
 
int ABT_thread_set_specific (ABT_thread thread, ABT_key key, void *value) ABT_API_PUBLIC
 Set a value with a work-unit-specific data key in a work unit. More...
 
int ABT_thread_get_specific (ABT_thread thread, ABT_key key, void **value) ABT_API_PUBLIC
 Get a value associated with a work-unit-specific data key in a work unit. More...
 
int ABT_thread_get_attr (ABT_thread thread, ABT_thread_attr *attr) ABT_API_PUBLIC
 Get attributes of a work unit. More...
 
int ABT_thread_attr_create (ABT_thread_attr *newattr) ABT_API_PUBLIC
 Create a new ULT attribute. More...
 
int ABT_thread_attr_free (ABT_thread_attr *attr) ABT_API_PUBLIC
 Free a ULT attribute. More...
 
int ABT_thread_attr_set_stack (ABT_thread_attr attr, void *stackaddr, size_t stacksize) ABT_API_PUBLIC
 Set stack attributes in a ULT attribute. More...
 
int ABT_thread_attr_get_stack (ABT_thread_attr attr, void **stackaddr, size_t *stacksize) ABT_API_PUBLIC
 Get stack attributes from a ULT attribute. More...
 
int ABT_thread_attr_set_stacksize (ABT_thread_attr attr, size_t stacksize) ABT_API_PUBLIC
 Set stack size in a ULT attribute. More...
 
int ABT_thread_attr_get_stacksize (ABT_thread_attr attr, size_t *stacksize) ABT_API_PUBLIC
 Get the stack size from a ULT attribute. More...
 
int ABT_thread_attr_set_callback (ABT_thread_attr attr, void(*cb_func)(ABT_thread thread, void *cb_arg), void *cb_arg) ABT_API_PUBLIC
 Set a callback function and its argument in a ULT attribute. More...
 
int ABT_thread_attr_set_migratable (ABT_thread_attr attr, ABT_bool is_migratable) ABT_API_PUBLIC
 Set the ULT's migratability in a ULT attribute. More...
 
int ABT_task_create (ABT_pool pool, void(*task_func)(void *), void *arg, ABT_task *newtask) ABT_API_PUBLIC
 Create a new tasklet. More...
 
int ABT_task_create_on_xstream (ABT_xstream xstream, void(*task_func)(void *), void *arg, ABT_task *newtask) ABT_API_PUBLIC
 Create a new tasklet associated with an execution stream. More...
 
int ABT_task_revive (ABT_pool pool, void(*task_func)(void *), void *arg, ABT_task *task) ABT_API_PUBLIC
 Revive a terminated work unit. More...
 
int ABT_task_free (ABT_task *task) ABT_API_PUBLIC
 Free a work unit. More...
 
int ABT_task_join (ABT_task task) ABT_API_PUBLIC
 Wait for a work unit to terminate. More...
 
int ABT_task_cancel (ABT_task task) ABT_API_PUBLIC
 Send a termination request to a work unit. More...
 
int ABT_task_self (ABT_task *task) ABT_API_PUBLIC
 Get the calling work unit. More...
 
int ABT_task_self_id (uint64_t *id) ABT_API_PUBLIC
 Get ID of the calling work unit. More...
 
int ABT_task_get_xstream (ABT_task task, ABT_xstream *xstream) ABT_API_PUBLIC
 Get an execution stream associated with a work unit. More...
 
int ABT_task_get_state (ABT_task task, ABT_task_state *state) ABT_API_PUBLIC
 Get a state of a tasklet. More...
 
int ABT_task_get_last_pool (ABT_task task, ABT_pool *pool) ABT_API_PUBLIC
 Get the last pool of a work unit. More...
 
int ABT_task_get_last_pool_id (ABT_task task, int *id) ABT_API_PUBLIC
 Get the last pool's ID of a work unit. More...
 
int ABT_task_set_migratable (ABT_task task, ABT_bool flag) ABT_API_PUBLIC
 Set the migratability in a work unit. More...
 
int ABT_task_is_migratable (ABT_task task, ABT_bool *flag) ABT_API_PUBLIC
 Get the migratability of a work unit. More...
 
int ABT_task_equal (ABT_task task1, ABT_task task2, ABT_bool *result) ABT_API_PUBLIC
 Compare two work-unit handles for equality. More...
 
int ABT_task_get_id (ABT_task task, uint64_t *task_id) ABT_API_PUBLIC
 Get ID of a work unit. More...
 
int ABT_task_get_arg (ABT_task task, void **arg) ABT_API_PUBLIC
 Retrieve an argument for a work-unit function of a work unit. More...
 
int ABT_self_get_xstream (ABT_xstream *xstream) ABT_API_PUBLIC
 Get an execution stream that is running the calling work unit. More...
 
int ABT_self_get_xstream_rank (int *rank) ABT_API_PUBLIC
 Return a rank of an execution stream that is running the calling work unit. More...
 
int ABT_self_get_thread (ABT_thread *thread) ABT_API_PUBLIC
 Get the calling work unit. More...
 
int ABT_self_get_thread_id (ABT_unit_id *id) ABT_API_PUBLIC
 Get ID of the calling work unit. More...
 
int ABT_self_set_specific (ABT_key key, void *value) ABT_API_PUBLIC
 Associate a value with a work-unit-specific data key in the calling work unit. More...
 
int ABT_self_get_specific (ABT_key key, void **value) ABT_API_PUBLIC
 Get a value associated with a work-unit-specific data key in the calling work unit. More...
 
int ABT_self_get_type (ABT_unit_type *type) ABT_API_PUBLIC
 Obtain a type of the caller. More...
 
int ABT_self_is_primary (ABT_bool *is_primary) ABT_API_PUBLIC
 Check if the caller is the primary ULT. More...
 
int ABT_self_on_primary_xstream (ABT_bool *on_primary) ABT_API_PUBLIC
 Check if the caller is running on the primary execution stream. More...
 
int ABT_self_is_unnamed (ABT_bool *is_unnamed) ABT_API_PUBLIC
 Check if the calling work unit is unnamed. More...
 
int ABT_self_get_last_pool (ABT_pool *pool) ABT_API_PUBLIC
 Get the last pool of the calling work unit. More...
 
int ABT_self_get_last_pool_id (int *pool_id) ABT_API_PUBLIC
 Get ID of the last pool of the calling work unit. More...
 
int ABT_self_set_associated_pool (ABT_pool pool) ABT_API_PUBLIC
 Set an associated pool for the calling work unit. More...
 
int ABT_self_get_unit (ABT_unit *unit) ABT_API_PUBLIC
 Get a unit handle of the calling work unit. More...
 
int ABT_self_yield (void) ABT_API_PUBLIC
 Yield the calling ULT to its parent ULT. More...
 
int ABT_self_suspend (void) ABT_API_PUBLIC
 Suspend the calling ULT. More...
 
int ABT_self_exit (void) ABT_API_PUBLIC
 Terminate a calling ULT. More...
 
int ABT_self_set_arg (void *arg) ABT_API_PUBLIC
 Set an argument for a work-unit function of the calling work unit. More...
 
int ABT_self_get_arg (void **arg) ABT_API_PUBLIC
 Retrieve an argument for a work-unit function of the calling work unit. More...
 
int ABT_self_get_thread_func (void(**thread_func)(void *)) ABT_API_PUBLIC
 Retrieve a work-unit function of the calling work unit. More...
 
int ABT_key_create (void(*destructor)(void *value), ABT_key *newkey) ABT_API_PUBLIC
 Create a new work-unit-specific data key. More...
 
int ABT_key_free (ABT_key *key) ABT_API_PUBLIC
 Free a work-unit-specific data key. More...
 
int ABT_key_set (ABT_key key, void *value) ABT_API_PUBLIC
 Associate a value with a work-unit-specific data key in the calling work unit. More...
 
int ABT_key_get (ABT_key key, void **value) ABT_API_PUBLIC
 Get a value associated with a work-unit-specific data key in the calling work unit. More...
 
int ABT_mutex_create (ABT_mutex *newmutex) ABT_API_PUBLIC
 Create a new mutex. More...
 
int ABT_mutex_create_with_attr (ABT_mutex_attr attr, ABT_mutex *newmutex) ABT_API_PUBLIC
 Create a new mutex with mutex attributes. More...
 
int ABT_mutex_free (ABT_mutex *mutex) ABT_API_PUBLIC
 Free a mutex. More...
 
int ABT_mutex_lock (ABT_mutex mutex) ABT_API_PUBLIC
 Lock a mutex. More...
 
int ABT_mutex_lock_high (ABT_mutex mutex) ABT_API_PUBLIC
 Lock a mutex with high priority. More...
 
int ABT_mutex_lock_low (ABT_mutex mutex) ABT_API_PUBLIC
 Lock a mutex with low priority. More...
 
int ABT_mutex_trylock (ABT_mutex mutex) ABT_API_PUBLIC
 Attempt to lock a mutex. More...
 
int ABT_mutex_spinlock (ABT_mutex mutex) ABT_API_PUBLIC
 Lock a mutex in a busy-wait form. More...
 
int ABT_mutex_unlock (ABT_mutex mutex) ABT_API_PUBLIC
 Unlock a mutex. More...
 
int ABT_mutex_unlock_se (ABT_mutex mutex) ABT_API_PUBLIC
 Unlock a mutex and try to hand it over a waiter associated with the same execution stream. More...
 
int ABT_mutex_unlock_de (ABT_mutex mutex) ABT_API_PUBLIC
 Unlock a mutex and try to hand it over a waiter associated with an execution stream that is different from that of the caller. More...
 
int ABT_mutex_equal (ABT_mutex mutex1, ABT_mutex mutex2, ABT_bool *result) ABT_API_PUBLIC
 Compare two mutex handles for equality. More...
 
int ABT_mutex_get_attr (ABT_mutex mutex, ABT_mutex_attr *attr) ABT_API_PUBLIC
 Get attributes of a mutex. More...
 
int ABT_mutex_attr_create (ABT_mutex_attr *newattr) ABT_API_PUBLIC
 Create a new mutex attribute. More...
 
int ABT_mutex_attr_free (ABT_mutex_attr *attr) ABT_API_PUBLIC
 Free a mutex attribute. More...
 
int ABT_mutex_attr_set_recursive (ABT_mutex_attr attr, ABT_bool recursive) ABT_API_PUBLIC
 Set a recursive property in a mutex attribute. More...
 
int ABT_mutex_attr_get_recursive (ABT_mutex_attr attr, ABT_bool *recursive) ABT_API_PUBLIC
 Get a recursive property in a mutex attribute. More...
 
int ABT_cond_create (ABT_cond *newcond) ABT_API_PUBLIC
 Create a new condition variable. More...
 
int ABT_cond_free (ABT_cond *cond) ABT_API_PUBLIC
 Free a condition variable. More...
 
int ABT_cond_wait (ABT_cond cond, ABT_mutex mutex) ABT_API_PUBLIC
 Wait on a condition variable. More...
 
int ABT_cond_timedwait (ABT_cond cond, ABT_mutex mutex, const struct timespec *abstime) ABT_API_PUBLIC
 Wait on a condition variable with a timeout limit. More...
 
int ABT_cond_signal (ABT_cond cond) ABT_API_PUBLIC
 Signal a condition. More...
 
int ABT_cond_broadcast (ABT_cond cond) ABT_API_PUBLIC
 Broadcast a condition. More...
 
int ABT_rwlock_create (ABT_rwlock *newrwlock) ABT_API_PUBLIC
 Create a new readers-writer lock. More...
 
int ABT_rwlock_free (ABT_rwlock *rwlock) ABT_API_PUBLIC
 Free a readers-writer lock. More...
 
int ABT_rwlock_rdlock (ABT_rwlock rwlock) ABT_API_PUBLIC
 Lock a readers-writer lock as a reader. More...
 
int ABT_rwlock_wrlock (ABT_rwlock rwlock) ABT_API_PUBLIC
 Lock a readers-writer lock as a writer. More...
 
int ABT_rwlock_unlock (ABT_rwlock rwlock) ABT_API_PUBLIC
 Unlock a readers-writer lock. More...
 
int ABT_eventual_create (int nbytes, ABT_eventual *neweventual) ABT_API_PUBLIC
 Create a new eventual. More...
 
int ABT_eventual_free (ABT_eventual *eventual) ABT_API_PUBLIC
 Free an eventual. More...
 
int ABT_eventual_wait (ABT_eventual eventual, void **value) ABT_API_PUBLIC
 Wait on an eventual. More...
 
int ABT_eventual_test (ABT_eventual eventual, void **value, ABT_bool *is_ready) ABT_API_PUBLIC
 Check if an eventual is ready. More...
 
int ABT_eventual_set (ABT_eventual eventual, void *value, int nbytes) ABT_API_PUBLIC
 Signal an eventual. More...
 
int ABT_eventual_reset (ABT_eventual eventual) ABT_API_PUBLIC
 Reset a readiness of an eventual. More...
 
int ABT_future_create (uint32_t num_compartments, void(*cb_func)(void **arg), ABT_future *newfuture) ABT_API_PUBLIC
 Create a new future. More...
 
int ABT_future_free (ABT_future *future) ABT_API_PUBLIC
 Free a future. More...
 
int ABT_future_wait (ABT_future future) ABT_API_PUBLIC
 Wait on a future. More...
 
int ABT_future_test (ABT_future future, ABT_bool *is_ready) ABT_API_PUBLIC
 Check if a future is ready. More...
 
int ABT_future_set (ABT_future future, void *value) ABT_API_PUBLIC
 Signal a future. More...
 
int ABT_future_reset (ABT_future future) ABT_API_PUBLIC
 Reset readiness of a future. More...
 
int ABT_barrier_create (uint32_t num_waiters, ABT_barrier *newbarrier) ABT_API_PUBLIC
 Create a new barrier. More...
 
int ABT_barrier_reinit (ABT_barrier barrier, uint32_t num_waiters) ABT_API_PUBLIC
 Reinitialize a barrier with a new number of waiters. More...
 
int ABT_barrier_free (ABT_barrier *barrier) ABT_API_PUBLIC
 Free a barrier. More...
 
int ABT_barrier_wait (ABT_barrier barrier) ABT_API_PUBLIC
 Wait on a barrier. More...
 
int ABT_barrier_get_num_waiters (ABT_barrier barrier, uint32_t *num_waiters) ABT_API_PUBLIC
 Get the number of waiters of a barrier. More...
 
int ABT_error_get_str (int err, char *str, size_t *len) ABT_API_PUBLIC
 Retrieve a string of an error code and its length. More...
 
double ABT_get_wtime (void) ABT_API_PUBLIC
 Get elapsed wall clock time. More...
 
int ABT_timer_create (ABT_timer *newtimer) ABT_API_PUBLIC
 Create a new timer. More...
 
int ABT_timer_dup (ABT_timer timer, ABT_timer *newtimer) ABT_API_PUBLIC
 Duplicate a timer. More...
 
int ABT_timer_free (ABT_timer *timer) ABT_API_PUBLIC
 Free a timer. More...
 
int ABT_timer_start (ABT_timer timer) ABT_API_PUBLIC
 Start a timer. More...
 
int ABT_timer_stop (ABT_timer timer) ABT_API_PUBLIC
 Stop a timer. More...
 
int ABT_timer_read (ABT_timer timer, double *secs) ABT_API_PUBLIC
 Read the elapsed time of the timer. More...
 
int ABT_timer_stop_and_read (ABT_timer timer, double *secs) ABT_API_PUBLIC
 Stop a timer and read an elapsed time of a timer. More...
 
int ABT_timer_stop_and_add (ABT_timer timer, double *secs) ABT_API_PUBLIC
 Stop a timer and add an elapsed time of a timer. More...
 
int ABT_timer_get_overhead (double *overhead) ABT_API_PUBLIC
 Obtain an overhead time of using ABT_timer. More...
 
int ABT_info_query_config (ABT_info_query_kind query_kind, void *val) ABT_API_PUBLIC
 Retrieve the configuration information. More...
 
int ABT_info_print_config (FILE *fp) ABT_API_PUBLIC
 Print the runtime information of Argobots. More...
 
int ABT_info_print_all_xstreams (FILE *fp) ABT_API_PUBLIC
 Print the information of all execution streams. More...
 
int ABT_info_print_xstream (FILE *fp, ABT_xstream xstream) ABT_API_PUBLIC
 Print the information of an execution stream. More...
 
int ABT_info_print_sched (FILE *fp, ABT_sched sched) ABT_API_PUBLIC
 Print the information of a scheduler. More...
 
int ABT_info_print_pool (FILE *fp, ABT_pool pool) ABT_API_PUBLIC
 Print the information of a pool. More...
 
int ABT_info_print_thread (FILE *fp, ABT_thread thread) ABT_API_PUBLIC
 Print the information of a work unit. More...
 
int ABT_info_print_thread_attr (FILE *fp, ABT_thread_attr attr) ABT_API_PUBLIC
 Print the information of a ULT attribute. More...
 
int ABT_info_print_task (FILE *fp, ABT_task task) ABT_API_PUBLIC
 Print the information of a work unit. More...
 
int ABT_info_print_thread_stack (FILE *fp, ABT_thread thread) ABT_API_PUBLIC
 Print stack of a work unit. More...
 
int ABT_info_print_thread_stacks_in_pool (FILE *fp, ABT_pool pool) ABT_API_PUBLIC
 Print stacks of all work units in a pool. More...
 
int ABT_info_trigger_print_all_thread_stacks (FILE *fp, double timeout, void(*cb_func)(ABT_bool, void *), void *arg) ABT_API_PUBLIC
 Print stacks of work units in pools associated with all the main schedulers. More...
 
int ABT_tool_register_thread_callback (ABT_tool_thread_callback_fn cb_func, uint64_t event_mask, void *user_arg) ABT_API_PUBLIC
 Register a callback function for work-unit events. More...
 
int ABT_tool_query_thread (ABT_tool_context context, uint64_t event, ABT_tool_query_kind query_kind, void *val) ABT_API_PUBLIC
 Query information associated with a work-unit event. More...
 

Variables

ABT_sched_config_var ABT_sched_config_var_end ABT_API_PUBLIC
 

Macro Definition Documentation

◆ ABT_API_PUBLIC

Definition at line 14 of file abt.h.

◆ ABT_BARRIER_NULL

#define ABT_BARRIER_NULL   ((ABT_barrier) (0x12))

Definition at line 1072 of file abt.h.

◆ ABT_CALC_VERSION

#define ABT_CALC_VERSION (   MAJOR,
  MINOR,
  REVISION,
  TYPE,
  PATCH 
)    (((MAJOR) * 10000000) + ((MINOR) * 100000) + ((REVISION) * 1000) + ((TYPE) * 100) + (PATCH))

Definition at line 75 of file abt.h.

◆ ABT_COND_NULL

#define ABT_COND_NULL   ((ABT_cond) (0x0e))

Definition at line 1068 of file abt.h.

◆ ABT_DEPRECATED

#define ABT_DEPRECATED   __attribute__((deprecated))

Definition at line 78 of file abt.h.

◆ ABT_ENABLE_VER_20_API_VAL

#define ABT_ENABLE_VER_20_API_VAL   0

Definition at line 80 of file abt.h.

◆ ABT_EVENTUAL_NULL

#define ABT_EVENTUAL_NULL   ((ABT_eventual) (0x10))

Definition at line 1070 of file abt.h.

◆ ABT_FALSE

#define ABT_FALSE   0

False constant for ABT_bool.

Definition at line 750 of file abt.h.

◆ ABT_FUTURE_NULL

#define ABT_FUTURE_NULL   ((ABT_future) (0x11))

Definition at line 1071 of file abt.h.

◆ ABT_KEY_NULL

#define ABT_KEY_NULL   ((ABT_key) (0x0b))

Definition at line 1065 of file abt.h.

◆ ABT_MUTEX_ATTR_NULL

#define ABT_MUTEX_ATTR_NULL   ((ABT_mutex_attr) (0x0d))

Definition at line 1067 of file abt.h.

◆ ABT_MUTEX_NULL

#define ABT_MUTEX_NULL   ((ABT_mutex) (0x0c))

Definition at line 1066 of file abt.h.

◆ ABT_NULL

#define ABT_NULL   0

Definition at line 1032 of file abt.h.

◆ ABT_POOL_CONFIG_NULL

#define ABT_POOL_CONFIG_NULL   ((ABT_pool_config) (0x06))

Definition at line 1060 of file abt.h.

◆ ABT_POOL_NULL

#define ABT_POOL_NULL   ((ABT_pool) (0x05))

Definition at line 1059 of file abt.h.

◆ ABT_RELEASE_TYPE_ALPHA

#define ABT_RELEASE_TYPE_ALPHA   0

Definition at line 70 of file abt.h.

◆ ABT_RELEASE_TYPE_BETA

#define ABT_RELEASE_TYPE_BETA   1

Definition at line 71 of file abt.h.

◆ ABT_RELEASE_TYPE_PATCH

#define ABT_RELEASE_TYPE_PATCH   3

Definition at line 73 of file abt.h.

◆ ABT_RELEASE_TYPE_RC

#define ABT_RELEASE_TYPE_RC   2

Definition at line 72 of file abt.h.

◆ ABT_RWLOCK_NULL

#define ABT_RWLOCK_NULL   ((ABT_rwlock) (0x0f))

Definition at line 1069 of file abt.h.

◆ ABT_SCHED_CONFIG_NULL

#define ABT_SCHED_CONFIG_NULL   ((ABT_sched_config) (0x04))

Definition at line 1058 of file abt.h.

◆ ABT_SCHED_NULL

#define ABT_SCHED_NULL   ((ABT_sched) (0x03))

Definition at line 1057 of file abt.h.

◆ ABT_self_get_task

#define ABT_self_get_task   ABT_self_get_thread

Definition at line 1880 of file abt.h.

◆ ABT_self_get_task_id

#define ABT_self_get_task_id   ABT_self_get_thread_id

Definition at line 1881 of file abt.h.

◆ ABT_task_get_specific

#define ABT_task_get_specific   ABT_thread_get_specific

Definition at line 1871 of file abt.h.

◆ ABT_task_is_unnamed

#define ABT_task_is_unnamed   ABT_thread_is_unnamed

Definition at line 1869 of file abt.h.

◆ ABT_TASK_NULL

#define ABT_TASK_NULL   ((ABT_task) (0x0a))

Definition at line 1064 of file abt.h.

◆ ABT_task_set_specific

#define ABT_task_set_specific   ABT_thread_set_specific

Definition at line 1870 of file abt.h.

◆ ABT_THREAD_ATTR_NULL

#define ABT_THREAD_ATTR_NULL   ((ABT_thread_attr) (0x09))

Definition at line 1063 of file abt.h.

◆ ABT_THREAD_NULL

#define ABT_THREAD_NULL   ((ABT_thread) (0x08))

Definition at line 1062 of file abt.h.

◆ ABT_TIMER_NULL

#define ABT_TIMER_NULL   ((ABT_timer) (0x13))

Definition at line 1073 of file abt.h.

◆ ABT_TOOL_CONTEXT_NULL

#define ABT_TOOL_CONTEXT_NULL   ((ABT_tool_context) (0x14))

Definition at line 1074 of file abt.h.

◆ ABT_TRUE

#define ABT_TRUE   1

True constant for ABT_bool.

Definition at line 748 of file abt.h.

◆ ABT_UNIT_NULL

#define ABT_UNIT_NULL   ((ABT_unit) (0x07))

Definition at line 1061 of file abt.h.

◆ ABT_XSTREAM_ANY_RANK

#define ABT_XSTREAM_ANY_RANK   -1

Unused macro.

Changes from Argobots 1.x to Argobots 2.0 (planned)
[Argobots 2.0] This constant is removed since no Argobots routine uses it.

Definition at line 759 of file abt.h.

◆ ABT_XSTREAM_BARRIER_NULL

#define ABT_XSTREAM_BARRIER_NULL   ((ABT_xstream_barrier)(0x02))

Definition at line 1056 of file abt.h.

◆ ABT_XSTREAM_NULL

#define ABT_XSTREAM_NULL   ((ABT_xstream) (0x01))

Definition at line 1055 of file abt.h.

Typedef Documentation

◆ ABT_bool

typedef int ABT_bool

Boolean type.

The value must be either ABT_TRUE or ABT_FALSE. It is guaranteed that ABT_FALSE is zero.

Definition at line 1001 of file abt.h.

◆ ABT_pool_free_fn

typedef int(* ABT_pool_free_fn) (ABT_pool)

Definition at line 1418 of file abt.h.

◆ ABT_pool_get_size_fn

typedef size_t(* ABT_pool_get_size_fn) (ABT_pool)

Definition at line 1412 of file abt.h.

◆ ABT_pool_init_fn

typedef int(* ABT_pool_init_fn) (ABT_pool, ABT_pool_config)

Definition at line 1411 of file abt.h.

◆ ABT_pool_pop_fn

typedef ABT_unit(* ABT_pool_pop_fn) (ABT_pool)

Definition at line 1414 of file abt.h.

◆ ABT_pool_pop_timedwait_fn

typedef ABT_unit(* ABT_pool_pop_timedwait_fn) (ABT_pool, double)

Definition at line 1416 of file abt.h.

◆ ABT_pool_pop_wait_fn

typedef ABT_unit(* ABT_pool_pop_wait_fn) (ABT_pool, double)

Definition at line 1415 of file abt.h.

◆ ABT_pool_print_all_fn

typedef int(* ABT_pool_print_all_fn) (ABT_pool, void *arg, void(*)(void *, ABT_unit))

Definition at line 1419 of file abt.h.

◆ ABT_pool_push_fn

typedef void(* ABT_pool_push_fn) (ABT_pool, ABT_unit)

Definition at line 1413 of file abt.h.

◆ ABT_pool_remove_fn

typedef int(* ABT_pool_remove_fn) (ABT_pool, ABT_unit)

Definition at line 1417 of file abt.h.

◆ ABT_sched_free_fn

typedef int(* ABT_sched_free_fn) (ABT_sched)

Definition at line 1294 of file abt.h.

◆ ABT_sched_get_migr_pool_fn

typedef ABT_pool(* ABT_sched_get_migr_pool_fn) (ABT_sched)

Definition at line 1296 of file abt.h.

◆ ABT_sched_init_fn

typedef int(* ABT_sched_init_fn) (ABT_sched, ABT_sched_config)

Definition at line 1292 of file abt.h.

◆ ABT_sched_run_fn

typedef void(* ABT_sched_run_fn) (ABT_sched)

Definition at line 1293 of file abt.h.

◆ ABT_tool_task_callback_fn

typedef void(* ABT_tool_task_callback_fn) (ABT_task, ABT_xstream, uint64_t event, ABT_tool_context context, void *user_arg)

Definition at line 1685 of file abt.h.

◆ ABT_tool_thread_callback_fn

typedef void(* ABT_tool_thread_callback_fn) (ABT_thread, ABT_xstream, uint64_t event, ABT_tool_context context, void *user_arg)

Definition at line 1683 of file abt.h.

◆ ABT_unit_create_from_task_fn

typedef ABT_unit(* ABT_unit_create_from_task_fn) (ABT_task)

Definition at line 1409 of file abt.h.

◆ ABT_unit_create_from_thread_fn

typedef ABT_unit(* ABT_unit_create_from_thread_fn) (ABT_thread)

Definition at line 1408 of file abt.h.

◆ ABT_unit_free_fn

typedef void(* ABT_unit_free_fn) (ABT_unit *)

Definition at line 1410 of file abt.h.

◆ ABT_unit_get_task_fn

typedef ABT_task(* ABT_unit_get_task_fn) (ABT_unit)

Definition at line 1406 of file abt.h.

◆ ABT_unit_get_thread_fn

typedef ABT_thread(* ABT_unit_get_thread_fn) (ABT_unit)

Definition at line 1405 of file abt.h.

◆ ABT_unit_get_type_fn

typedef ABT_unit_type(* ABT_unit_get_type_fn) (ABT_unit)

Definition at line 1404 of file abt.h.

◆ ABT_unit_is_in_pool_fn

typedef ABT_bool(* ABT_unit_is_in_pool_fn) (ABT_unit)

Definition at line 1407 of file abt.h.

Enumeration Type Documentation

◆ ABT_sched_state

Unused enum.

Changes from Argobots 1.x to Argobots 2.0 (planned)
[Argobots 2.0] This enum is removed since no Argobots routine uses this.
Enumerator
ABT_SCHED_STATE_READY 
ABT_SCHED_STATE_RUNNING 
ABT_SCHED_STATE_STOPPED 
ABT_SCHED_STATE_TERMINATED 

Definition at line 450 of file abt.h.

Function Documentation

◆ ABT_pool_print_all()

int ABT_pool_print_all ( ABT_pool  pool,
void *  arg,
void(*)(void *arg, ABT_unit print_fn 
)

Variable Documentation

◆ ABT_API_PUBLIC

Definition at line 1266 of file abt.h.