DASH  0.3.0
Types used in the DART interface

Definitions of types used in the DART interface. More...

Collaboration diagram for Types used in the DART interface:

Classes

struct  dart_global_unit
 Data type for storing a global unit ID. More...
 
struct  dart_local_unit
 Data type for storing a unit ID relative to a team. More...
 
struct  dart_hwinfo_t
 Hardware locality information for a single locality domain. More...
 
struct  dart_domain_locality_s
 A domain is a group of processing entities such as cores in a specific NUMA domain or a Intel MIC entity. More...
 
struct  dart_unit_locality_t
 Locality and topology information of a single unit. More...
 
struct  dart_config_t
 

Macros

#define DART_OP_MINMAX_MIN   0
 Position of the minimum element in MINMAX tuple. More...
 
#define DART_OP_MINMAX_MAX   1
 Position of the maximum element in MINMAX tuple. More...
 
#define DART_UNDEFINED_UNIT_ID   ((dart_unit_t)(-1))
 Undefined unit ID. More...
 
#define DART_TEAM_UNIT_ID(__u)   (dart_create_team_unit(__u))
 Create a dart_team_unit_t from a dart_unit_t. More...
 
#define DART_GLOBAL_UNIT_ID(__u)   (dart_create_global_unit(__u))
 Create a dart_global_unit_t from a dart_unit_t. More...
 
#define DART_UNDEFINED_TEAM_UNIT_ID   DART_TEAM_UNIT_ID(DART_UNDEFINED_UNIT_ID)
 A dart_team_unit_t representing an undefined team-relative unit. More...
 
#define DART_UNDEFINED_GLOBAL_UNIT_ID   DART_GLOBAL_UNIT_ID(DART_UNDEFINED_UNIT_ID)
 A dart_global_unit_t representing an undefined global unit. More...
 
#define DART_UNDEFINED_TEAM_ID   ((dart_team_t)(-1))
 Undefined team ID. More...
 

Typedefs

typedef intptr_t dart_datatype_t
 Raw data types supported by the DART interface. More...
 
typedef int32_t dart_unit_t
 Data type for storing a unit ID. More...
 
typedef struct dart_global_unit dart_global_unit_t
 Data type for storing a global unit ID. More...
 
typedef struct dart_local_unit dart_team_unit_t
 Data type for storing a unit ID relative to a team. More...
 
typedef int16_t dart_team_t
 Data type for storing a team ID. More...
 

Enumerations

enum  dart_ret_t {
  DART_OK = 0, DART_PENDING = 1, DART_ERR_INVAL = 2, DART_ERR_NOTFOUND = 3,
  DART_ERR_NOTINIT = 4, DART_ERR_NOMEM = 5, DART_ERR_OTHER = 999
}
 Return values of functions in the DART interface. More...
 
enum  { DART_EXIT_SUCCESS = EXIT_SUCCESS, DART_EXIT_ABORT = EXIT_FAILURE, DART_EXIT_ASSERT = -6 }
 Return values of DART applications. More...
 
enum  {
  DART_OP_UNDEFINED = 0, DART_OP_MIN, DART_OP_MAX, DART_OP_MINMAX,
  DART_OP_SUM, DART_OP_PROD, DART_OP_BAND, DART_OP_LAND,
  DART_OP_BOR, DART_OP_LOR, DART_OP_BXOR, DART_OP_LXOR,
  DART_OP_REPLACE, DART_OP_NO_OP, DART_OP_LAST
}
 Operations to be used for certain RMA and collective operations. More...
 
enum  dart_locality_scope_t {
  DART_LOCALITY_SCOPE_UNDEFINED = -1, DART_LOCALITY_SCOPE_GLOBAL = 0, DART_LOCALITY_SCOPE_GROUP = 1, DART_LOCALITY_SCOPE_NETWORK = 50,
  DART_LOCALITY_SCOPE_NODE = 100, DART_LOCALITY_SCOPE_MODULE = 200, DART_LOCALITY_SCOPE_NUMA = 300, DART_LOCALITY_SCOPE_UNIT = 400,
  DART_LOCALITY_SCOPE_PACKAGE = 500, DART_LOCALITY_SCOPE_UNCORE = 510, DART_LOCALITY_SCOPE_CACHE = 530, DART_LOCALITY_SCOPE_CORE = 550,
  DART_LOCALITY_SCOPE_CPU = 600
}
 Scopes of locality domains. More...
 

Functions

