Pgcollect will not profile multithreaded target

Hi guys,

I know that I shouldn’t have to do anything special to profile an omp implementation. However, when I run pgcollect on my executable the program itself runs on several threads (evident by the 5X speedup), while pgcollect profiles everything as being single threaded. Pgprof confirms this since all of the profiled sections of code are are shown to be run on a single thread/processor.

I think there is something wrong with my environment setup, but I don’t know where to start looking since this problem isn’t well documented on the forms and internet.

Any suggestions would be greatly appreciated.
Dan

My OMP code implementation skeleton is:

SUBROUTINE f_name()

!$OMP PARALLEL DEFAULT(PRIVATE) &
!$OMP SHARED(...) 
!$OMP DO

DO IC = 1, NC 
.....
ENDDO

!$OMP END DO
!$OMP END PARALLEL
RETURN
END

My compilation tags are:
pgfortran -V13.4 -mp -fast -Mipa=fast,inline -Minfo=ccff

Only environment variable changed from default was:
export OMP_NUM_THREADS=#

Operating System:
Ubuntu 12.04 (precise)

CPUs:
12 Intel Xeon CPU X5650

pgcollect -V prints:
pgcollect 13.4-0 64-bit target on x86-64 Linux

Dan
What exactly are you seeing? Have you gone to the “Parallelism” tab and clicked on the “>” next to the “P0”? If so, is there only a “T0” line?

Would you please run the following on your pgprof.out file:

$ grep "^p" pgprof.out

and post the results?

thanks
–Don