Changes between Version 60 and Version 61 of OpenMPTransformation


Ignore:
Timestamp:
10/14/14 17:42:01 (12 years ago)
Author:
zmanchun
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OpenMPTransformation

    v60 v61  
    151151 * combines a barrier and a flush on all shared objects owned by the team.  Implicit in many OpenMP worksharing constructs.
    152152
    153 * `$domain $omp_arrive_loop($omp_team team, $domain loop_dom,  $DecompositionStrategy strategy)`
     153* `$domain $omp_arrive_loop($omp_team team, int location, $domain loop_dom,  $DecompositionStrategy strategy)`
    154154 * called by a thread when it reaches an omp for loop, this function returns the subset of the loop domain specifying the iterations that this thread will execute.  The dimension of the domain returned equals the dimension of the given domain `loop_dom`.
    155155
    156 * `$domain(1) $omp_arrive_sections($omp_team, int numSections)`
     156* `$domain(1) $omp_arrive_sections($omp_team team, int location, int numSections)`
    157157 * called by a thread when it reaches an omp sections construct, this function returns the subset of the integers 0..numSections-1 specifying the indexes of the sections that this thread will execute.  The sections are numbered from 0 in increasing order.
    158158
    159 * `int $omp_arrive_single($omp_team team)`
     159* `int $omp_arrive_single($omp_team team, int location)`
    160160 * called by a thread when it reaches on omp single construct, returns the thread ID of the thread that will execute the single construct.
    161161
     
    326326{
    327327  $domain loop_domain = {0..n-1};
    328   $domain(1) my_iters = ($domain(1))$omp_arrive_loop(team, loop_domain);
     328  $domain(1) my_iters = ($domain(1))$omp_arrive_loop(team, FOR_LOC++, loop_domain, STRATEGY);
    329329
    330330  $for (int i : my_iters) {
     
    351351{
    352352  $domain loop_domain = {0..n-1, 0..m-1, 0..l-1};
    353   $domain(3) my_iters = ($domain(3))$omp_arrive_loop(team, loop_domain);
     353  $domain(3) my_iters = ($domain(3))$omp_arrive_loop(team, FOR_LOC++, loop_domain, STRATEGY);
    354354
    355355  $for (int i, j, k : my_iters) {
     
    376376{
    377377  $domain loop_domain = {a..b-1};
    378   $domain(1) my_iters = ($domain(1))$omp_arrive_loop(team, loop_domain);
     378  $domain(1) my_iters = ($domain(1))$omp_arrive_loop(team, FOR_LOC++, loop_domain, STRATEGY);
    379379  double _x=0.0, _y=0.0; // not the local view of the shared variable x/y
    380380
     
    407407{{{
    408408{
    409   $domain(1) my_secs = $omp_arrive_sections(team, numSections);
     409  $domain(1) my_secs = $omp_arrive_sections(team, SEC_LOC++, numSections);
    410410
    411411  $for (int i : my_secs) {
     
    437437
    438438{{{
    439 int owner = $omp_arrive_single(team);
     439int owner = $omp_arrive_single(team, SINGLE_LOC++);
    440440
    441441if (owner == _tid) {
     
    516516{
    517517  $domain loop_domain = {a..b};
    518   $domain(1) my_iters = ($domain(1))$omp_arrive_loop(loop_domain);
     518  $domain(1) my_iters = ($domain(1))$omp_arrive_loop(team, FOR_LOC++, loop_domain, STRATEGY);
    519519  int order1=a, order2=a;
    520520