No pgprof1.out file.

I’am using PGI 7.1 with a sample MPI program:

      program main
      include 'mpif.h'
      double precision  PI25DT
      parameter        (PI25DT = 3.141592653589793238462643d0)
      double precision  mypi, pi, h, sum, x, f, a
      integer n, myid, numprocs, i, ierr
c                                 function to integrate
      f(a) = 4.d0 / (1.d0 + a*a)

      call MPI_INIT(ierr)
      call MPI_COMM_RANK(MPI_COMM_WORLD, myid, ierr)
      call MPI_COMM_SIZE(MPI_COMM_WORLD, numprocs, ierr)


c                                 broadcast n
c                                 check for quit signal
      if ( n .le. 0 ) goto 30
c                                 calculate the interval size
      h = 1.0d0/n
      sum  = 0.0d0
      do 20 i = myid+1, n, numprocs
         x = h * (dble(i) - 0.5d0)
         sum = sum + f(x)
 20   continue
      mypi = h * sum
c                                 collect all the partial sums
     &  0,MPI_COMM_WORLD,ierr)
c                                 node 0 prints the answer.
      if (myid .eq. 0) then
         print *, 'pi is ', pi, ' Error is', abs(pi - PI25DT)
c      goto 10
 30   call MPI_FINALIZE(ierr)

I am trying to use Pgprof, so I compile the code with the command:

pgf77 -Mprof=mpich1,lines mpi_test.F

Then I run the program on 4 processors, but I get only the following files:


I don’t know why I don’t have pgprof1.out. Moreover I cannot read pgprof.out with pgprof, cause in pgprof.out I have the following:

PROF NODALL 0 a.out 1201526244 1201526063
h n96 11748 0 4
t 1 1
p 0
f mpi_test.F
r main 1 1 1 0.291125 0.291125 0 0
i pgprof1.out
i pgprof2.out
i pgprof3.out

Pgprof says:

pgprof> pgprof profile5: Invalid profile file pgprof.out

…and if I run:

cp pgprof2.out pgprof1.out

then its OK, but of course its not a solution. I still dont have performance counters from 1st process.
Have you ever seen such problems with Pgprof?
Best regards,

Hi Maciek,

I have a few questions for investigate what goes wrong.

  1. What command do you use to run?
  2. What is in machinefile? Did you pass your machinefile or do you use a default?
  3. What OS?



thank you for your answer.


  1. I use mpiexec:
mpiexec -n 4 ./a.out
  1. Well, I didn’t pass the machinefile. I use the PBS queueing system on our cluster. I am almost sure that it is done automatically on our system. PBS -> mpiexec
  2. Its Gentoo system, when I run “uname -a” I get the following:
Linux n96 2.6.23-gentoo-r3-current #1 SMP Tue Dec 11 12:32:13 CET 2007 x86_64 AMD Opteron(tm) Processor 246 AuthenticAMD GNU/Linux


Hi Maceik,

How do you setup your environment? Based on the information you gave here, you compile using MPICH1 but you use mpiexe to run. There is no mpiexec command in MPICH1 in PGI packages. mpiexec is MPICH2 command. Make sure you don’t setup MPICH2 path and run MPICH1. That could be the reason why it fails?