Behold my surprise when I realised that there's no need for separate -dev packages, as is the case on Debian i.e. the headers are generally installed together with the package (so e.g. python is enough -- you don't need python-dev as well).
While debian is probably the best choice for my nodes (I want stability -- not the latest flashiest stuff), nwchem is a good test case since I've been playing with it for years, and it's not available in the pacman or AUR repos.
Your mileage with openblas will vary depending on your hardware. ACML is an alternative on e.g. FX-8150. ATLAS doesn't seem to work with NWChem when I try it, but I'm not sure what I'm doing wrong. See the original post for examples on how to link to other math libs.
I'm mainly looking at this post: http://verahill.blogspot.com.au/2012/09/briefly-compiling-nwchem-611-with.html
Dependencies:
pacman -S wget base-devel gcc-fortran tcsh openmpi
Openblas:
Download from http://github.com/xianyi/OpenBLAS/tarball/v0.1.1
sudo mkdir /opt/openblas sudo chown $USER /opt/openblas tar xvf xianyi-OpenBLAS-v0.1.1-0-g5b7f443.tar.gz cd xianyi-OpenBLAS-e6e87a2/ make all BINARY=64 CC=/usr/bin/gcc FC=/usr/bin/gfortran USE_THREAD=0 INTERFACE64=1 1> make.log 2>make.err make PREFIX=/opt/openblas install cp lib*.* /opt/openblas/lib
Nwchem:
sudo mkdir /opt/nwchem sudo chown $USER /opt/nwchem cd /opt/nwchem wget http://www.nwchem-sw.org/images/Nwchem-6.1.1-src.2012-06-27.tar.gz tar xvf Nwchem-6.1.1-src.2012-06-27.tar.gz cd nwchem-6.1.1-src/
Edit nwchem-6.1.1-src/src/config/makefile.h and edit line 1957 as shown in this post.
Then continue:
export LARGE_FILES=TRUE export TCGRSH=/usr/bin/ssh export NWCHEM_TOP=`pwd` export NWCHEM_TARGET=LINUX64 export NWCHEM_MODULES="all python" export PYTHONVERSION=2.7 export PYTHONHOME=/usr export BLASOPT="-L/opt/openblas/lib -lopenblas" export USE_MPI=y export USE_MPIF=y export USE_MPIF4=y export MPI_LOC=/usr/lib/openmpi export MPI_INCLUDE=/usr/include export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/openmpi:/opt/openblas/lib export LIBMPI="-L/usr/lib/openmpi -lmpi -lopen-rte -lopen-pal -ldl -lmpi_f77 -lpthread" cd $NWCHEM_TOP/src make clean make nwchem_config make FC=gfortran 1> make.log 2>make.err export FC=gfortran cd ../contrib ./getmem.nwchem
Note that some of the locations are a little bit different from debian.
Edit your ~/.bashrc and add:
You can now test your new binary by running a job, e.g. co.nw:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openblas/lib export PATH=$PATH:/opt/nwchem/nwchem-6.1.1-src/bin/LINUX64
title "co nmr" geometry c 0 0 0 o 0 0 1.13 end basis * library "6-311+g*" end dft direct grid fine mult 1 xc HFexch 0.05 slater 0.95 becke88 nonlocal 0.72 vwn_5 1 perdew91 0.81 end task dft optimizeRun:
nwchem co.nw
or
mpirun -n 2 nwchem co.nw