Changes between Version 2 and Version 3 of Library_IR


Ignore:
Timestamp:
12/10/15 16:18:02 (10 years ago)
Author:
zmanchun
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Library_IR

    v2 v3  
    6262 
    6363=== `bundle` utility ===
    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
    8274
    8375=== concurrency utility `concurrency` ===
    8476
    8577==== barrier operations ====
    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
    9988 
    100   `fun[lib="concurrency"] $barrier_destroy(barrier: Barrier)`
    101 
    102 * barrier call
    103  
    104   `fun $barrier_call(barrier: Barrier)`
    105 
    10689==== collective records ====
    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
    128104
    129105=== communication `comm` ===
     
    133109 * `GComm`
    134110 * `Comm`
    135 
    136111* message operations
    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
    144124* global communicator operations
    145  * creation: `fun[lib="comm"] $gcomm_create(scope: Scope, size: Integer): GComm`
    146  * destroy: `fun[lib="comm"] $gcomm_destroy(gcomm: GComm)`
    147  * duplication: `fun[lib="comm"] $gcomm_dup(old: Comm, new: Comm)`
    148 
     125 * `fun[lib="comm"] $gcomm_create(scope: Scope, size: Integer): GComm`
     126   * creation
     127 * `fun[lib="comm"] $gcomm_destroy(gcomm: GComm)`
     128   * destroy
     129 *  `fun[lib="comm"] $gcomm_dup(old: Comm, new: Comm)`
     130   * duplication
    149131* local communicator operations
    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
    158148
    159149=== domain utility `domain` ===
    160150
    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)
    167162
    168163=== sequence operations `seq` ===
    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:
    174167    1. array: pointer-to-incomplete-array-of-T
    175168    1. count: any integer type, must be nonnegative
    176169    1.value: pointer-to-T
     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
    177178
    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