Changes between Version 60 and Version 61 of OpenMPTransformation
- Timestamp:
- 10/14/14 17:42:01 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OpenMPTransformation
v60 v61 151 151 * combines a barrier and a flush on all shared objects owned by the team. Implicit in many OpenMP worksharing constructs. 152 152 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)` 154 154 * 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`. 155 155 156 * `$domain(1) $omp_arrive_sections($omp_team , int numSections)`156 * `$domain(1) $omp_arrive_sections($omp_team team, int location, int numSections)` 157 157 * 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. 158 158 159 * `int $omp_arrive_single($omp_team team )`159 * `int $omp_arrive_single($omp_team team, int location)` 160 160 * called by a thread when it reaches on omp single construct, returns the thread ID of the thread that will execute the single construct. 161 161 … … 326 326 { 327 327 $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); 329 329 330 330 $for (int i : my_iters) { … … 351 351 { 352 352 $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); 354 354 355 355 $for (int i, j, k : my_iters) { … … 376 376 { 377 377 $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); 379 379 double _x=0.0, _y=0.0; // not the local view of the shared variable x/y 380 380 … … 407 407 {{{ 408 408 { 409 $domain(1) my_secs = $omp_arrive_sections(team, numSections);409 $domain(1) my_secs = $omp_arrive_sections(team, SEC_LOC++, numSections); 410 410 411 411 $for (int i : my_secs) { … … 437 437 438 438 {{{ 439 int owner = $omp_arrive_single(team );439 int owner = $omp_arrive_single(team, SINGLE_LOC++); 440 440 441 441 if (owner == _tid) { … … 516 516 { 517 517 $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); 519 519 int order1=a, order2=a; 520 520
