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

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 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.