Update LZ4 to 1.8.3
[charm.git] / src / arch / ofi / conv-common.h
blobcd99808796efb0d85d588d2e0c9d2a70b54901a1
1 #define CMK_USE_LRTS 1
3 /* CMK_HAS_PARTITION requires the 'root' field to be present in CMK_MSG_HEADER_UNIQUE */
4 #define CMK_HAS_PARTITION 1
6 /* if set to 1 it uses the default scheduler (Csd) defined in convcore.C,
7 otherwise machine.C has to provide its own scheduler. Should be 1 in almost
8 every machine. */
9 #define CMK_CMIDELIVERS_USE_COMMON_CODE 1
11 /* specifies if the functions CmiPrintf, CmiError and CmiScanf are implemented
12 in machine.C (1), or if the standard definitions in convcore.C should be used
13 (0). */
14 #define CMK_CMIPRINTF_IS_A_BUILTIN 0
16 /* define the converse headers. For most of the purposes, only the UNIQUE header
17 needs to be modified, the others will follow. BLUEGENE may need to be
18 adapted.
20 In particular, the fields "hdl", "xhdl" and "info" must be always present in
21 the extended header, since they are directly accessed in converse.h */
22 /* - root is needed by CMK_HAS_PARTITION
23 * - startid, redID
24 * - rank is needed by broadcast
26 #define CMK_MSG_HEADER_UNIQUE CmiUInt4 size; CmiUInt2 rank,hdl,xhdl,info,type,redID; CmiInt4 root;
28 #define CMK_MSG_HEADER_BASIC CMK_MSG_HEADER_EXT
29 #define CMK_MSG_HEADER_EXT { CMK_MSG_HEADER_UNIQUE }
30 #define CMK_MSG_HEADER_BIGSIM_ {CMK_MSG_HEADER_UNIQUE CMK_BIGSIM_FIELDS}
32 /* defines different parameters of groups of processors. (next 4 definitions)
33 used in converse.h (the first) and convcore.C (the others). a value of 1
34 means that convcore.C defines the methods, otherwise it is up to machine.C to
35 define them */
37 /* basic structure of a CmiGroup (defined in converse.h) */
38 #define CMK_MULTICAST_GROUP_TYPE struct { unsigned pe, id; }
39 /* definitions of establishment and lookup of groups */
40 #define CMK_MULTICAST_DEF_USE_COMMON_CODE 1
41 /* definitions of List sending functions */
42 #define CMK_MULTICAST_LIST_USE_COMMON_CODE 1
43 /* definitions of Multicast sending functions */
44 #define CMK_MULTICAST_GROUP_USE_COMMON_CODE 1
46 /* define the entity of the spanning tree used (it is 4 in all configurations)
47 definese also if the code in converse.h will be used (1) or not and
48 implemented in machine.C (0). At the momement all configurations use the
49 common code. */
50 #define CMK_SPANTREE_MAXSPAN 4
51 #define CMK_SPANTREE_USE_COMMON_CODE 1
53 /* Specifies if the routines which send multiple messages (vectors of messages)
54 to a processors are implemented in convcore.C (1) or in machine.C (1). */
55 #define CMK_VECTOR_SEND_USES_COMMON_CODE 1
57 /* Defines if there is a "charmrun" program running on the system, which
58 interacts with possible connecting clients (0), or if there is no such
59 program, and processor 0 does the job (1). Currently only netlrts- and
60 verbs- versions have this set to 0, all the others have it to 1. */
61 #define NODE_0_IS_CONVHOST 1
63 /* Enables the persistent communication protocol if set to 1. */
64 #define CMK_PERSISTENT_COMM 0
66 /* Enables support for immediate messages if set to 1. */
67 #define CMK_IMMEDIATE_MSG 1
69 /* This is needed to be 1 if the machine layer is used in some architectures
70 where there is no coprocessor, and to pull messages out of the network there
71 is the need of the processor intervention (like in BlueGene/L). 0 otherwise.
73 #define CMK_MACHINE_PROGRESS_DEFINED 1
75 /* This is required to define LrtsLock/LrtsUnlock */
76 #define CMK_USE_COMMON_LOCK 1
78 #define CMK_ONESIDED_IMPL 1
80 #define CMK_CMA_MIN 16384
82 #define CMK_CMA_MAX 4194304
84 #define CMK_NOCOPY_DIRECT_BYTES 16
86 #define CMK_REG_REQUIRED 1
88 #define CMK_CONVERSE_MPI 0