Cannot disable OMP parallelisation validation check

Open
#987 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
fortran, python
Domain
compilers, hpc

Research direction

Reproduce the ROMS example from the issue with the outer loop transformed using OMP and the node-type-check=false option. Trace the validation triggered by the inner EXIT I_LOOP in the transformation and verify that disabling the option permits the build without aborting.

Written by the indexing model from the issue text.

Description

bug GOcean

A recent commit (dddadba427) broke my ROMS build. The problem is the following ROMS code, to which I need to apply OMP:

     DO np=Ns,Ne
        DO mp=Ms,Me
          Ipos(mp,np)=IJspv
          Jpos(mp,np)=IJspv
         IF (rectangular) THEN
            foundi=.FALSE.
            I_LOOP : DO i=LBi,UBi-1
              IF ((Xgrd(i  ,1).le.Xpos(mp,np)).and. (Xgrd(i+1,1).gt.Xpos(mp,np))) THEN
                Imin=i
                foundi=.TRUE.
                EXIT I_LOOP
              END IF
            END DO I_LOOP

The outer loop is parallelised, but the exit statement for the inner loop is in a code block, and now aborts. I do supply the node-type-check=false option to the transformation, which should disable this kind of validation check.

Dominant language
Python
Stars
137
Forks
36
Avg merge
6d 16h
Merged PRs (30d)
18

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stfc/PSyclone

All issues in stfc/PSyclone

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.