| 64 | | |
| 65 | | * Type: `Bundle`, which is a union type of all system types and user-defined types of a given program |
| 66 | | |
| 67 | | * size of bundle |
| 68 | | |
| 69 | | `fun[lib="bundle", pure] $bundle_size(b: Bundle): Integer` |
| 70 | | |
| 71 | | * pack data into a bundle |
| 72 | | |
| 73 | | `fun[lib="bundle"] $bundle_pack(ptr: Pointer, size: Integer): Bundle` |
| 74 | | |
| 75 | | * unpack a bundle |
| 76 | | |
| 77 | | `fun[lib="bundle"] $bundle_unpack(bundle: Bundle, ptr: Pointer)` |
| 78 | | |
| 79 | | * unpack a bundle and apply some operation to the data |
| 80 | | |
| 81 | | `fun[lib="bundle"] $bundle_unpack_apply(data: Bundle, buf: Pointer, size: Integer, op: Operation)` |
| | 64 | * Types |
| | 65 | * `Bundle`: a union type of all system types and user-defined types of a given program |
| | 66 | * `fun[lib="bundle", pure] $bundle_size(b: Bundle): Integer` |
| | 67 | * returns the size of the given bundle |
| | 68 | * `fun[lib="bundle"] $bundle_pack(ptr: Pointer, size: Integer): Bundle` |
| | 69 | * packs data into a bundle |
| | 70 | * `fun[lib="bundle"] $bundle_unpack(bundle: Bundle, ptr: Pointer)` |
| | 71 | * unpack a bundle |
| | 72 | * `fun[lib="bundle"] $bundle_unpack_apply(data: Bundle, buf: Pointer, size: Integer, op: Operation)` |
| | 73 | * unpack a bundle and apply some operation to the data |
| 86 | | * global barrier creation |
| 87 | | |
| 88 | | `fun[lib="concurrency"] $gbarrier_create(scope: Scope, size: Integer): GBarrier` |
| 89 | | |
| 90 | | * global barrier destroy |
| 91 | | |
| 92 | | `fun[lib="concurreny"] $gbarrier_destroy(barrier: Gbarrier)` |
| 93 | | |
| 94 | | * local barrier creation |
| 95 | | |
| 96 | | `fun[lib="concurrency"] $barrier_create(scope: Scope, gbarrier: Gbarrier, place: Integer): Barrier` |
| 97 | | |
| 98 | | * local barrier destroy |
| | 78 | * `fun[lib="concurrency"] $gbarrier_create(scope: Scope, size: Integer): GBarrier` |
| | 79 | * global barrier creation |
| | 80 | * `fun[lib="concurreny"] $gbarrier_destroy(barrier: Gbarrier)` |
| | 81 | * global barrier destroy |
| | 82 | * `fun[lib="concurrency"] $barrier_create(scope: Scope, gbarrier: Gbarrier, place: Integer): Barrier` |
| | 83 | * local barrier creation |
| | 84 | * `fun[lib="concurrency"] $barrier_destroy(barrier: Barrier)` |
| | 85 | * local barrier destroy |
| | 86 | * `fun $barrier_call(barrier: Barrier)` |
| | 87 | * barrier call |
| 107 | | * Type: `Collect_record`, `GCollect_checker`, and `Collect_checker` |
| 108 | | |
| 109 | | * global collective checker creation |
| 110 | | |
| 111 | | `fun[lib="concurrency"] $gcollect_checker_create(scope: Scope): Gcollect_checker` |
| 112 | | |
| 113 | | * global collective checker destroy |
| 114 | | |
| 115 | | `fun[lib="concurrency"] $gcollect_checker_destroy(gchecker: Gcollect_checker)` |
| 116 | | |
| 117 | | * collective checker creation |
| 118 | | |
| 119 | | `fun[lib="concurrency"] $collect_checker_create(scope: Scope, gchecker: Gcollect_checker)` |
| 120 | | |
| 121 | | * collective checker destroy |
| 122 | | |
| 123 | | `fun[lib="concurrency"] $collect_checker_destroy(checker: Collect_checker)` |
| 124 | | |
| 125 | | * collective records checking |
| 126 | | |
| 127 | | `fun[lib="concurrency"] $collect_check(checker: Collect_checker, place: Integer, nprocs: Integer, entries: Bundle)` |
| | 90 | * Types |
| | 91 | * `Collect_record` |
| | 92 | * `GCollect_checker` |
| | 93 | * `Collect_checker` |
| | 94 | * `fun[lib="concurrency"] $gcollect_checker_create(scope: Scope): Gcollect_checker` |
| | 95 | * global collective checker creation |
| | 96 | * `fun[lib="concurrency"] $gcollect_checker_destroy(gchecker: Gcollect_checker)` |
| | 97 | * global collective checker destroy |
| | 98 | * `fun[lib="concurrency"] $collect_checker_create(scope: Scope, gchecker: Gcollect_checker)` |
| | 99 | * collective checker creation |
| | 100 | * `fun[lib="concurrency"] $collect_checker_destroy(checker: Collect_checker)` |
| | 101 | * collective checker destroy |
| | 102 | * `fun[lib="concurrency"] $collect_check(checker: Collect_checker, place: Integer, nprocs: Integer, entries: Bundle)` |
| | 103 | * collective records checking |
| 137 | | * pack a message: `fun[lib="comm"] $message_pack(src: Integer, dst: Integer, tag: Integer, dt: Pointer, sz: Integer): Message` |
| 138 | | * unpack a message: `fun[lib="comm"] $message_unpack(msg: Message, buf: Pointer, sz: Integer)` |
| 139 | | * source of a message: `fun[lib="comm", pure] $message_source(msg: Message): Integer` |
| 140 | | * tag of a message: `fun[lib="comm", pure] $message_tag(msg: Message): Integer` |
| 141 | | * destination of a message: `fun[lib="comm", pure] $message_dest(msg: Message): Integer` |
| 142 | | * size of a message: `fun[lib="comm", pure] $message_size(msg: Message): Integer` |
| 143 | | |
| | 112 | * `fun[lib="comm"] $message_pack(src: Integer, dst: Integer, tag: Integer, dt: Pointer, sz: Integer): Message` |
| | 113 | * pack a message |
| | 114 | * `fun[lib="comm"] $message_unpack(msg: Message, buf: Pointer, sz: Integer)` |
| | 115 | * unpack a message |
| | 116 | * `fun[lib="comm", pure] $message_source(msg: Message): Integer` |
| | 117 | * source of a message |
| | 118 | * `fun[lib="comm", pure] $message_tag(msg: Message): Integer` |
| | 119 | * tag of a message |
| | 120 | * `fun[lib="comm", pure] $message_dest(msg: Message): Integer` |
| | 121 | * destination of a message |
| | 122 | * `fun[lib="comm", pure] $message_size(msg: Message): Integer` |
| | 123 | * size of a message |
| 150 | | * creation: `fun[lib="comm"] $comm_create(scope: Scope, gcomm: GComm, place: Integer): Comm` |
| 151 | | * destroy: `fun[lib="comm"] $comm_destroy(comm: Comm)` |
| 152 | | * get size: `fun[lib="comm", pure] $comm_size(comm: Comm): Integer` |
| 153 | | * get place: `fun[lib="comm", pure] $comm_place(comm: Comm): Integer` |
| 154 | | * enqueue: `fun[lib="comm"] $comm_enqueue(comm: Comm, msg: Message)` |
| 155 | | * probe: `fun[lib="comm", pure] $comm_probe(comm: Comm, src: Integer, tag: Integer): Bool` |
| 156 | | * seek: `fun[lib="comm"] $comm_seek(comm: Comm, src: Integer, tag: Integer): Message` |
| 157 | | * dequeue: `fun[lib="comm"] $comm_dequeue(comm: Comm, src: Integer, tag: Integer): Message` |
| | 132 | * `fun[lib="comm"] $comm_create(scope: Scope, gcomm: GComm, place: Integer): Comm` |
| | 133 | * creation |
| | 134 | * `fun[lib="comm"] $comm_destroy(comm: Comm)` |
| | 135 | * destroy |
| | 136 | * `fun[lib="comm", pure] $comm_size(comm: Comm): Integer` |
| | 137 | * returns the size of a communicator |
| | 138 | * `fun[lib="comm", pure] $comm_place(comm: Comm): Integer` |
| | 139 | * returns the place of the local communicator in the corresponding global communicator |
| | 140 | * `fun[lib="comm"] $comm_enqueue(comm: Comm, msg: Message)` |
| | 141 | * enqueue |
| | 142 | * `fun[lib="comm", pure] $comm_probe(comm: Comm, src: Integer, tag: Integer): Bool` |
| | 143 | * probe |
| | 144 | * `fun[lib="comm"] $comm_seek(comm: Comm, src: Integer, tag: Integer): Message` |
| | 145 | * seek |
| | 146 | * `fun[lib="comm"] $comm_dequeue(comm: Comm, src: Integer, tag: Integer): Message` |
| | 147 | * dequeue |
| 161 | | * Types: `Domain_strategy` and `Domain_decomposition` |
| 162 | | |
| 163 | | * domain decomposition: `fun[lib="domain"] $domain_partition(dom: Domain, s: Domain_strategy, n: Integer): Domain_decomposition` |
| 164 | | * check if domain is rectangular: `funl[lib="domain"] $is_rectangular_domain(dom: Domain): Bool` |
| 165 | | * get dimension: `fun[lib="domain", pure] $dimension_of(dom: Domain): Integer` |
| 166 | | * get size (total number of tuples): `fun[lib="domain"] $domain_size(dom: Domain): Integer` |
| | 151 | * Types |
| | 152 | * `Domain_strategy` |
| | 153 | * `Domain_decomposition` |
| | 154 | * `fun[lib="domain"] $domain_partition(dom: Domain, s: Domain_strategy, n: Integer): Domain_decomposition` |
| | 155 | * domain decomposition |
| | 156 | * `funl[lib="domain"] $is_rectangular_domain(dom: Domain): Bool` |
| | 157 | * checks if domain is rectangular |
| | 158 | * `fun[lib="domain", pure] $dimension_of(dom: Domain): Integer` |
| | 159 | * returns the dimension of a domain |
| | 160 | * `fun[lib="domain"] $domain_size(dom: Domain): Integer` |
| | 161 | * returns the size of a domain (i.e., total number of tuples) |
| 169 | | * sequence initialization |
| 170 | | |
| 171 | | `fun[lib="seq"] $seq_init(seq: Pointer, count: Integer, value: Pointer)` |
| 172 | | |
| 173 | | given a pointer to an object of `Array[T]`, sets that object to be the array of length count in which every element has the same value, specified by the given pointer value.Parameters: |
| | 164 | * `fun[lib="seq"] $seq_init(seq: Pointer, count: Integer, value: Pointer)` |
| | 165 | * sequence initialization |
| | 166 | * given a pointer to an object of `Array[T]`, sets that object to be the array of length count in which every element has the same value, specified by the given pointer value.Parameters: |
| | 170 | * `fun[lib="seq", pure] $seq_length(seq: Pointer): Integer` |
| | 171 | * returns the length of a sequence |
| | 172 | * `fun[lib="seq"] $seq_insert(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| | 173 | * insertion |
| | 174 | * `fun[lib="seq"] $seq_remove(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| | 175 | * removal |
| | 176 | * `fun[lib="seq"] $seq_append(seq: Pointer, values: Pointer, count: Integer)` |
| | 177 | * appending |
| 178 | | * length of sequence |
| 179 | | |
| 180 | | `fun[lib="seq", pure] $seq_length(seq: Pointer): Integer` |
| 181 | | |
| 182 | | * insertion |
| 183 | | |
| 184 | | `fun[lib="seq"] $seq_insert(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| 185 | | |
| 186 | | * removal |
| 187 | | |
| 188 | | `fun[lib="seq"] $seq_remove(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| 189 | | |
| 190 | | * appending |
| 191 | | |
| 192 | | `fun[lib="seq"] $seq_append(seq: Pointer, values: Pointer, count: Integer)` |
| | 179 | |