source: CIVL/examples/omp/dataracebench-1.3.2/micro-benchmarks-fortran/DRB150-missinglock1-orig-gpu-yes.f95@ 53480b5

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since 53480b5 was e3f356c, checked in by Wenhao Wu <wuwenhao@…>, 5 years ago

merge from branch omptrans for tacas2022

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5471 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100755
File size: 1.2 KB
Line 
1!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!
2!!! Copyright (c) 2017-20, Lawrence Livermore National Security, LLC
3!!! and DataRaceBench project contributors. See the DataRaceBench/COPYRIGHT file for details.
4!!!
5!!! SPDX-License-Identifier: (BSD-3-Clause)
6!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!
7
8!The distribute parallel do directive at line 22 will execute loop using multiple teams.
9!The loop iterations are distributed across the teams in chunks in round robin fashion.
10!The omp lock is only guaranteed for a contention group, i.e, within a team.
11!Data Race Pair, var@25:9 and var@25:15.
12
13program DRB150_missinglock1_orig_gpu_yes
14 use omp_lib
15 implicit none
16
17 integer :: var, i
18 integer (kind=omp_lock_kind) :: lck
19 call omp_init_lock (lck)
20
21 !$omp target map(tofrom:var) device(0)
22 !$omp teams distribute parallel do
23 do i = 1, 10
24 call omp_set_lock(lck)
25 var = var+1
26 call omp_unset_lock(lck)
27 end do
28 !$omp end teams distribute parallel do
29 !$omp end target
30
31 call omp_destroy_lock(lck)
32
33 print*, var
34end program
Note: See TracBrowser for help on using the repository browser.