I figured I’d just share this in case other people need it. Compiling OpenMPI 1.6.5 wasn’t perfectly straightforward, there were a couple small hiccups. I did this on a Debian 64-bit Intel i7 machine.
I ran through the typical steps and tried compiling like so:
CC=/opt/pgi/linux86-64/14.1/bin/pgcc CXX=/opt/pgi/linux86-64/14.1/bin/pgcpp F77=/opt/pgi/linux86-64/14.1/bin/pgf77 FC=/opt/pgi/linux86-64/14.1/bin/pgf90 CFLAGS=-fast CXXFLAGS=-fast FFLAGS=-fast FCFLAGS=-fast ./configure --prefix=/opt/openmpi-1.6.5-pgi
That complained with “pgcc-Error-Unknown switch -thread” So I placed set NOSWITCHERROR=1; in these four files:
~/.mypgccrc ~/.mypgcpprc ~/.mypgf77rc and ~/.mypgf90rc
It complained again with an uglier message: relocation R_X86_64_32S against `.rodata’ can not be used when making a shared object; recompile with -fPIC. So I followed the instructions. The final configure was then:
CC=/opt/pgi/linux86-64/14.1/bin/pgcc CXX=/opt/pgi/linux86-64/14.1/bin/pgcpp F77=/opt/pgi/linux86-64/14.1/bin/pgf77 FC=/opt/pgi/linux86-64/14.1/bin/pgf90 CFLAGS=‘-fast -fPIC’ CXXFLAGS=‘-fast -fPIC’ FFLAGS=-fast FCFLAGS=-fast ./configure --prefix=/opt/openmpi-1.6.5-pgi
That did the trick.