Performance using pgi and intel compiler

I am a rookie to linux.
I downloaded pgi-compilers(pgilinux86-705.tar.gz). Its a evaluation version.
Our code is written in fortran which is using mpi.
While installing mpich(myrinet), i modified few lines,
CC=${CC:-pgcc}
CXX=${CXX:-pgCC}
FC=${FC:-pgf90}
F90=${F90:-pgf90}

I dont know i did properly or not. Installation went fine.

I compiled my code and ran it. I did benchmark between, ethernet switch
with ifort compilers and myrinet switch with pgi compilers.

ifort with ethernet switch

loop time = 192.15639 seconds on 2 processors

loop time = 34.73277 seconds on 16 processors

loop time = 28.46388 seconds on 30 processors

pgf90 with myrinet switch

loop time = 393.81145 seconds on 2 processors

loop time = 54.43015 seconds on 16 processors

loop time = 42.48637 seconds on 30 processors

I can see the big differnce when i use 2 processors. i cant run my code
using 1processor in ifort compiler. It gave segmentation fault.
I heard that pgi compiler is better than all. So i downloaded, and i tried. Now my code is running using 1processor in pgf90. But if i compare the performance, ifort compiler performance is double than pgi(using 2porc). Can you tell me why its happening.
Can you suggest me, Whether i downloaded proper pgi-compiler, if not kindly tell me what compiler i have to
install. If there is installation problem, kindly tell me how to install using
proper compilers.

Our cluster configuration.
CPU: Intel® Dual Processor Xeon® CPU 3.2GHz
OS : Rocks-4.2.1

If you need more details, i will send to you.

Hi VelanRanjith,

It appears that your installation is fine, I wondering what compiler options you’re using for both the MPICH build and your application? Also, what options are you using for ifort?

Thanks,
Mat

I used pgi compiler for installing myrinet mpich(I downloaded it from http://www.myri.com/scs/download-mpichmx.html). then rocks(4.2.1) by default used intel compilers to install ethernet mpich.
I compiled my code as follows
ifort:
/opt/mpich/intel/bin/mpif90 test.f -o ifort.exe

pgi:
/share/apps/mpich_mx/bin/mpif90 -r8 -fast test.f -o pgf90.exe

Hi VelanRanjith,

What options is mpif90 script adding by default? (run the command “mpif90 -show” for each mpif90). Also, what is the performance of PGI on the Ethernet switch and Ifort on Myrinet?

  • Mat

Hi Mat
Output of mpif90 -show given below.
[velan@galaxy ~]$ /share/apps/mpich-mx_1.2.7.4/bin/mpif90 -show
ln -s /share/apps/mpich-mx_1.2.7.4/include/mpif.h mpif.h
pgf90 -L/share/apps/mpich-mx_1.2.7.4/lib -lmpichf90 -lmpich -Wl,-rpath,/opt/mx2g/lib64,-rpath,/opt/mx2g/lib -L/opt/mx2g/lib64 -L/opt/mx2g/lib/ -lmyriexpress -lpthread -lrt
rm -f mpif.h
[velan@galaxy ~]$ /opt/mpich/intel/bin/mpif90 -show
ln -s /opt/mpich/intel/include/mpif.h mpif.h
ifort -L/opt/mpich/intel/lib -lmpichf90 -lmpich -lpthread -lrt
rm -f mpif.h
[velan@galaxy ~]$

I not yet tried, pgf90 in ethernet and ifort in myrinet switch. If you need i can run the case.

I’d like to know if the performance delta is due to the compilers or due to Ethernet vs Mryinet. The only way to do this would be to run PGI on Ethernet and Ifort on Myrinet.

Thanks,
Mat