PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

Free OpenACC Webinar

explanation of PGI output needed
Goto page 1, 2  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Accelerator Programming
View previous topic :: View next topic  
Author Message
AROM



Joined: 03 Apr 2013
Posts: 39

PostPosted: Thu Jul 11, 2013 2:19 am    Post subject: explanation of PGI output needed Reply with quote

Hi Mat,

I have several questions (PGI 13.2):
1. What does '*' means? wkl variable.
2. arrays QS,QR, QC, etc. declared with dimension(its:ite,jts:jte,kts:kte). Why does PGI use '1:kte' as last dimension? Why not to 'pcopy' entire array (qs(:,:,:)...)?
3. Why does PGI generate allocate for some arrays (coldry, wx, wkl,...)? I expected to see present_or_... records.
4. It seams PGI failed to calculate indexes correctly. Taking into account I have the following lines:
Code:
       DO 3200 L=kte+1,NLAYERS,1
          TZ(ii,jj,L) = varint(L) + (TZ(ii,jj,kte) - varint(kte))
          TAVEL(ii,jj,L) = 0.5*(TZ(ii,jj,L) + TZ(ii,jj,L-1))
 3200  CONTINUE

it's rather strange to see records
Code:
Generating copyin(tz(its:ite,jts:jte,kte:nlayers-1))
         Generating copyout(tz(its:ite,jts:jte,:kte))


Code:
   3117, Generating present_or_copyout(taucloud(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(qs(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(qr(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(qi(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(qc(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(cldfra(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(delz(its:ite,jts:jte,1:kte))
         Generating present_or_copyout(cldfrac(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(ixindx(:4))
         Generating present_or_copyin(o3wrk(:))
         Generating present_or_copyin(ppwrkh(:))
         Generating present_or_copyin(o3prof(its:ite,jts:jte,1:kte))
         Generating present_or_copyout(tavel(its:ite,jts:jte,1:kte))
         Generating present_or_copyin(t(its:ite,jts:jte,1:kte))
         Generating allocate(pavel(its:ite,jts:jte,:))
         Generating present_or_copyout(pavel(its:ite,jts:jte,nlayers))
         Generating present_or_copyin(p(its:ite,jts:jte,1:kte))
         Generating present_or_copyout(tbound(its:ite,jts:jte))
         Generating present_or_copyin(tsfc(its:ite,jts:jte))
         Generating copyin(qv(its:ite,jts:jte,:kte))
         Generating copyout(qv(its:ite,jts:jte,kts:kte))
         Generating present_or_copyin(pw(its:ite,jts:jte,:))
         Generating present_or_copyin(tw(its:ite,jts:jte,1:kte+1))
         Generating copyin(tz(its:ite,jts:jte,kte:nlayers-1))
         Generating copyout(tz(its:ite,jts:jte,:kte))
         Generating present_or_copyin(pprof(:))
         Generating copyin(pz(its:ite,jts:jte,:))
         Generating copyout(pz(its:ite,jts:jte,nlayers))
         Generating present_or_copyin(tprof(:))
         Generating allocate(coldry(its:ite,jts:jte,1:))
         Generating copyin(coldry(its:ite,jts:jte,1:nlayers))
         Generating copyout(coldry(its:ite,jts:jte,1:kte))
         Generating allocate(wx(its:ite,jts:jte,:,1:))
         Generating copyin(wx(its:ite,jts:jte,:,1:nlayers))
         Generating copyout(wx(its:ite,jts:jte,:,kts:nlayers))
         Generating allocate(wkl(its:ite,jts:jte,:35,:nlayers))
         Generating copy(wkl(its:ite,jts:jte,:6,1:*))
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6208
Location: The Portland Group Inc.

PostPosted: Fri Jul 12, 2013 2:22 pm    Post subject: Reply with quote

Quote:
1. What does '*' means? wkl variable.

Hmmm, I've actually not seen this before. I'll need to ask.

Quote:
2. arrays QS,QR, QC, etc. declared with dimension(its:ite,jts:jte,kts:kte). Why does PGI use '1:kte' as last dimension? Why not to 'pcopy' entire array (qs(:,:,:)...)?
Sans a data clause by the used, the compiler is looking at how the array is accessed within the loop, not how it was declared, and by default only allcates and copies the elements used. My guess is that the index variable's range for the third dimension goes from 1 to kte, hence the "1:kte".

Quote:
3. Why does PGI generate allocate for some arrays (coldry, wx, wkl,...)? I expected to see present_or_... records.
4. It seams PGI failed to calculate indexes correctly. Taking into account I have the following lines:
In both cases, the elements accessed during the assignment to an array are different than the ones being accessed when read. This causes the copyin and copyout clauses to be different.

- Mat
Back to top
View user's profile
Carl Ponder



Joined: 17 Jun 2010
Posts: 3

PostPosted: Tue Jul 16, 2013 7:36 am    Post subject: Quick answers from 2013/07/15 discussion Reply with quote

1. The "*" is printed because the details were too complex to print.
Back to top
View user's profile
AROM



Joined: 03 Apr 2013
Posts: 39

PostPosted: Wed Jul 17, 2013 12:19 am    Post subject: Reply with quote

Thank you Carl!

Mat,

Quote:
4. It seams PGI failed to calculate indexes correctly. Taking into account I have the following lines:
Code:
   
       DO 3200 L=kte+1,NLAYERS,1
          TZ(ii,jj,L) = varint(L) + (TZ(ii,jj,kte) - varint(kte))
          TAVEL(ii,jj,L) = 0.5*(TZ(ii,jj,L) + TZ(ii,jj,L-1))
 3200  CONTINUE

it's rather strange to see records
Code:
Generating copyin(tz(its:ite,jts:jte,kte:nlayers-1))
Generating copyout(tz(its:ite,jts:jte,:kte))


That is the only place I access TZ variable in the subroutine. Looking at indexes I expect to see
Code:
Generating copyin(tz(its:ite,jts:jte,kte:nlayers))
Generating copyout(tz(its:ite,jts:jte,kte+1,nlayers))
Last indexes are not correct in PGI's output.
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6208
Location: The Portland Group Inc.

PostPosted: Wed Jul 17, 2013 9:46 am    Post subject: Reply with quote

Quote:
Last indexes are not correct in PGI's output.
Ok, we'll take a look. Though, we'll need a reproducing example. The work around would be to use a copy clause to explicitly copy the array.

- Mat
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Accelerator Programming All times are GMT - 7 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group