This group is for work units.
More...
This group is for work units.
◆ ABT_unit
| typedef struct ABT_unit_opaque* ABT_unit |
Work unit handle type for scheduling.
ABT_unit is a work unit handle encapsulated by its associated pool, so the value of ABT_unit is different from its associated ABT_thread or ABT_task.
A NULL handle of this type is ABT_UNIT_NULL.
Definition at line 911 of file abt.h.
◆ ABT_unit_id
Work unit ID type.
Definition at line 921 of file abt.h.
◆ ABT_unit_type
Work unit type.
Definition at line 916 of file abt.h.
◆ ABT_unit_type
Type of a work unit for scheduling.
| Enumerator |
|---|
| ABT_UNIT_TYPE_THREAD | A ULT.
|
| ABT_UNIT_TYPE_TASK | A tasklet.
[Argobots 2.0] This type is an alias of ABT_UNIT_TYPE_THREAD.
|
| ABT_UNIT_TYPE_XSTREAM | Deprecated since no Argobots function uses it.
|
| ABT_UNIT_TYPE_EXT | An external thread.
|
Definition at line 582 of file abt.h.
◆ ABT_unit_get_thread()
Get a thread handle of the target work unit.
ABT_unit_get_thread() returns the ABT_thread handle associated with the work unit unit through thread.
- Execution context
- This routine can be called in any execution context. Argobots must be initialized. This routine does not switch the context of the calling ULT unless any user-defined function that is involved in this routine switch the context of the calling ULT.
- Errors
ABT_SUCCESS is returned if this routine succeeds.
ABT_ERR_INV_UNIT is returned if unit is ABT_UNIT_NULL.
- Undefined behavior
- If Argobots is not initialized, the results are undefined.
If thread is NULL, the results are undefined.
- Parameters
-
| [in] | unit | work unit handle |
| [out] | thread | work unit handle |
- Returns
- Error code
Definition at line 80 of file unit.c.
◆ ABT_unit_set_associated_pool()
No operation.
ABT_unit_set_associated_pool() does nothing. This routine was originally provided for setting the associated pool for a work unit, but Argobots 1.1 manages this mapping when ABT_pool_push() or ABT_xstream_run_unit() is called. This routine is for the backward compatibility.
- Changes from Argobots 1.0 to Argobots 1.1
- [Argobots 1.0] The user must explicitly call this routine to change the associated pool of
ABT_unit.
[Argobots 1.1] The Argobots runtime automatically changes the associated pool of ABT_unit if needed. This routine is therefore unnecessary.
- Rationale
- The unit-pool association management is hard for the user who does not know the internal implementation of Argobots. This change not only eases programming with Argobots but also addresses some issues without breaking the backward compatibility. See https://github.com/pmodels/argobots/issues/317 for details.
- Execution context
- This routine can be called in any execution context. Argobots must be initialized. This routine does not switch the context of the calling ULT unless any user-defined function that is involved in this routine switch the context of the calling ULT.
- Errors
ABT_SUCCESS is returned if this routine succeeds.
ABT_ERR_INV_UNIT is returned if unit is ABT_UNIT_NULL.
ABT_ERR_INV_POOL is returned if pool is ABT_POOL_NULL.
- Undefined behavior
- If Argobots is not initialized, the results are undefined.
- Parameters
-
| [in] | unit | work unit handle |
| [in] | pool | pool handle |
- Returns
- Error code
Definition at line 48 of file unit.c.