Skip to content

Terms and Conventions

Sangmin Seo edited this page Feb 8, 2017 · 3 revisions

This page describes Argobots terms and conventions used throughout this document.

Glossary

  • Condition Variable: a condition on which ULTs are waiting until it is signaled.
  • Execution Stream (ES): a sequential instruction stream that contains one or more work units.
  • Future: a mechanism for passing a value between work units, allowing a work unit to wait for a value that is set asynchronously.
  • Handle: an opaque reference to an Argobots object.
  • Mutex: a synchronization method to support mutual exclusion between work units.
  • Object: abstract representation of resources that are manipulated by the Argobots API. For example, there are ES objects, ULT objects, tasklet objects, etc.
  • Pool: a data structure that contains scheduling units.
  • Scheduler: an object that controls execution order of scheduling units in the ES. A scheduler is associated with an ES.
  • Scheduling Unit (SU): an object handled by a scheduler with a scheduling policy. It includes work units, such as ULTs or tasklets, and schedulers.
  • Tasklet: an indivisible unit of work, with dependence only on its input data, and typically providing output data upon completion. Tasklet is associated with a function but it does not have its own stack. It is not allowed to make blocking calls and does not explicitly yield control.
  • User-level Thread (ULT): an independent execution unit in user space. It is associated with a function and its own stack. ULTs provide standard thread semantics at a very low context-switching cost. ULTs can make blocking calls and explicitly yield control.
  • Work Unit (WU): a lightweight execution unit, such as ULT or tasklet.

Conventions

Naming Convention

In Argobots, all names including data types, constants, and APIs begin with ABT_ prefix. Following name after ABT_ prefix for data types and APIs is all lower-case, but constants use all capital letters.

API Convention

int ABT_xxx()

All public APIs begin with ABT_ prefix and return an error code of int type. xxx is lower-case. The arguments of Argobots APIs in this document are marked as [in], [out], [in,out] to indicate how they are used during execution of the routine. Their meanings are:

  • [in]: the argument is used as the input and it is not updated during execution of the routine.
  • [out]: the argument is used as the output and it is updated in the routine.
  • [in,out]: the argument is used as both the input and the output.