OpenMPI 1.6.5 compilation howto

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.