static dart_team_unit_t dart_create_team_unit (dart_unit_t unit)
 Create a dart_team_unit_t from a dart_unit_t. More...
 
static dart_global_unit_t dart_create_global_unit (dart_unit_t unit)
 Create a dart_global_unit_t from a dart_unit_t. More...
 
dart_ret_t dart_type_create_strided (dart_datatype_t basetype, size_t stride, size_t blocklen, dart_datatype_t *newtype)
 Create a strided data type using blocks of size blocklen and a stride of stride. More...
 
dart_ret_t dart_type_create_indexed (dart_datatype_t basetype, size_t count, const size_t blocklen[], const size_t offset[], dart_datatype_t *newtype)
 Create an indexed data type using count blocks of size blocklen[i] with offsets offset[i] for each 0 <= i < count. More...
 
dart_ret_t dart_type_create_custom (size_t num_bytes, dart_datatype_t *newtype)
 Create a custom data type of size num_bytes bytes. More...
 
dart_ret_t dart_type_destroy (dart_datatype_t *dart_type)
 Destroy a data type that was previously created using dart_type_create_strided or dart_type_create_indexed. More...
 

Detailed Description

Definitions of types used in the DART interface.

Macro Definition Documentation

◆ DART_GLOBAL_UNIT_ID

#define DART_GLOBAL_UNIT_ID (   __u)    (dart_create_global_unit(__u))

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a dart_global_unit_t from a dart_unit_t.

This is a wrapper for dart_create_global_unit.

Definition at line 228 of file dart_types.h.

◆ DART_OP_MINMAX_MAX

#define DART_OP_MINMAX_MAX   1

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Position of the maximum element in MINMAX tuple.

Definition at line 114 of file dart_types.h.

◆ DART_OP_MINMAX_MIN

#define DART_OP_MINMAX_MIN   0

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Position of the minimum element in MINMAX tuple.

Definition at line 108 of file dart_types.h.

◆ DART_TEAM_UNIT_ID

#define DART_TEAM_UNIT_ID (   __u)    (dart_create_team_unit(__u))

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a dart_team_unit_t from a dart_unit_t.

This is a wrapper for dart_create_team_unit.

Definition at line 206 of file dart_types.h.

◆ DART_UNDEFINED_GLOBAL_UNIT_ID

#define DART_UNDEFINED_GLOBAL_UNIT_ID   DART_GLOBAL_UNIT_ID(DART_UNDEFINED_UNIT_ID)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

A dart_global_unit_t representing an undefined global unit.

See also
DART_UNDEFINED_UNIT_ID

Definition at line 246 of file dart_types.h.

◆ DART_UNDEFINED_TEAM_ID

#define DART_UNDEFINED_TEAM_ID   ((dart_team_t)(-1))

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Undefined team ID.

Definition at line 258 of file dart_types.h.

◆ DART_UNDEFINED_TEAM_UNIT_ID

#define DART_UNDEFINED_TEAM_UNIT_ID   DART_TEAM_UNIT_ID(DART_UNDEFINED_UNIT_ID)

◆ DART_UNDEFINED_UNIT_ID

#define DART_UNDEFINED_UNIT_ID   ((dart_unit_t)(-1))

Typedef Documentation

◆ dart_datatype_t

typedef intptr_t dart_datatype_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Raw data types supported by the DART interface.

Definition at line 121 of file dart_types.h.

◆ dart_global_unit_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Data type for storing a global unit ID.

◆ dart_team_t

typedef int16_t dart_team_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Data type for storing a team ID.

Definition at line 252 of file dart_types.h.

◆ dart_team_unit_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Data type for storing a unit ID relative to a team.

◆ dart_unit_t

typedef int32_t dart_unit_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Data type for storing a unit ID.

Definition at line 154 of file dart_types.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Return values of DART applications.

Enumerator
DART_EXIT_SUCCESS 

Signal success.

DART_EXIT_ABORT 

Signal generic abort.

DART_EXIT_ASSERT 

Signal abort after failed assert.

Definition at line 54 of file dart_types.h.

54  {
56  DART_EXIT_SUCCESS = EXIT_SUCCESS,
58  DART_EXIT_ABORT = EXIT_FAILURE,
60  DART_EXIT_ASSERT = -6
61 };
Signal abort after failed assert.
Definition: dart_types.h:60
Signal success.
Definition: dart_types.h:56
Signal generic abort.
Definition: dart_types.h:58

◆ anonymous enum

anonymous enum

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Operations to be used for certain RMA and collective operations.

Enumerator
DART_OP_UNDEFINED 

Undefined, do not use.

DART_OP_MIN 

Minimum.

DART_OP_MAX 

Maximum.

DART_OP_MINMAX 

Minimum and Maximum.

DART_OP_SUM 

Summation.

DART_OP_PROD 

Product.

DART_OP_BAND 

Binary AND.

DART_OP_LAND 

Logical AND.

DART_OP_BOR 

Binary OR.

DART_OP_LOR 

Logical OR.

DART_OP_BXOR 

Binary XOR.

DART_OP_LXOR 

Logical XOR.

DART_OP_REPLACE 

Replace Value.

DART_OP_NO_OP 

No operation.

DART_OP_LAST 

Number of operations defined, not an actual operation!

Definition at line 68 of file dart_types.h.

69 {
100 };
Logical OR.
Definition: dart_types.h:89
Logical AND.
Definition: dart_types.h:85
Binary XOR.
Definition: dart_types.h:91
No operation.
Definition: dart_types.h:97
Maximum.
Definition: dart_types.h:75
Product.
Definition: dart_types.h:81
Logical XOR.
Definition: dart_types.h:93
Minimum and Maximum.
Definition: dart_types.h:77
Binary OR.
Definition: dart_types.h:87
Number of operations defined, not an actual operation!
Definition: dart_types.h:99
Binary AND.
Definition: dart_types.h:83
Undefined, do not use.
Definition: dart_types.h:71
Replace Value.
Definition: dart_types.h:95
Summation.
Definition: dart_types.h:79
Minimum.
Definition: dart_types.h:73

◆ dart_locality_scope_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Scopes of locality domains.

Enum values are ordered by scope level in the locality hierarchy. Consequently, the comparison (scope_a > scope_b) is valid and evaluates to true if scope_a is a parent scope of scope_b.

Enumerator
DART_LOCALITY_SCOPE_GLOBAL 

Global locality scope, components may be heterogenous.

DART_LOCALITY_SCOPE_GROUP 

Group of domains in specific locality scope, used as parent scope of domains in a user-defined group at any locality level.

DART_LOCALITY_SCOPE_NETWORK 

Interconnect topology scope, components may be heterogenous.

DART_LOCALITY_SCOPE_NODE 

Node-level locality scope, components may be heterogenous.

DART_LOCALITY_SCOPE_MODULE 

Locality in a group of hetereogenous components in different NUMA domains.

DART_LOCALITY_SCOPE_NUMA 

Locality of homogenous components in different NUMA domains.

DART_LOCALITY_SCOPE_UNIT 

Locality of homogenous components in the same NUMA domain at process-level, i.e.

of a unit-addressable, homogenous entity. A single unit corresponds to a DART (e.g. MPI) process and can occupy multiple homogenous cores, e.g. for multithreading.

DART_LOCALITY_SCOPE_PACKAGE 

Locality at level of physical processor package.

Cannot be referenced by DART directly.

DART_LOCALITY_SCOPE_UNCORE 

Locality at processor uncore (system agent) level.

Intel only. Cannot be referenced by DART directly.

DART_LOCALITY_SCOPE_CACHE 

Locality at level of physical CPU cache.

Cannot be referenced by DART directly.

DART_LOCALITY_SCOPE_CORE 

Locality at physical processing core level.

Cannot be referenced by DART directly.

DART_LOCALITY_SCOPE_CPU 

Locality at logical CPU level (SMT thread).

Cannot be referenced by DART directly.

Definition at line 290 of file dart_types.h.

291 {
292  DART_LOCALITY_SCOPE_UNDEFINED = -1,
327 }
Interconnect topology scope, components may be heterogenous.
Definition: dart_types.h:299
Locality of homogenous components in the same NUMA domain at process-level, i.e.
Definition: dart_types.h:311
Node-level locality scope, components may be heterogenous.
Definition: dart_types.h:301
Group of domains in specific locality scope, used as parent scope of domains in a user-defined group ...
Definition: dart_types.h:297
Global locality scope, components may be heterogenous.
Definition: dart_types.h:294
Locality at physical processing core level.
Definition: dart_types.h:323
Locality of homogenous components in different NUMA domains.
Definition: dart_types.h:306
Locality at processor uncore (system agent) level.
Definition: dart_types.h:317
Locality at level of physical CPU cache.
Definition: dart_types.h:320
Locality in a group of hetereogenous components in different NUMA domains.
Definition: dart_types.h:304
Locality at level of physical processor package.
Definition: dart_types.h:314
Locality at logical CPU level (SMT thread).
Definition: dart_types.h:326

◆ dart_ret_t

enum dart_ret_t

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Return values of functions in the DART interface.

Enumerator
DART_OK 

Signals success.

DART_PENDING 

An operation is still pending.

DART_ERR_INVAL 

Invalid operation or parameters.

DART_ERR_NOTFOUND 

Missing data encountered.

DART_ERR_NOTINIT 

DART has not been initialized.

DART_ERR_NOMEM 

DART has not been initialized.

DART_ERR_OTHER 

Unspecified error.

Definition at line 30 of file dart_types.h.

31 {
33  DART_OK = 0,
35  DART_PENDING = 1,
37  DART_ERR_INVAL = 2,
41  DART_ERR_NOTINIT = 4,
43  DART_ERR_NOMEM = 5,
45  DART_ERR_OTHER = 999
46 } dart_ret_t;
Unspecified error.
Definition: dart_types.h:45
Signals success.
Definition: dart_types.h:33
Invalid operation or parameters.
Definition: dart_types.h:37
DART has not been initialized.
Definition: dart_types.h:43
An operation is still pending.
Definition: dart_types.h:35
dart_ret_t
Return values of functions in the DART interface.
Definition: dart_types.h:30
Missing data encountered.
Definition: dart_types.h:39
DART has not been initialized.
Definition: dart_types.h:41

Function Documentation

◆ dart_create_global_unit()

static dart_global_unit_t dart_create_global_unit ( dart_unit_t  unit)
inlinestatic

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a dart_global_unit_t from a dart_unit_t.

Definition at line 215 of file dart_types.h.

216 {
217  dart_global_unit_t tmp = {unit};
218  return tmp;
219 }
Data type for storing a global unit ID.
Definition: dart_types.h:166

◆ dart_create_team_unit()

static dart_team_unit_t dart_create_team_unit ( dart_unit_t  unit)
inlinestatic

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a dart_team_unit_t from a dart_unit_t.

Definition at line 193 of file dart_types.h.

194 {
195  dart_team_unit_t tmp = {unit};
196  return tmp;
197 }
Data type for storing a unit ID relative to a team.
Definition: dart_types.h:180

◆ dart_type_create_custom()

dart_ret_t dart_type_create_custom ( size_t  num_bytes,
dart_datatype_t newtype 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a custom data type of size num_bytes bytes.

Parameters
num_bytesThe size of the custom type in bytes.
[out]newtypeThe newly created data type.
Returns
DART_OK on success, any other of dart_ret_t otherwise.

◆ dart_type_create_indexed()

dart_ret_t dart_type_create_indexed ( dart_datatype_t  basetype,
size_t  count,
const size_t  blocklen[],
const size_t  offset[],
dart_datatype_t newtype 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create an indexed data type using count blocks of size blocklen[i] with offsets offset[i] for each 0 <= i < count.

The number of elements copied using the resulting datatype has to be a multiple of Sum(blocklen[0:i]).

Parameters
basetypeThe type of elements in the blocks.
countThe number of blocks.
blocklenThe number of elements of type basetype in block[i].
offsetThe offset of block[i].
[out]newtypeThe newly created data type.
Returns
DART_OK on success, any other of dart_ret_t otherwise.

◆ dart_type_create_strided()

dart_ret_t dart_type_create_strided ( dart_datatype_t  basetype,
size_t  stride,
size_t  blocklen,
dart_datatype_t newtype 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Create a strided data type using blocks of size blocklen and a stride of stride.

The number of elements copied using the resulting datatype has to be a multiple of blocklen.

Parameters
basetypeThe type of elements in the blocks.
strideThe stride between blocks.
blocklenThe number of elements of type basetype in each block.
[out]newtypeThe newly created data type.
Returns
DART_OK on success, any other of dart_ret_t otherwise.

◆ dart_type_destroy()

dart_ret_t dart_type_destroy ( dart_datatype_t dart_type)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_types.h>

Destroy a data type that was previously created using dart_type_create_strided or dart_type_create_indexed.

Data types can be destroyed before pending operations using that type have completed. However, after destruction a type may not be used to start new operations.

Parameters
dart_typeThe type to be destroyed.
Returns
DART_OK on success, any other of dart_ret_t otherwise.