Differences between revisions 501 and 502
Revision 501 as of 2011-07-01 11:44:29
Size: 86107
Editor: MarcinDulak
Comment:
Revision 502 as of 2011-07-01 12:40:40
Size: 86107
Editor: MarcinDulak
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2631: Line 2631:
  version_svn=382   version_svn=383

This page below describes:

  • configuration of the fys yum repository,
  • the necessary steps to build RPM software packages on a custom RPM-based (currently el, fc) system and the login nodes fjorm or thul.

Warning: campos-dacapo-python provides a python interface to campos-dacapo Fortran code, through campos-ase2. On a 64-bit machine campos-ase2 works only with python <= 2.4, due to the unmaintained python-numeric package. Users on modern systems can use instead the campos-ase3 package and skip installation of any packages related to campos-ase2.

Warning: on 64-bit machines el5 installs often only 32-bit versions of packages. Please verify that 64-bit versions are installed, otherwise run the corresponding yum install package again.

Configure fys yum repository

We host a yum repository, which contains RPM packages of our software for the following systems: el (RedHat Enterprise Linux, or CentOS), fc (Fedora), openSUSE (openSUSE):

  • configure fys yum repository:

    yum -y install yum-utils wget
    cd /etc/yum.repos.d
    wget --no-check-certificate https://svn.fysik.dtu.dk/projects/rpmbuild/trunk/SOURCES/fys_el.repo

    Note on a Fedora system download fys_fc.repo instead, and use fys_fc identifier in the command below. Moreover on a fc system you do not need to include any external repositories.

    Note on an openSUSE system download fys_openSUSE.repo instead and save it under /etc/zypp/repos.d, and use fys_openSUSE identifier in the command below. You need to include additional external openSUSE repositories: see configure external repositories

  • list all packages available in the fys yum repository, maybe you need some of them?:

    yum list available --disablerepo=* --enablerepo=fys_el

    Note: on el configure external repositories as installation of most packages requires enabling epel or atrpms repositories:

    yum -y install --enablerepo=fys_el,epel,atrpms campos-dacapo

    Note: most of the fys packages are relocatable with the default prefix of /usr. As an example one installs campos-dacapo into the /opt/campos-dacapo-2.7.16 prefix as follows:

    mkdir fys && cd fys # fys directory stores downloaded RPMS
    yumdownloader --resolve --enablerepo=fys_el,epel,atrpms campos-dacapo-2.7.16
    mkdir tmp && mv campos-dacapo-2.7.16* tmp
    yum -y localinstall *
    rpm -ivh --relocate "/usr"="/opt/campos-dacapo-2.7.16" tmp/campos-dacapo-*
    mv tmp/campos-dacapo-* . && rmdir tmp

    Have a look at the /opt/campos-dacapo-2.7.16/share/campos-dacapo/*.*sh to see what environment variables need to be set in case of an installation into a non-default prefix. There is also a template modulefile /opt/campos-dacapo-2.7.16/share/campos-dacapo/campos-dacapo-2.7.16* that contains `prereq`ired modules (modulefiles surely are different on your system).

    On systems where you don't have root access you can consider downloading RPMS individually and extracting the contents of the RPMS, for example:

    mkdir ~/fys && cd ~/fys
    rpm2cpio http://packages/pub/linux/fys/el/5/x86_64/campos-dacapo-pseudopotentials-1-2.el5.fys.noarch.rpm | cpio -idmv

Configure external repos

On openSUSE, as root:

  • enable the packman repository as described at http://opensuse-community.org/Repositories/Packman

  • add multimedia:/photo repository, e.g. for opensuse-11.2:

    zypper addrepo --repo http://download.opensuse.org/repositories/multimedia:/photo/openSUSE_11.2/multimedia:photo.repo # python-sphinx is there!!!

On RedHat Enterprise Linux or CentOS, as root:

  • create yum repository definitions (do not enable them):
  • ATrpms:

    • official way: follow ATrpms installation instructions and edit /etc/yum.repos.d/atrpms.repo so it contains:

      enabled=0
    • fast way:

      echo '[atrpms]' > /etc/yum.repos.d/atrpms.repo
      echo 'name=CentOS $releasever - $basearch - ATrpms' >> /etc/yum.repos.d/atrpms.repo
      echo 'baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable' >> /etc/yum.repos.d/atrpms.repo
      echo '#baseurl=http://mirrors.ircam.fr/pub/atrpms/el$releasever-$basearch/atrpms/stable' >> /etc/yum.repos.d/atrpms.repo
      echo 'gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms' >> /etc/yum.repos.d/atrpms.repo
      echo 'gpgcheck=1' >> /etc/yum.repos.d/atrpms.repo
      echo 'enabled=0' >> /etc/yum.repos.d/atrpms.repo
  • EPEL:

    • official way: follow EPEL/FAQ/howtouse and edit /etc/yum.repos.d/epel.repo so it contains:

      enabled=0
    • fast way:

      echo '[epel]' > /etc/yum.repos.d/epel.repo
      echo 'name=CentOS $releasever - $basearch - EPEL' >> /etc/yum.repos.d/epel.repo
      echo 'baseurl=http://download.fedora.redhat.com/pub/epel/$releasever/$basearch' >> /etc/yum.repos.d/epel.repo
      echo 'gpgkey=http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL' >> /etc/yum.repos.d/epel.repo
      echo 'gpgcheck=1' >> /etc/yum.repos.d/epel.repo
      echo 'enabled=0' >> /etc/yum.repos.d/epel.repo
  • install, as root:

    yum install yum-utils wget
    # /var directories must be created
    yum search --enablerepo=atrpms arpack-devel
    yum search --enablerepo=epel jmol

Configure rpmbuild

  • create and retrieve the rpmbuild project (as rpmbuild user):

    cd
    svn co https://svn.fysik.dtu.dk/projects/rpmbuild/trunk ~/rpmbuild
  • include the rpmbuild environment configuration script in ~/.bashrc:

  • copy the script:

    cp ~/rpmbuild/SOURCES/.bashrc_rpmbuild ~/

    Note: if installing on a system different than el5 edit the rpm_platform and egg_info variables.

  • and add the following to ~/.bashrc:

    if [ -r "${HOME}/.bashrc_rpmbuild" ]; then
        . ${HOME}/.bashrc_rpmbuild
    fi

    Note on Niflheim the variables:

    export FYS_PLATFORM=Intel-Nehalem-el5 # thul
    export FYS_PLATFORM=AMD-Opteron-el5 # fjorm

    will be set automatically by /home/camp/modulefiles.sh if the environment-modules package is installed.

  • create temporary directory:

    mkdir -p /scratch/$USER
  • apply settings from ~/.bashrc by:

    . ~/.bashrc
  • use the following ~rpmbuild/.rpmmacros:

    cp ~/rpmbuild/SOURCES/.rpmmacros ~/
  • create directories:

    mkdir -p ~/${FYS_PLATFORM}/{RPMS,SRPMS,BUILD}
    mkdir -p ~/${FYS_PLATFORM}/{SPECS,SOURCES} # needed only by openmpi

Install external packages

  • download official packages, as rpmbuild:

    cd ~/${FYS_PLATFORM}/RPMS
    mkdir external; cd external
    # packages from other distributions
    yumdownloader --resolve texlive-latex emacs-auctex tex-preview # Fedora
    yast -i Modules texlive-latex emacs-auctex # openSUSE
    yast -i python-gtk python-xml python-lxml # openSUSE
    yast -i python-matplotlib python-numpy # openSUSE
    yast -i gcc-fortran gcc44-fortran libgfortran44 # openSUSE-11.2
    yast -i openmpi-devel blas lapack # openSUSE
    # el5 packages
    yumdownloader --resolve emacs binutils-devel glib-devel libstdc++-devel
    yumdownloader --resolve gcc-gfortran blas-devel lapack-devel python-devel python-sphinx
    yumdownloader --resolve gnuplot libXi-devel xorg-x11-fonts-100dpi pexpect tetex-latex tkinter qt-devel
    yumdownloader --resolve openmpi openmpi-devel openmpi-libs compat-dapl libibverbs librdmacm openib
    yumdownloader --resolve pygtk2-devel gtk2-devel tk-devel agg ghostscript libtiff-devel xterm
    yumdownloader --resolve libX11-devel libXext-devel openmotif openmotif-devel gd-devel libXpm-devel
    yumdownloader --resolve compat-libstdc++-33 # for mathematica
    yumdownloader --resolve MySQL-python # for CMR
    yumdownloader --resolve perl-XML-SAX # for exciting
    
    yumdownloader --resolve gcc43-c++ gcc43-gfortran # only on EL5 == 5.2
    yum localinstall * # as root
  • download atrpms packages, as rpmbuild (vtk-python is currently unavailable 16 Apr 2009):

    cd ~/${FYS_PLATFORM}/RPMS/external
    yumdownloader --resolve --enablerepo=atrpms vtk-python arpack-devel graphviz
    wget http://ATrpms.net/RPM-GPG-KEY.atrpms
    rpm --import RPM-GPG-KEY.atrpms # as root
    yum localinstall * # as root
  • download the packages from epel, as rpmbuild:

    ~/${FYS_PLATFORM}/RPMS/external
    yumdownloader --resolve --enablerepo=epel jmol gsl-devel python-lxml
    yumdownloader --resolve --enablerepo=epel environment-modules suitesparse-devel
    wget http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL
    rpm --import RPM-GPG-KEY-EPEL # as root
    yum localinstall * # as root
  • on Niflheim only: remove default openmpi:

    yum remove openmpi openmpi-libs
  • edit /etc/yum.conf so it contains:

    exclude=netcdf-* netcdf3-* fftw-* fftw2-* fftw3-* python-numeric openmpi-* libgfortran4* gcc4* libstdc++4* libgomp-* ScientificPython-*

It's time to build custom RPMS

compilers and tools

open64

Install (on the login and computes nodes) Install Open64 Compiler Suite RPM (available under ~rpmbuild/${FYS_PLATFORM}/RPMS/external/prefix), and deploy module file under ` ~rpmbuild/modulefiles/${FYS_PLATFORM}/open64`. Install using --relocate option:

rpm -ivh --relocate "/opt/open64"="/opt/open64/4.2.1" open64-4.2.1-0.x86_64.rpm

The module file is available as svn checkout at https://svn.fysik.dtu.dk/projects/modulefiles/trunk. Note: the module file should contain at least:

prepend-path     PATH /opt/open64/4.2.1/lib/gcc-lib/x86_64-open64-linux/4.2.1
prepend-path     PATH /opt/open64/4.2.1/bin
prepend-path     LD_LIBRARY_PATH /opt/open64/4.2.1/lib/gcc-lib/x86_64-open64-linux/4.2.1
g95

Install (on the login and computes nodes) g95 RPM (available under ~rpmbuild/${FYS_PLATFORM}/RPMS/external/prefix), and deploy module file under ` ~rpmbuild/modulefiles/${FYS_PLATFORM}/g95`. Install using --relocate option:

rpm -ivh --relocate "/usr/local"="/opt/g95/0.91" g95-0.91-4.x86_64.rpm

The module file is available as svn checkout at https://svn.fysik.dtu.dk/projects/modulefiles/trunk. Note: the module file should contain at least (do not add the lib directory to LD_LIBRARY_PATH):

prepend-path     PATH /opt/g95/0.91/lib/gcc-lib/x86_64-unknown-linux-gnu/4.0.3
prepend-path     PATH /opt/g95/0.91/bin
intel

Note: to enable new intell products upgrading of licenses may be necessary, see http://software.intel.com/en-us/articles/workaround-non-upgraded-serial-numbers-disappear-from-the-intel-registration-center-irc-list/

Note: intel changes packaging quite often, here are the installation instructions for the 12.0 compilers:

  • install RPMS (only on the login node) found in l_ccompxe_2011.1.107 manually (using rpm -ivh):

    intel-{compilerpro,idb,idbcdt,ipp,sourcechecker,tbb}*noarch* # exclude intel-compilerpro-common if installed already by mkl
    intel-{compilerpro,idb,ipp,sourcechecker}*x86_64*

    and from l_fcompxe_2011.1.107:

    intel-compilerprof*{noarch,x86_64}*
  • create a link (only on thul):

    mkdir -p /opt/intel/Compiler/2011.1
    cd /opt/intel/Compiler/2011.1 && ln -s /opt/intel/composerxe-2011.1.107 107
  • build intel compatibility packages (only on thul):

    cd ~/rpmbuild/SPECS
    rpmbuild -bb ${modules_usage} --with major_version=2011 --with version1=1 --with version2=107 intel-redist.spec

Note: do not install the RPMS generated in the last step on the login node. They need to be installed only on compute nodes. On the login node only the module file needs to be deployed under ~rpmbuild/modulefiles, as rpmbuild. Note that this directory is available as svn checkout at https://svn.fysik.dtu.dk/projects/modulefiles/trunk. Here is what need to be done for a new version of the package:

mkdir ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
cp /scratch/rpmbuild/intel-2011.1.107/2011.1.107-1.intel64${disttag} ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
cd ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
ln -s 2011.1.107-1.intel64${disttag} 12.0-1

Note: modify the file so it contains at least:

setenv INTEL_LICENSE_FILE /opt/intel/licenses

# generated by intel-redist.spec and installed on compute nodes
prepend-path    LD_LIBRARY_PATH      /opt/intel/Compiler/2011.1/107/lib/intel64
# original locations from intel
prepend-path    LD_LIBRARY_PATH      /opt/intel/composerxe-2011.1.107/compiler/lib/intel64
prepend-path    LD_LIBRARY_PATH      /opt/intel/composerxe-2011.1.107/debugger/lib/intel64
prepend-path    PATH                 /opt/intel/composerxe-2011.1.107/bin/intel64
prepend-path    MANPATH              :
prepend-path    MANPATH              /opt/intel/composerxe-2011.1.107/man
# ipp
prepend-path    PATH                 /opt/intel/composerxe-2011.1.107/ipp/bin/intel64
prepend-path    LD_LIBRARY_PATH      /opt/intel/composerxe-2011.1.107/ipp/lib/intel64
# sourcechecker
prepend-path    PATH                 /opt/intel/composerxe-2011.1.107/bin/sourcechecker/bin/intel64
prepend-path    LD_LIBRARY_PATH      /opt/intel/composerxe-2011.1.107/bin/sourcechecker/lib/intel64

Note: intel changes packaging quite often, here are the installation instructions for the 11.1 compilers:

  • install RPMS (only on the login node) found in l_cproc_p_11.1.046_intel64 manually (using rpm -ivh):

    intel-cproc046-11.1-1.x86_64.rpm
    intel-cproidb046-11.1-1.x86_64.rpm
    intel-cprolib046-11.1-1.x86_64.rpm
    intel-cprolibdev046-11.1-1.x86_64.rpm
    intel-cprotbblib046-11.1-1.noarch.rpm
    intel-cprotbblibdev046-11.1-1.noarch.rpm
    intel-cprocsdk046-11.1-1.noarch.rpm
    intel-cproidbsdk046-11.1-1.noarch.rpm

    and from l_cprof_p_11.1.046_intel64:

    intel-cprof046-11.1-1.x86_64.rpm
    intel-cproflib046-11.1-1.x86_64.rpm
    intel-cprofsdk046-11.1-1.noarch.rpm
  • enable them (only on thul):

    . /opt/intel/Compiler/11.1/046/bin/intel64/ifortvars_intel64.sh
    . /opt/intel/Compiler/11.1/046/bin/intel64/iccvars_intel64.sh
  • build intel compatibility packages as rpmbuild (only on thul):

    cd ~/rpmbuild/SPECS
    rpmbuild -bb ${modules_usage} intel-redist.spec

Note: do not install the RPMS generated in the last step on the login node. They need to be installed only on compute nodes. On the login node only the module file needs to be deployed under ~rpmbuild/modulefiles, as rpmbuild. Note that this directory is available as svn checkout at https://svn.fysik.dtu.dk/projects/modulefiles/trunk. Here is what need to be done for a new version of the package:

mkdir ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
cp /scratch/rpmbuild/intel-11.1.046/11.1.046-1.intel64${disttag} ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
cd ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
ln -s 11.1.046-1.intel64${disttag} 11.1-1 # version < 12
ln -s 2011.1.107-1.intel64${disttag} 2011.1.107-1

Note: the above module file should contain at least:

prepend-path    LD_LIBRARY_PATH      /opt/intel/Compiler/11.1/046/lib/intel64
prepend-path    LD_LIBRARY_PATH      /opt/intel/Compiler/11.1/046/idb/lib/intel64
prepend-path    PATH                 /opt/intel/Compiler/11.1/046/bin/intel64
prepend-path    MANPATH              :
prepend-path    MANPATH              /opt/intel/Compiler/11.1/046/man

Note: intel changes packaging quite often, here are the installation instructions for the 10.1.015 compilers:

  • install RPMS (on the login and compute nodes) found in l_cc_p_10.1.015_intel64.tar.gz and l_fc_p_10.1.015_intel64.tar.gz manually (using rpm -ivh):

    intel-icce101015-10.1.015-1.em64t.rpm
    intel-iidbe101015-10.1.015-1.em64t.rpm
    intel-isubhe101015-10.1.015-1.em64t.rpm
    intel-iforte101015-10.1.015-1.em64t.rpm
  • replace the installation path in the scripts (action necessary only on the login node):

    files=`grep "<INSTALLDIR>" -r /opt/intel/cce/ | cut -d":" -f 1 | uniq`
    for file in $files;
    do
        echo $file
        sed -i 's#<INSTALLDIR>#/opt/intel/cce/10.1.015#g' $file
    done
    files=`grep "<INSTALLDIR>" -r /opt/intel/fce/ | cut -d":" -f 1 | uniq`
    for file in $files;
    do
        echo $file
        sed -i 's#<INSTALLDIR>#/opt/intel/fce/10.1.015#g' $file
    done
    files=`grep "<INSTALLDIR>" -r /opt/intel/idbe/ | cut -d":" -f 1 | uniq`
    for file in $files;
    do
        echo $file
        sed -i 's#<INSTALLDIR>#/opt/intel/idbe/10.1.015#g' $file
    done
  • provide the module file ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort/10.1.015-1.intel64${disttag}:

    prepend-path    LD_LIBRARY_PATH      /opt/intel/cce/10.1.015/lib
    prepend-path    LD_LIBRARY_PATH      /opt/intel/fce/10.1.015/lib
    
    prepend-path    PATH                 /opt/intel/cce/10.1.015/bin
    prepend-path    PATH                 /opt/intel/fce/10.1.015/bin
    prepend-path    PATH                 /opt/intel/idbe/10.1.015/bin
    prepend-path    MANPATH              :
    prepend-path    MANPATH              /opt/intel/cce/10.1.015/man
    prepend-path    MANPATH              /opt/intel/fce/10.1.015/man
    prepend-path    MANPATH              /opt/intel/idbe/10.1.015/man

    and the link:

    cd ~rpmbuild/modulefiles/${FYS_PLATFORM}/ifort
    ln -s 10.1.015-1.intel64${disttag} 10.1-1

Moreover: intel-*intel64* RPMS need to be installed with --nodeps, so move them into a special directory:

mkdir -p ~/${FYS_PLATFORM}/RPMS/nodeps
mv ~/${FYS_PLATFORM}/RPMS/intel-*intel64* ~/${FYS_PLATFORM}/RPMS/nodeps
intel mkl

Install mkl RPMS intel-mkl-*, intel-openmp-*, intel-compilerpro-* (intel-mkl, intel-mkllibdev, intel-mkllib for mkl version < 10.3), and build mkl compatibility package (only on thul):

# for mkl 10.3, as root
cd /opt/intel/mkl # packaging of mkl changes again so link is necessary
ln -s ../composerxe-2011.3.174/mkl/ 10.3.3.174
ln -s /opt/intel/composerxe-2011.3.174/man 10.3.3.174/man
# as rpmbuild
cd ~/rpmbuild/SOURCES
export mkl=10.3.3.174
mkdir ${mkl}
cp -rp /opt/intel/mkl/${mkl}/lib ${mkl}
cp -rpf /opt/intel/mkl/${mkl}/doc ${mkl} # for mkl < 10.3
cp -rpf /opt/intel/composerxe-2011.3.174/compiler/lib ${mkl} # for mkl >= 10.3
tar zcf intel-redist-mkl-${mkl}.tar.gz ${mkl}

cd ~/rpmbuild/SPECS # as rpmbuild
rpmbuild -bb --with version1=3 --with version2=3 --with version3=174 ${modules_usage} --with platform=intel64 intel-redist-mkl.spec
# **Warning**: mkl < 10.3 uses em64t
rpmbuild -bb --with version1=1 --with version2=3 --with version3=027 ${modules_usage} intel-redist-mkl.spec

Note: do not install the resulting RPM on the login node. It needs to be installed only on compute nodes. On the login node only the module file needs to be deployed under ~rpmbuild/modulefiles, as rpmbuild. Note that this directory is available as svn checkout at https://svn.fysik.dtu.dk/projects/modulefiles/trunk. Here is what need to be done for a new version of the package:

mkdir ~rpmbuild/modulefiles/${FYS_PLATFORM}/mkl
cp /tmp/intel-mkl-${mkl}/${mkl}-1${disttag}.em64t ~rpmbuild/modulefiles/${FYS_PLATFORM}/mkl
cd ~rpmbuild/modulefiles/${FYS_PLATFORM}/mkl
ln -s ${mkl}-1${disttag}.em64t 10.1p-027

Note: the above module file should contain at least:

prepend-path    LD_LIBRARY_PATH      /opt/intel/mkl/10.1.3.027/lib/em64t

Build mkl/fftw (as root):

export mkl=10.1.3.027
. /opt/intel/Compiler/11.0/083/bin/intel64/ifortvars_intel64.sh
cd /opt/intel/mkl/${mkl}/interfaces/fftw2xf
make libem64t
cd /opt/intel/mkl/${mkl}/lib/em64t
ln -s libfftw2xf_intel.a libfftw.a

Logout and login as rpmbuild.

Unfortunately, from 10.3 version mkl depends on intel libraries located in directories outside of mkl. This causes troubles for numpy which requires (is there a way to fix that?) all non-standard libraries to be located in one directory. Therefore one may need to create a link (currently not performed):

cd /opt/intel/mkl/10.3.4.191/lib/intel64
ln -s /opt/intel/composerxe-2011.4.191/compiler/lib/intel64/libiomp5.so .

openmpi

Build a custom openmpi, using torque support:

# openmpi-1.4.3
wget http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-1.4.3.tar.bz2 \
     -O ~/rpmbuild/SOURCES/openmpi-1.4.3.tar.bz2
module load open64/4.2.4-0
sh ./buildrpm-1.4.3-1.open64.4.2.4.sh ../SOURCES/openmpi-1.4.3.tar.bz2 2>&1 | tee buildrpm-1.4.3-1.open64.4.2.4.sh.log.${FYS_PLATFORM}
module unload open64/4.2.4-0

# openmpi-1.3.3
wget http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2 \
     -O ~/rpmbuild/SOURCES/openmpi-1.3.3.tar.bz2
sh ./buildrpm-1.3.3-1.gfortran.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.gfortran.sh.log.${FYS_PLATFORM}
sh ./buildrpm-1.3.3-1.gfortran43.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.gfortran43.sh.log.${FYS_PLATFORM}
sh ./buildrpm-1.3.3-1.pathscale.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.pathscale.sh.log.${FYS_PLATFORM}
sh ./buildrpm-1.3.3-1.ifort.11.0.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.ifort.11.0.sh.log.${FYS_PLATFORM} # thul only
sh ./buildrpm-1.3.3-1.ifort.11.1.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.ifort.11.1.sh.log.${FYS_PLATFORM} # thul only
module load g95
sh ./buildrpm-1.3.3-1.g95.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.g95.sh.log.${FYS_PLATFORM} # fjorm only
module unload g95
module load open64/4.2.1-0 # 24 June 2009: build fails on Nehalem with *configure: error: TM support requested but not found.  Aborting*
sh ./buildrpm-1.3.3-1.open64.4.2.1.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.open64.4.2.1.sh.log.${FYS_PLATFORM}
module unload open64/4.2.1-0
module load open64/4.2.3-0 # 24 June 2009: build fails on Nehalem with *configure: error: TM support requested but not found.  Aborting*
sh ./buildrpm-1.3.3-1.open64.4.2.3.sh ../SOURCES/openmpi-1.3.3.tar.bz2 2>&1 | tee buildrpm-1.3.3-1.open64.4.2.3.sh.log.${FYS_PLATFORM}
module unload open64/4.2.3-0

Note: intel openmpi needs to be installed ignoring dependencies:

rpm -ivh --nodeps --oldpackage ~rpmbuild/${FYS_PLATFORM}/RPMS/openmpi-1.3.3-1${disttag}.ifort.11.1.x86_64.rpm

acml

Note this package is not relocatable!

AMD Core Math Library contains optimized BLAS and LAPACK libraries for AMD opteron processors (work also on intel), and is available for download after registration.

Build the following RPMS:

. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.blas.acml.4.0.1.sh

. fys.build.acml.sh
#
. fys.set.Niflheim.pathscale.3.2.sh
. fys.set.blas.acml.4.0.1.sh

. fys.build.acml.sh
#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.blas.acml.4.3.0.sh

. fys.build.acml.sh
#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.blas.acml.4.3.0_mp.sh

. fys.build.acml.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.blas.acml.4.4.0.sh

. fys.build.acml.sh

#
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.blas.acml.4.4.0.sh

. fys.build.acml.sh
#
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.blas.acml.4.4.0.sh

. fys.build.acml.sh

Note problems with dgemm acml 4.1.0 and 4.2.0 have been reported. Moreover campos-dacapo built with acml-4-1-0-pathscale-64bit.tgz fails with "ZINSC 2 returned info= 2" for the following job:

#!/usr/bin/env python
from Dacapo import Calculator
from ASE.IO.xyz import ReadXYZ
from ASE.Dynamics.Langevin import Langevin

prefix = 'D'
atoms = ReadXYZ('32H2O.xyz')
L = 9.8553729
atoms.SetUnitCell([L, L, L], fix=True)
atoms.SetBoundaryConditions(True)
r = 1
atoms = atoms.Repeat([r, r, r])
n = 48 * r
calc = Calculator(nbands=128 * r**3, planewavecutoff=350,
                  densitycutoff=500, xc='PBE')
atoms.SetCalculator(calc)

from time import time
atoms.GetPotentialEnergy()
pos=atoms[0].GetCartesianPosition()
atoms[0].SetCartesianPosition(pos+0.005)
t0=time()
atoms.GetPotentialEnergy()
print time()-t0

Download 32H2O.xyz

goto

GotoBLAS contains optimized BLAS libraries.

Download GotoBLAS-1.26.tar.gz (Warning outdated release of GotoBLAS is no longer available) and GotoBLAS2-1.13_bsd.tar.gz (supports Nehalem) to ~/rpmbuild/SOURCES. The default build process searches your $PATH for available compilers. Priority order is PathScale, PGI, Intel, gfortran, g95 and g77, therefore setting compilers explicitly is needed.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh

(rpm_prefix=/usr && . fys.build.goto2.sh)

On Niflheim build RPMS (on the target compute node!) using the following command:

. fys.set.Niflheim.gfortran.4.1.2.sh

. fys.build.goto2.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh

. fys.build.goto2.sh

#
. fys.set.Niflheim.open64.4.2.3.sh

. fys.build.goto2.sh

#
. fys.set.Niflheim.open64.4.2.4.sh

. fys.build.goto2.sh

# older version of goto
#
blas_version=1.26
. fys.set.Niflheim.gfortran.4.1.2.sh

. fys.build.goto.sh

#
blas_version=1.26
. fys.set.Niflheim.gfortran43.4.3.2.sh

. fys.build.goto.sh

#
blas_version=1.26
. fys.set.Niflheim.pathscale.3.2.sh

. fys.build.goto.sh
#
blas_version=1.26
. fys.set.Niflheim.open64.4.2.1.sh

. fys.build.goto.sh
#
blas_version=1.26
. fys.set.Niflheim.open64.4.2.3.sh

. fys.build.goto.sh

Note - 1.26 version fails on Nehalem with:

../../../param.h:1195:21: error: division by zero in #if

atlas

Note this package is not relocatable!

On a custom system build the following RPMS:

blas_version=3.8.3
. fys.set.gfortran.default.sh
(rpm_prefix=/usr/local/atlas && default_version_usage="--with default_version" && . fys.build.atlas.sh)

On Niflheim build the following RPMS:

blas_version=3.8.3
. fys.set.Niflheim.gfortran.4.1.2.sh

. fys.build.atlas.sh

#
blas_version=3.8.3
. fys.set.Niflheim.gfortran43.4.3.2.sh

. fys.build.atlas.sh

Note: - 3.8.3 version fails on Opteron with open64 with:

/scratch/rpmbuild/ATLAS/RpmObjs/..//CONFIG/src/backend/comptestC.c:5: undefined reference to `__pathscale_malloc_alg'

rasmol

Required by campos-ase2.

Note that rasmol is built for 32bit architecture, so make sure that your system fulfills "BuildRequires" for both 64 and 32bit:

rpmbuild --nobuild RasMol.spec

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.RasMol.2.7.3.sh)

On Niflheim build the following RPMS:

. fys.build.RasMol.2.7.3.sh

cblas

Required by campos-ase2.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.blas.default.sh

(rpm_prefix=/usr && . fys.build.cblas.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.blas.acml.4.0.1.sh

. fys.build.cblas.sh

python-setuptools

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.setuptools.0.6c9.sh)

On Niflheim build the following RPMS:

. fys.build.setuptools.0.6c9.sh

If using modules:

module load python-setuptools

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-setuptools.sh

python-nose

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.nose.0.10.4.sh)

On Niflheim build the following RPMS:

. fys.build.nose.0.10.4.sh

If using modules:

module load python-nose

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-nose.sh

numpy

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.cblas.2.23.3.sh

 (rpm_prefix=/usr && . fys.build.numpy.1.3.0.sh)

On Niflheim build the following RPMS:

module load python-setuptools
module load python-nose

. fys.set.Niflheim.numpy.1.3.0.gfortran.4.1.2.acml.4.0.1.cblas.none.sh

. fys.build.numpy.1.3.0.sh

# only on thul
. fys.set.Niflheim.numpy.1.3.0.gfortran.4.1.2.mkl.10.1.3.027.cblas.mkl.10.1.3.027.sh

. fys.build.numpy.1.3.0.sh

# building using cblas/acml causes the test below to fail
. fys.set.Niflheim.numpy.1.3.0.gfortran.4.1.2.acml.4.0.1.cblas.2.23.3.sh

. fys.build.numpy.1.3.0.sh

After installing python-numeric make a very rough check:

  • is using modules:

    module load ${blas}-${compiler}64/${blas_version}-1${disttag}
    module load cblas-${blas}-${compiler}64/2.23.3-1${disttag}.${compiler}.${compiler_version}.${blas}.${blas_version}
    module load numpy/1.3.0-1${disttag}.${compiler}.${compiler_version}.python${python_version}.${blas}.${blas_version}.${lapack}.${lapack_version}
    python -c "import numpy; from numpy.core.multiarray import dot; b = numpy.ones(13, numpy.complex); dot(b, b)"
    python -c "import numpy; numpy.test()"
  • else, if not using the default "/usr" prefix:

    . /etc/profile.d/numpy.sh

gnuplot-py

Required by campos-ase2.

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.gnuplot-py.1.8.sh)

On Niflheim build the following RPMS:

. fys.build.gnuplot-py.1.8.sh

If using modules:

module load gnuplot-py

else, if not using the default "/usr" prefix:

. /etc/profile.d/gnuplot-py.sh

python-numeric

Required by campos-ase2.

Warning: on a 64-bit machine works only with python <= 2.4.

We must install 24.2 version, and we keep the default version:

cd ~/${FYS_PLATFORM}/RPMS/external
rpm -e --nodeps python-numeric # as root
yumdownloader --resolve --disableexcludes=main python-numeric
cd ~/rpmbuild/SPECS

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.cblas.2.23.3.sh

. fys.build.Numeric.24.2.sh

On Niflheim build the following RPMS:

. fys.set.Niflheim.Numeric.24.2.gfortran.4.1.2.acml.4.0.1.cblas.2.23.3.sh

. fys.build.Numeric.24.2.sh

Note: (16 Apr 2009) currently Numeric's test.py results in (we ignore this error):

glibc detected *** python: free(): invalid next size (normal): 0x09aee970 ***

After installing python-numeric make a very rough check:

  • is using modules:

    module load ${blas}-${compiler}64/${blas_version}-1${disttag}
    module load cblas-${blas}-${compiler}64/2.23.3-1${disttag}.${compiler}.${compiler_version}.${blas}.${blas_version}
    module load python-numeric/24.2-4${disttag}.${compiler}.${compiler_version}.python${python_version}.${blas}.${blas_version}.${lapack}.${lapack_version}
    python -c "import lapack_lite"
    ldd `rpm -ql python-numeric-24.2-4${disttag}.${compiler}.${compiler_version}.python${python_version}.${blas}.${blas_version}.${lapack}.${lapack_version} | grep lapack_lite.so`
    ldd `rpm -ql python-numeric-24.2-4${disttag}.${compiler}.${compiler_version}.python${python_version}.${blas}.${blas_version}.${lapack}.${lapack_version} | grep _dotblas.so`
  • else:

    . /etc/profile.d/python-numeric.sh
    python -c "import lapack_lite"
    ldd `rpm -ql python-numeric | grep lapack_lite.so`
    ldd `rpm -ql python-numeric | grep _dotblas.so`

and reinstall the default version:

rpm -ivh --oldpackage ~/${FYS_PLATFORM}/RPMS/external/python-numeric-23.*.rpm

hdf5

HDF5 is a data model, library, and file format for storing and managing data.

We prefer version 1.8.6.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.openmpi.default.sh

(rpm_prefix=/usr && . fys.build.hdf5.sh)

On Niflheim build the following RPMS:

#
module load open64/4.2.4-0
. fys.set.Niflheim.open64.4.2.4.sh
. fys.set.Niflheim.openmpi.1.4.3.sh

. fys.build.hdf5.1.8.6.sh
module unload open64/4.2.4-0

# older builds
#
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.hdf5.1.8.6.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.hdf5.1.8.6.sh

#
module load open64/4.2.3-0
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.hdf5.1.8.6.sh
module unload open64/4.2.4-0

# only on thul
module load ifort/11.1-1
. fys.set.Niflheim.ifort.11.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.hdf5.1.8.6.sh
module unload ifort/11.1-1

netcdf

NetCDF (network Common Data Form) is an interface for array-oriented data access and a library that provides an implementation of the interface. The NetCDF library also defines a machine-independent format for representing scientific data.

We prefer version 3.6.1 or higher (note that version 3.6.2 has fortran interface in libnetcdff.a).

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh

(rpm_prefix=/usr && . fys.build.netcdf4.4.0.1.sh)

On Niflheim build the following RPMS:

 #
 . fys.set.Niflheim.open64.4.2.4.sh
 . fys.set.Niflheim.netcdf4.4.1.2.sh

 . fys.build.netcdf4.4.1.2.sh

# older builds
#
 . fys.set.Niflheim.gfortran.4.1.2.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

 #
 . fys.set.Niflheim.gfortran43.4.3.2.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

 # only on fjorm
 . fys.set.Niflheim.pathscale.3.2.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

 # only on thul
 . fys.set.Niflheim.ifort.11.0.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

 # only on fjorm
 . fys.set.Niflheim.open64.4.2.1.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

 #
 . fys.set.Niflheim.open64.4.2.3.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh
 # only on thul
 . fys.set.Niflheim.ifort.11.1.sh
 . fys.set.Niflheim.netcdf4.4.0.1.sh

 . fys.build.netcdf4.4.0.1.sh

etsf_io

ETSF_IO
A library of F90 routines to read/write the ETSF file format has been written. It is called ETSF_IO and available under LGPL.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.netcdf.default.sh
. fys.set.hdf5.default.sh

(. fys.build.etsf_io.sh)

On Niflheim build the following RPMS:

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
hdf=none

. fys.build.etsf_io.sh

# Oct 4 2010:  fatal error: gfc_todo: Not Implemented: complex character array constructors
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
hdf=none

. fys.build.etsf_io.sh

# Oct 04 2010: tests/group_level failed
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
hdf=none

. fys.build.etsf_io.sh

# Apr 18 2010: tests/group_level failed
. fys.set.Niflheim.open64.4.2.4.sh
. fys.set.Niflheim.netcdf4.4.1.2.sh
hdf=none

. fys.build.etsf_io.sh

ScientificPython 2.6.2

Warning: version 2.6.2 required by campos-ase2. Later versions are needed by campos-ase3. Note that versions 2.6.2 and >= 2.8 are mutually exclusive if installed in the default "/usr" prefix.

On a custom system build the following RPMS:

. fys.set.ScientificPython.2.6.2.default.sh

(rpm_prefix=/usr && . fys.build.ScientificPython.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.ScientificPython.2.6.2.gfortran.4.1.2.openmpi.1.3.3.numeric.sh

. fys.build.ScientificPython.sh

ScientificPython 2.8 or later

Note that versions 2.6.2 and >= 2.8 are mutually exclusive if installed in the default "/usr" prefix.

Required by campos-ase3.

On a custom system build the following RPMS:

. fys.set.ScientificPython.2.8.default.sh

(rpm_prefix=/usr && . fys.build.ScientificPython.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.ScientificPython.2.8.gfortran.4.1.2.serial_version.only.numpy.sh

. fys.build.ScientificPython.sh

python-docutils

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.docutils.0.5.sh)

On Niflheim build the following RPMS:

. fys.build.docutils.0.5.sh

If using modules:

module load python-docutils

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-docutils.sh

pytz

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.pytz.2008g.sh)

On Niflheim build the following RPMS:

. fys.build.pytz.2008g.sh

If using modules:

module load pytz

else, if not using the default "/usr" prefix:

. /etc/profile.d/pytz.sh

python-dateutil

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.python-dateutil.1.4.1.sh)

On Niflheim build the following RPMS:

. fys.build.python-dateutil.1.4.1.sh

If using modules:

module load python-dateutil

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-dateutil.sh

python-matplotlib

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.python-matplotlib.sh)

On Niflheim build the following RPMS:

module load NUMPY
module load python-docutils
module load pytz
module load python-dateutil

. fys.build.python-matplotlib.1.0.1.sh

campos-ase2

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.ase2.2.3.13.sh)

On Niflheim build the following RPMS:

. fys.build.ase2.2.3.13.sh

fftw2

We use version 2.1.5.

On a custom system build the following RPMS:

. fys.set.fftw2.default.sh

(rpm_prefix=/usr && . fys.build.fftw2.2.1.5.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.gfortran.4.1.2.sh

. fys.build.fftw2.2.1.5.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh

. fys.build.fftw2.2.1.5.sh

#
. fys.set.Niflheim.pathscale.3.2.sh

. fys.build.fftw2.2.1.5.sh

# only on fjorm
. fys.set.Niflheim.open64.4.2.1.sh

. fys.build.fftw2.2.1.5.sh

#
. fys.set.Niflheim.open64.4.2.3.sh

. fys.build.fftw2.2.1.5.sh

#
. fys.set.Niflheim.open64.4.2.4.sh

. fys.build.fftw2.2.1.5.sh

# Note: 24 June 2009: ifort fails to build static fftw2
. fys.set.Niflheim.ifort.11.0.sh

. fys.build.fftw2.2.1.5.sh

campos-dacapo-pseudopotentials

Note this package is not relocatable! campos-dacapo-pseudopotentials

On a custom system build the following RPMS:

(default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.dacapo-pseudopotentials.1.sh)

On Niflheim build the following RPMS:

. fys.build.dacapo-pseudopotentials.1.sh

campos-dacapo-python

Requires campos-ase2.

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.dacapo-python.0.9.4.sh)

On Niflheim build the following RPMS:

. fys.build.dacapo-python.0.9.4.sh

campos-dacapo

Note: fftw version 3 is incompatible with dacapo.

If you build only a serial version add "--without parallel" to the rpmbuild options. Another useful option is "--without default_version" that does not put /etc/profile.d scripts, nor modules under /opt/modulefiles that allows the package to be relocatable.

Warning: currently (9 Oct 2008) packaging of openmpi on FC8/FC9 requires the following link to be made:

ln -s /usr/include/openmpi/1.2.4-gcc/32/mpif-config.h /usr/include/openmpi/1.2.4-gcc/mpif-config.h

Warning: currently (9 Oct 2008) the default build fails for EL4 due to double underlined symbols in the netcdf from ATrpms, however custom build (i.e. with building your own netcdf should work).

On a custom system build the following RPMS:

. fys.set.dacapo.default.sh
. fys.set.atlas.default.sh

(rpm_prefix=/usr && . fys.build.dacapo.sh)

# optional build using netlib blas/lapack
. fys.set.dacapo.default.sh

(rpm_prefix=/usr && . fys.build.dacapo.sh)

On Niflheim build the following RPMS:

#
. fys.set.Niflheim.dacapo.2.7.16.open64.4.2.4.openmpi.1.4.3.acml.4.4.0.acml.4.4.0.fftw2.sh
hdf=none

. fys.build.dacapo.sh

# older builds
#
. fys.set.Niflheim.dacapo.2.7.16.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.fftw2.sh

. fys.build.dacapo.sh

# only on fjorm
. fys.set.Niflheim.dacapo.2.7.16.open64.4.2.1.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.fftw2.sh

. fys.build.dacapo.sh

# only on thul
. fys.set.Niflheim.dacapo.2.7.16.gfortran43.4.3.2.openmpi.1.3.3.mkl.10.1.3.027.mkl.10.1.3.027.mkl.sh

. fys.build.dacapo.sh

# optional
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Nilfheim.openmpi.1.3.3.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
. fys.set.Niflheim.fftw2.2.1.5.sh
. fys.set.blas.default.sh
. fys.set.lapack.acml.sh

. fys.build.dacapo.sh

# optional
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Nilfheim.openmpi.1.3.3.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
. fys.set.Niflheim.fftw2.2.1.5.sh
. fys.set.blas.acml.4.3.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.lapack.acml.sh

. fys.build.dacapo.sh

# optional
. fys.set.Niflheim.open64.4.2.1.sh
. fys.set.Nilfheim.openmpi.1.3.3.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
. fys.set.Niflheim.fftw2.2.1.5.sh
. fys.set.blas.acml.4.3.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.lapack.acml.sh

. fys.build.dacapo.sh

# optional # only on thul # multinode jobs fail
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.Nilfheim.openmpi.1.3.3.sh
. fys.set.Niflheim.netcdf4.4.0.1.sh
. fys.set.Niflheim.mkl.10.1.3.027.sh

. fys.build.dacapo.sh

fftw3

On a custom system build the following RPMS:

. fys.set.fftw3.default.sh

(rpm_prefix=/usr && . fys.build.fftw3.3.2.1.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.gfortran.4.1.2.sh

. fys.build.fftw3.3.2.1.sh
#
. fys.set.Niflheim.gfortran43.4.3.2.sh

. fys.build.fftw3.3.2.1.sh
#
. fys.set.Niflheim.open64.4.2.3.sh

. fys.build.fftw3.3.2.1.sh
# only on thul
. fys.set.Niflheim.ifort.11.1.sh

. fys.build.fftw3.3.2.1.sh

scipy

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.cblas.2.23.3.sh
. fys.set.fftw3.default.sh
. fys.set.suitesparse.default.sh

(rpm_prefix=/usr && . fys.build.scipy.0.7.0.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.scipy.0.7.0.gfortran.4.1.2.blas.lapack.cblas.2.23.3.sh

. fys.build.scipy.0.7.0.sh

# optional - not tested!
. fys.set.Niflheim.scipy.0.7.0.gfortran.4.1.2.acml.4.0.1.cblas.2.23.3.sh

. fys.build.scipy.0.7.0.sh

povray

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.povray.sh)

On Niflheim build the following RPMS:

. fys.build.povray.sh

babel

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.Babel.0.9.4.sh)

On Niflheim build the following RPMS:

. fys.build.Babel.0.9.4.sh

If using modules:

module load babel

else, if not using the default "/usr" prefix:

. /etc/profile.d/babel.sh

python-jinja2

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.Jinja2.2.1.1.sh)

On Niflheim build the following RPMS:

. fys.build.Jinja2.2.1.1.sh

If using modules:

module load python-jinja2

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-jinja2.sh

python-pygments

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.Pygments.1.0.sh)

On Niflheim build the following RPMS:

. fys.build.Pygments.1.0.sh

If using modules:

module load python-pygments

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-pygments.sh

python-sphinx

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.Sphinx.0.6.1.sh)

On Niflheim build the following RPMS:

. fys.build.Sphinx.0.6.1.sh

If using modules:

module load python-sphinx

else, if not using the default "/usr" prefix:

. /etc/profile.d/python-sphinx.sh

auctex

Build the following RPMS:

cd ~/rpmbuild/SOURCES&& wget http://ftp.gnu.org/pub/gnu/auctex/auctex-11.86.tar.gz
cd ~/rpmbuild/SPECS

rpmbuild -bb auctex.spec

campos-ase3

On a custom system build the following RPMS:

(rpm_prefix=/usr && . fys.build.ase3.sh)

On Niflheim build the following RPMS:

module load NUMPY
. fys.build.ase3.sh

Snapshot package is built with, e.g.:

major_version=3
version1=2
version2=0
version_svn=1066
release=${major_version}.${version1}.${version2}.${version_svn}/1${disttag}.python${python_version}
rpmbuild -bb --with major_version=${major_version} --with version1=${version1} --with version2=${version2} --with version_svn=${version_svn} --with keep_install=1 \
             ${modules_usage} --with default_version -with system=${rpm_platform} \
             --with python_version=${python_version} \
             --with prefix=/home/camp/rpmbuild/opt/Intel-Nehalem-el5/campos-ase3/${release} campos-ase3.spec
rm /home/camp/rpmbuild/Intel-Nehalem-el5/RPMS/campos-ase3-${major_version}.${version1}.${version2}.${version_svn}-1${disttag}.python${python_version}.x86_64.rpm
dir=~/Intel-Nehalem-el5/BUILD/campos-ase3-${major_version}.${version1}.${version2}.${version_svn}-1${disttag}.python${python_version}-root
ln -s ${dir}/etc/modulefiles/campos-ase3/${major_version}.${version1}.${version2}.${version_svn}-1${disttag}.python${python_version} \
   ~/Intel-Nehalem-el5/modulefiles.testing/campos-ase3
ln -s ${dir}/home/camp/rpmbuild/opt/Intel-Nehalem-el5/campos-ase3/${major_version}.${version1}.${version2}.${version_svn} ~/opt/Intel-Nehalem-el5/campos-ase3

blacs

BLACS is used by ScaLapack.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.openmpi.default.sh

(rpm_prefix=/usr && . fys.build.blacs.sh)

On Niflheim build the following RPMS:

. fys.set.Niflheim.open64.4.2.4.sh
. fys.set.Niflheim.openmpi.1.4.3.sh

. fys.build.blacs.sh

# older builds
#
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.pathscale.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.open64.4.2.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

#
. fys.set.Niflheim.ifort.11.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh

. fys.build.blacs.sh

scalapack

SCALAPACK.

On a custom system build the following RPMS:

. fys.set.gfortran.default.sh
. fys.set.openmpi.default.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.blacs.1.1.sh

(rpm_prefix=/usr && . fys.build.scalapack.sh)

On Niflheim build the following RPMS:

#
. fys.set.Niflheim.open64.4.2.4.sh
. fys.set.Niflheim.openmpi.1.4.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.open64.4.2.4.sh
. fys.set.Niflheim.openmpi.1.4.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto2.1.13.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran.4.1.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.0.1.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

# older builds
#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.3.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto2.1.13.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh
#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.3.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.open64.4.2.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.3.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

# only on fjorm
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh
#
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto2.1.13.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh
#
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.Niflheim.atlas.3.8.3.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

# only on thul
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

# only on thul
. fys.set.Niflheim.ifort.11.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh

. fys.build.scalapack.sh

PDSYEVRnew

  • PDSYEVRnew ScaLAPACK's new parallel MRRR algorithm for computing eigenpairs of large real symmetric or complex Hermitian matrices.

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.blas.acml.4.3.0.sh
    . fys.set.lapack.acml.sh
    . fys.set.Niflheim.blacs.1.1.sh
    . fys.set.Niflheim.scalapack.1.8.0.sh
    
    . fys.build.PDSYEVRnew.sh
    
    #
    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.blas.acml.4.3.0.sh
    . fys.set.lapack.acml.sh
    . fys.set.Niflheim.goto.1.26.sh
    . fys.set.Niflheim.blacs.1.1.sh
    . fys.set.Niflheim.scalapack.1.8.0.sh
    
    . fys.build.PDSYEVRnew.sh

campos-gpaw-setups

Note this package is not relocatable!

On a custom system build the following RPMS:

(default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.gpaw-setups.sh)

On Niflheim build the following RPMS:

. fys.build.gpaw-setups.sh

campos-gpaw

On a custom system build the following RPMS:

# March 3 2010: results in "orthogonalization failed" with EPEL's atlas on el5.x64_64 and i386.
. fys.set.gpaw.default.sh
. fys.set.atlas.default.sh

(rpm_prefix=/usr && . fys.build.gpaw.sh)

# optional build using netlib blas/lapack
. fys.set.gpaw.default.sh

(rpm_prefix=/usr && . fys.build.gpaw.sh)

On Niflheim load first the required modules:

module load ASE3
module load campos-gpaw-setups

and build the following RPMS:

. fys.set.Niflheim.gpaw.0.6.5147.open64.4.2.4.openmpi.1.4.3.goto2.1.13.acml.4.4.0.sh

. fys.build.gpaw.sh

# older builds
#
. fys.set.Niflheim.gpaw.0.6.5147.open64.4.2.3.openmpi.1.3.3.goto2.1.13.acml.4.4.0.sh

. fys.build.gpaw.sh
#
. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.sh

. fys.build.gpaw.sh

# only on fjorm
. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.goto.1.26.acml.4.4.0.sh

. fys.build.gpaw.sh

Optional builds:

. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh

. fys.build.gpaw.sh
#
. fys.set.Niflheim.gpaw.0.6.5147.gfortran.4.1.2.openmpi.1.3.3.acml.4.0.1.acml.4.0.1.sh

. fys.build.gpaw.sh

# default gfortran and netlib blas/lapack/scalapack
. fys.set.Niflheim.gpaw.0.6.5147.gfortran.4.1.2.openmpi.1.3.3.acml.4.0.1.acml.4.0.1.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# latest gfortran and netlib blas/lapack/scalapack
. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
. fys.set.blas.default.sh
. fys.set.lapack.default.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# atlas - gpaw-test fails for diagonalization on fjorm el5 x86_64 18 Jan 2010
. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
. fys.set.Niflheim.atlas.3.8.3.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# atlas - gpaw-test fails for diagonalization on fjorm el5 x86_64 18 Jan 2010
. fys.set.Niflheim.gpaw.0.6.5147.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
. fys.set.Niflheim.atlas.3.8.3.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

#
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto2.1.13.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# only on fjorm
# note gpaw version 0.6 --with sl_init_second_underscore=1 is necessary for rpmbuild
. fys.set.Niflheim.pathscale.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.0.1.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# only on fjorm
# note gpaw version 0.6 --with sl_init_second_underscore=1 is necessary for rpmbuild
. fys.set.Niflheim.open64.4.2.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.0.1.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

**Note**: open64 compiler fails with::

/usr/bin/ld: /opt/open64/4.2.1/lib/gcc-lib/x86_64-open64-linux/4.2.1/libmv.a(vcos.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/opt/open64/4.2.1/lib/gcc-lib/x86_64-open64-linux/4.2.1/libmv.a: could not read symbols: Bad value

# only on fjorm
# note gpaw version 0.6 --with sl_init_second_underscore=1 is necessary for rpmbuild
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.goto.1.26.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

#
# note gpaw version 0.6 --with sl_init_second_underscore=1 is necessary for rpmbuild
. fys.set.Niflheim.open64.4.2.3.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# only on thul
. fys.set.Niflheim.ifort.11.1.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# only on thul
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.blas.acml.4.4.0.sh
. fys.set.lapack.acml.sh
. fys.set.Niflheim.blacs.1.1.sh
. fys.set.Niflheim.scalapack.1.8.0.sh

. fys.build.gpaw.sh

# only on thul # fails on thul
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.Niflheim.mkl.10.2.4.032.sh

. fys.build.gpaw.sh

# only on thul # fails on thul
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.Niflheim.mkl.10.2.1.017.sh

. fys.build.gpaw.sh

# only on thul # fails on thul
. fys.set.Niflheim.ifort.11.0.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.Niflheim.mkl.10.1.3.027.sh

. fys.build.gpaw.sh

# only on thul # fails on thul
. fys.set.Niflheim.gfortran43.4.3.2.sh
. fys.set.Niflheim.openmpi.1.3.3.sh
. fys.set.Niflheim.mkl.10.1.3.027.sh

. fys.build.gpaw.sh

Asap

On a custom system build the following RPMS:

. fys.set.Asap.default.sh

(rpm_prefix=/usr && . fys.build.Asap.sh)

On Niflheim build the following RPMS:

#
module load ASE3
. fys.set.Niflheim.Asap.3.2.6.open64.4.2.4.openmpi.1.4.3.sh

. fys.build.Asap.sh

#
module load ASE3
. fys.set.Niflheim.Asap.3.2.6.open64.4.2.3.openmpi.1.3.3.sh

. fys.build.Asap.sh

# only on fjorm
module load ASE3
. fys.set.Niflheim.Asap.3.2.6.pathscale.3.2.openmpi.1.3.3.sh

. fys.build.Asap.sh

# only on thul
module load ASE3
module load ifort/11.1-1
. fys.set.Niflheim.Asap.3.2.6.ifort.11.1.openmpi.1.3.3.sh

. fys.build.Asap.sh

abinit

On a custom system build the following RPMS:

(default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.abinit-pseudopotentials.1.sh)

On Niflheim build the following RPMS:

. fys.build.abinit-pseudopotentials.1.sh
  • abinit

    abinit is a Density Functional Theory (DFT) package with pseudopotentials and a planewave basis.

    On a custom system build the following RPMS:

    . fys.set.abinit.5.4.4p.default.sh
    . fys.set.atlas.default.sh
    
    (rpm_prefix=/usr && . fys.build.abinit.5.4.4p.sh)

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.abinit.5.4.4p.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.fftw3.sh
    hdf=none
    
    . fys.build.abinit.5.4.4p.sh

siesta

siesta-pseudopotentials-2.tar.gz

  • siesta pseudopotentials

    Build the following RPMS:

    cd ~/rpmbuild/SOURCES&& wget --no-check-certificate \
    "https://wiki.fysik.dtu.dk/niflheim/Cluster_software_-_RPMS?action=AttachFile&do=get&target=siesta-pseudopotentials-2.tar.gz" \
    -O siesta-pseudopotentials-2.tar.gz
    cd ~/rpmbuild/SPECS
    
     rpmbuild -bb ${modules_usage} --with default_version siesta-pseudopotentials.spec
  • siesta

    siesta (Spanish Initiative for Electronic Simulations with Thousands of Atoms) is both a method and its computer program implementation, to perform electronic structure calculations and ab initio molecular dynamics simulations of molecules and solids.

    Build the following RPMS:

    cd ~/rpmbuild/SPECS
    
    major_version=2
    version1=0
    
    compiler=gfortran43
    compiler_version=4.3.2
    compiler_libdir=/usr/lib64
    compiler_bindir=/usr/bin
    blas=acml
    blas_version=4.3.0
    blasdir=/opt/${blas}/${blas_version}/${compiler}64/lib
    lapack=acml
    lapack_version=4.3.0
    lapackdir=/opt/${lapack}/${lapack_version}/${compiler}64/lib
    netcdf=netcdf4
    netcdf_includedir=/opt/${netcdf}/4.0.1/1${disttag}.${compiler}.${compiler_version}/include
    netcdf_libdir=/opt/${netcdf}/4.0.1/1${disttag}.${compiler}.${compiler_version}/lib64
    openmpi_version=1.3.3
    ompi_libdir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/lib64
    ompi_includedir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/include
    ompi_bindir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/bin
    blacs=blacs
    blacsdir=/opt/blacs/1.1/24${disttag_network}.${compiler}.${compiler_version}.openmpi.${openmpi_version}/lib64
    scalapack=scalapack
    scalapackdir=/opt/scalapack/1.8.0/1${disttag_network}.${compiler}.${compiler_version}.openmpi.${openmpi_version}.${blas}.${blas_version}.${lapack}.${lapack_version}/lib64
    release=1${disttag_network}.${compiler}.${compiler_version}.openmpi.${openmpi_version}.${blas}.${blas_version}.${lapack}.${lapack_version}
    
    rpmbuild --bb  --with major_version=${major_version} --with version1=${version1} \
                   --with blas=${blas} --with blas_version=${blas_version} --with blasdir=${blasdir} \
                   --with compiler=${compiler} --with compiler_version=${compiler_version} \
                   --with compiler_bindir=${compiler_bindir} --with compiler_libdir=${compiler_libdir} \
                   --with lapack=${lapack} --with lapack_version=${lapack_version} --with lapackdir=${lapackdir} \
                   --with netcdf=${netcdf} --with netcdf_includedir=${netcdf_includedir} --with netcdf_libdir=${netcdf_libdir} \
                   --with parallel=1 --with openmpi=openmpi --with openmpi_version=${openmpi_version} \
                   --with ompi_libdir=${ompi_libdir} --with ompi_includedir=${ompi_includedir} --with ompi_bindir=${ompi_bindir} \
                   --with blacs=${blacs} --with blacsdir=${blacsdir} \
                   --with scalapack=${scalapack} --with scalapackdir=${scalapackdir} \
                   ${modules_usage} --with default_version=1 \
                   --with system=${rpm_platform} \
                   --with prefix=/opt/siesta${major_version}/${major_version}.${version1}/${release} siesta.spec

espresso

Note this package is not relocatable!

quantum espresso

  • espresso pseudopotentials

    On a custom system build the following RPMS:

    (default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.espresso_pp.sh)

    On Niflheim build the following RPMS:

    . fys.build.espresso_pp.sh
  • espresso

    Note March 04 2010: version 4.0.5 does not compile with gfortran >= 4.4 (?)

    Note March 04 2010: version 4.1.2 results in and "STOP 1" status for tests if EXX is enabled

    On a custom system build the following RPMS:

    . fys.set.espresso.4.1.2.default.sh
    
    (rpm_prefix=/usr && . fys.build.espresso.sh)
    
    #  March 06 2010 fc12, el5 with atlas gives for atom-lsda.in: On entry to DSYGVX parameter number 20 had an illegal value
    . fys.set.espresso.4.1.2.default.sh
    . fys.set.atlas.default.sh
    
    (rpm_prefix=/usr && . fys.build.espresso.sh)

    On Niflheim build the following RPMS:

    # version used with yambo 3.2.1.426M - enable EXX in the spec file!
    . fys.set.Niflheim.espresso.4.0.5.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
    
    . fys.build.espresso.sh

yambo

  • yambo

    yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics. Yambo relies on the Kohn-Sham wavefunctions generated by two DFT public codes: abinit, and PWscf. This build creates interfaces to abinit and PWscf.

    On a custom system build the following RPMS:

    . fys.set.yambo.default.sh
    . fys.set.atlas.default.sh
    
    (rpm_prefix=/usr && . fys.build.yambo.sh)

    On Niflheim build the following RPMS:

    # Nov 15 2010: ETSF compilation part fails with "Error: Symbol 'default_tel' at (1) has no IMPLICIT type": see http://www.yambo-code.org/forum/viewtopic.php?f=1&t=266
    . fys.set.Niflheim.yambo.3.2.3.16.gfortran43.4.3.2.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.sh
    hdf=none
    
    . fys.build.yambo.sh
    #
    . fys.set.Niflheim.yambo.3.2.1.448.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
    hdf=none
    
    . fys.build.yambo.sh
    
    # special yambo 3.2.1.426M
    . fys.set.Niflheim.yambo.3.2.1.426M.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.sh
    hdf=none
    
    . fys.build.yambo.sh
  • yambo NON-GPL

    This is a NON-GPL version of yambo.

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.yambo-ngpl.3.2.3.735M.gfortran43.4.3.2.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.sh
    hdf=none
    
    . fys.build.yambo.sh

elk

elk

  • elk species

    Note this package is not relocatable!

    On a custom system build the following RPMS:

    (default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.elk-species.sh)

    On Niflheim build the following RPMS:

    . fys.build.elk-species.sh
  • elk

    On a custom system build the following RPMS:

    . fys.set.gfortran.default.sh
    . fys.set.openmpi.default.sh
    . fys.set.blas.default.sh
    . fys.set.lapack.default.sh
    
    (rpm_prefix=/usr && thread_mode=mp && . fys.build.elk.sh)

    On Niflheim build the following RPMS:

    # OpenMP with MPI version
    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.blas.acml.4.3.0_mp.sh
    . fys.set.lapack.acml.sh
    
    (thread_mode=mp && . fys.build.elk.sh)
    
    # OpenMP version
    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.blas.acml.4.3.0_mp.sh
    . fys.set.lapack.acml.sh
    
    (thread_mode=mp && . fys.build.elk.sh)
    
    # MPI version
    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.blas.acml.4.4.0.sh
    . fys.set.lapack.acml.sh
    
    (thread_mode=nomp && . fys.build.elk.sh)

vtk

  • cmake

    Build the following RPMS:

    cd ~/rpmbuild/SOURCES&& wget http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz
    cd ~/rpmbuild/SOURCES&& wget "http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c Super Stable/1.06.35/xmlrpc-c-1.06.35.tgz"
    cd ~/rpmbuild/SPECS
    
    rpmbuild -bb --with bootstrap --without gui cmake.spec  # install the resulting RPM
    rpmbuild -bb xmlrpc-c.spec # install the resulting RPM
    rpm -e cmake
    rpmbuild -bb --without gui cmake.spec # install the resulting RPM
  • vtkdata

    Build the following RPMS:

    cd ~/rpmbuild/SOURCES&& wget http://www.vtk.org/files/release/5.4/vtkdata-5.4.2.tar.gz
    cd ~/rpmbuild/SPECS
    
    rpmbuild -bb --with version1=4 --with version2=2 ${modules_usage} --with default_version=1 \
             --with prefix=/opt/vtkdata/5.4.2/1${disttag} vtkdata.spec
  • vtk

    Build the following RPMS:

    cd ~/rpmbuild/SOURCES&& wget http://www.vtk.org/files/release/5.4/vtk-5.4.2.tar.gz
    cd ~/rpmbuild/SPECS
    
    compiler=gfortran
    compiler_version=4.1.2
    compiler_libdir=/usr/lib64
    compiler_bindir=/usr/bin
    openmpi_version=1.3.3
    ompi_libdir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/lib64
    ompi_includedir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/include
    ompi_bindir=/opt/openmpi/${openmpi_version}-1${disttag_network}.${compiler}.${compiler_version}/bin
    
    rpmbuild -bb   --without qt4 --with version1=4 --with version2=2 \
                   --with compiler=${compiler} --with compiler_version=${compiler_version} \
                   --with compiler_bindir=${compiler_bindir} --with compiler_libdir=${compiler_libdir} \
                   --with parallel=1 --with openmpi=openmpi --with openmpi_version=${openmpi_version} \
                   --with ompi_libdir=${ompi_libdir} --with ompi_includedir=${ompi_includedir} --with ompi_bindir=${ompi_bindir} \
                   ${modules_usage} --with default_version=1 \
                   --with system=${rpm_platform} \
                   --with python_version=${python_version} \
                   --with prefix=/opt/vtk/5.4.2/1${disttag_network}.${compiler}.${compiler_version}.python${python_version}.openmpi.${openmpi_version} vtk.spec

octopus

  • octopus

    Note March 15 2010: gfortran 4.1.2 on el5: Segmentation fault

    On a custom system build the following RPMS:

    . fys.set.octopus.default.sh
    . fys.set.atlas.default.sh
    
    (rpm_prefix=/usr && . fys.build.octopus.3.2.0.sh)

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.gfortran43.4.3.2.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.Niflheim.netcdf4.4.0.1.sh
    . fys.set.Niflheim.fftw3.3.2.1.sh
    . fys.set.blas.acml.4.3.0.sh
    . fys.set.lapack.acml.sh
    . fys.set.gsl.default.sh
    . fys.set.arpack.default.sh
    
    . fys.build.octopus.3.2.0.sh

TAU

  • pdtoolkit

    Program Database Toolkit is a framework for analyzing source code written in several programming languages and for making rich program knowledge accessible to developers of static and dynamic analysis tools. PDT is required by TAU.

    On a custom system build the following RPMS:

    . fys.set.gfortran.default.sh
    
    (rpm_prefix=/opt/pdtoolkit && . fys.build.pdtoolkit.sh)

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.gfortran.4.1.2.sh
    
    . fys.build.pdtoolkit.sh
    #
    . fys.set.Niflheim.gfortran43.4.3.2.sh
    
    . fys.build.pdtoolkit.sh
  • tau

    TAU Performance System® is a portable profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, Java, Python.

    On a custom system build the following RPMS:

    . fys.set.gfortran.default.sh
    . fys.set.openmpi.default.sh
    
    (rpm_prefix=/opt/tau && . fys.build.tau.sh)

    On Niflheim build the following RPMS:

    pdtoolkit_version=3.15
    
    module purge
    unset PDTROOT
    . fys.set.Niflheim.gfortran.4.1.2.sh
      module load PDTOOLKIT/${pdtoolkit_version}-1.el5.fys.${compiler}.${compiler_version}.python${python_version}
    . fys.set.Niflheim.openmpi.1.3.3.sh
    
    . fys.build.tau.sh
    #
    module purge
    unset PDTROOT
    . fys.set.Niflheim.gfortran43.4.3.2.sh
      module load PDTOOLKIT/${pdtoolkit_version}-1.el5.fys.${compiler}.${compiler_version}.python${python_version}
    . fys.set.Niflheim.openmpi.1.3.3.sh
    
    . fys.build.tau.sh

vasp

Installed with restricted access under vasp UNIX group (needs te be created in advance).

  • vasp potentials

    Download potpaw/potcar.date.tar, potpaw_GGA/potcar.date.tar, and potpaw_PBE/potcar.date.tar to ~/rpmbuild/SOURCES. Create links to the downloaded files so the files are named explicitly with the string date (not the actual dates), for example:

    ls -al ~/rpmbuild/SOURCES/potpaw_*potcar.date.tar
    lrwxrwxrwx 1 rpmbuild campnone   29 Sep 25 17:15 ../SOURCES/potpaw_GGA_potcar.date.tar -> potpaw_GGA/potcar.06Feb03.tar
    lrwxrwxrwx 1 rpmbuild campnone   29 Sep 25 17:14 ../SOURCES/potpaw_PBE_potcar.date.tar -> potpaw_PBE/potcar.05Feb03.tar
    lrwxrwxrwx 1 rpmbuild campnone   25 Sep 25 17:14 ../SOURCES/potpaw_potcar.date.tar -> potpaw/potcar.05Feb03.tar

    Note this package is not relocatable!

    On a custom system build the following RPMS:

    (default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.vasp-potpaw.sh)

    On Niflheim build the following RPMS:

    . fys.build.vasp-potpaw.sh
  • vasp

    vasp. Download vasp.5.X.Y.tar.gz and vasp.5.lib.tar.gz to ~/rpmbuild/SOURCES. Optionally download also vtstcode.tar.gz from http://theory.cm.utexas.edu/vtsttools/downloads/.

    On a custom system build the following RPMS:

    # Compile with VASP TST library: http://theory.cm.utexas.edu/vtsttools/downloads/
    hdf=none
    tst=false # or true
    
    . fys.set.vasp.5.2.11.default.sh
    
    (rpm_prefix=/usr && . fys.build.vasp.sh)

    On Niflheim build the following RPMS:

    # Compile with VASP TST library: http://theory.cm.utexas.edu/vtsttools/downloads/
    hdf=none
    tst=false # or true
    
    . fys.set.Niflheim.vasp.5.2.11.gfortran.4.1.2.openmpi.1.3.3.acml.4.0.1.acml.4.0.1.fftw3.sh
    
    . fys.build.vasp.sh
    #
    # 25 Sep 2009: segmentation fault when compiling dipol.f90
    hdf=none
    tst=false # or true
    
    . fys.set.Niflheim.vasp.5.2.2.gfortran43.4.3.2.openmpi.1.3.3.acml.4.3.0.acml.4.3.0.fftw3.sh
    
    . fys.build.vasp.sh
    #
    # 11 May 2010: in dfast.f90"LINCOM" is the name of this program unit, therefore it must not be use associated from module "DFAST".
    hdf=none
    tst=false # or true
    
    . fys.set.Niflheim.vasp.5.2.2.open64.4.2.3.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.fftw3.sh
    
    . fys.build.vasp.sh
    #
    # only on thul
    # 15 Feb 2011: forrtl: severe (174): SIGSEGV, segmentation fault occurred during DAV
    hdf=none
    tst=false # or true
    
    . fys.set.Niflheim.vasp.5.2.11.ifort.11.1.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.fftw3.sh
    
    . fys.build.vasp.sh

exciting

  • exciting species

    Note this package is not relocatable!

    On a custom system build the following RPMS:

    (default_version_usage="--with default_version" && modules_usage="--without modules" && . fys.build.exciting-species.9.10.sh)

    On Niflheim build the following RPMS:

    . fys.build.exciting-species.9.10.sh
  • exciting

    Note: currently (24 Nov 2009) perl-XML-SAX-0.14-5 is broken https://bugzilla.redhat.com/show_bug.cgi?id=438291 on EL5; if exciting's tests complain about:

    could not find ParserDetails.ini

    do as root:

    perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"

    On a custom system build the following RPMS:

    # March 12 2010: build fails on el5 with gfortran 4.1.2 and 4.3.2
    . fys.set.gfortran.default.sh
    . fys.set.openmpi.default.sh
    . fys.set.arpack.default.sh
    . fys.set.atlas.default.sh
    
    (rpm_prefix=/usr && thread_mode=nomp && . fys.build.exciting.9.10.sh)
    
    # March 12 2010: build fails on el5 with gfortran 4.1.2 and 4.3.2
    . fys.set.gfortran.default.sh
    . fys.set.openmpi.default.sh
    . fys.set.arpack.default.sh
    . fys.set.blas.default.sh
    . fys.set.lapack.default.sh
    
    (rpm_prefix=/usr && thread_mode=nomp && . fys.build.exciting.9.10.sh)

    On Niflheim build the following RPMS:

    # only on fjorm
    . fys.set.Niflheim.g95.0.91.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.blas.acml.4.3.0_mp.sh
    . fys.set.lapack.acml.sh
    
    (thread_mode=mp && . fys.build.exciting.9.10.sh)
    
    # only on thul
    . fys.set.Niflheim.ifort.11.0.sh
    . fys.set.Niflheim.openmpi.1.3.3.sh
    . fys.set.Niflheim.mkl.10.1.3.027.sh
    
    (thread_mode=nomp && . fys.build.exciting.9.10.sh)

fleur

  • fleur

    fleur. Download the source to ~/rpmbuild/SOURCES.

    On a custom system build the following RPMS:

    . fys.set.fleur.default.sh
    
    (rpm_prefix=/usr && . fys.build.fleur.sh)

    On Niflheim build the following RPMS:

    . fys.set.Niflheim.fleur.v26b.gfortran43.4.3.2.openmpi.1.3.3.acml.4.4.0.acml.4.4.0.sh
    
    . fys.build.fleur.sh
    # only on thul # Sep 04 2010: build fails with forrtl: severe (174): SIGSEGV, segmentation fault occurred
    . fys.set.Niflheim.fleur.v26b.ifort.11.0.openmpi.1.3.3.mkl.10.1.3.027.mkl_lapack.10.1.3.027.sh
    
    . fys.build.fleur.sh

gulp

Installed with restricted access under gulp UNIX group (needs te be created in advance).

  • gulp

    gulp. Download gulp.3.4.source.tar.gz ~/rpmbuild/SOURCES.

    Build the following RPMS:

    major_version=3
    version1=4
    
    cd ~/rpmbuild/SPECS
    thread_mode=nomp
    
    compiler=gfortran43
    compiler_version=4.3.2
    compiler_libdir=/usr/lib64
    compiler_bindir=/usr/bin
    blas=acml
    blas_version=4.3.0
    blasdir=/opt/${blas}/${blas_version}/${compiler}64/lib
    lapack=acml
    lapack_version=4.3.0
    lapackdir=/opt/${lapack}/${lapack_version}/${compiler}64/lib
    release=1${disttag}.${compiler}.${compiler_version}.${thread_mode}.${blas}.${blas_version}.${lapack}.${lapack_version}
    
    rpmbuild --bb  --with major_version=${major_version} --with version1=${version1} \
                   --with blas=${blas} --with blas_version=${blas_version} --with blasdir=${blasdir} \
                   --with compiler=${compiler} --with compiler_version=${compiler_version} \
                   --with compiler_bindir=${compiler_bindir} --with compiler_libdir=${compiler_libdir} \
                   --with lapack=${lapack} --with lapack_version=${lapack_version} --with lapackdir=${lapackdir} \
                   --with thread_mode=${thread_mode} --with parallel=1 \
                   ${modules_usage} --with default_version=1 \
                   --with system=${rpm_platform} \
                   --with prefix=/opt/gulp/${major_version}.${version1}/${release} gulp.spec
    
    # multithreaded
    thread_mode=mp
    compiler=gfortran43
    compiler_version=4.3.2
    compiler_libdir=/usr/lib64
    compiler_bindir=/usr/bin
    blas=acml
    blas_version=4.3.0
    blasdir=/opt/${blas}/${blas_version}/${compiler}64_${thread_mode}/lib
    lapack=acml
    lapack_version=4.3.0
    lapackdir=/opt/${lapack}/${lapack_version}/${compiler}64_${thread_mode}/lib
    release=1${disttag}.${compiler}.${compiler_version}.${thread_mode}.${blas}.${blas_version}.${lapack}.${lapack_version}
    
    !rpmbuild # as rpmbuild above

cmr

Computational Materials Repository.

On a custom system build the following RPMS:

(rpm_prefix=/usr && rpmbuild -bb ${default_version_usage} ${modules_usage} cmr.spec)

On Niflheim build the following RPMS:

module load DACAPO
module load GPAW
module unload ASE3
module load ASE3
module load SCIENTIFICPYTHON/2.8

version_svn=383
cd ~/rpmbuild/SOURCES && python cmr_release.py
cd ~/rpmbuild/SPECS
rpmbuild -bb --with version_svn=${version_svn} \
             ${default_version_usage} ${modules_usage} --with cmr_repository="/home/niflheim/repository/db" \
             --with prefix=/opt/cmr/${version_svn}/1${disttag}.python${python_version} cmr.spec

Testing packages

Note this section is outdated.

Test dacapo installation (as normal user!).

If you use modules:

module load campos-dacapo # fulfill all dependencies requested by module
ulimit -s 500000 # dacapo needs a large stack

Test with (make sure that /scratch/$USER exists):

cp -r `rpm -ql campos-dacapo-python | grep "share/campos-dacapo-python$"` /tmp
cd /tmp/campos-dacapo-python/Tests
python test.py 2>&1 | tee test.log

It can take up to 1 day. Please consider disabling these "long" tests in test.py:

tests.remove('../Examples/Wannier-ethylene.py')
tests.remove('../Examples/Wannier-Pt4.py')
tests.remove('../Examples/Wannier-Ptwire.py')
tests.remove('../Examples/Wannier-Fe-bcc.py')
tests.remove('../Examples/transport_1dmodel.py')

Note all vtk related tests will fail.

Test gpaw installation (as normal user!):

If you use modules:

module load campos-gpaw # fulfill all dependencies requested by module

Test with:

cp -r `rpm -ql campos-gpaw | grep "share/campos-gpaw/test$"` /tmp/test.gpaw.$$
cd /tmp/test.gpaw.*
python test.py 2>&1 | tee test.log

It takes about 20 minutes.

Niflheim: Cluster_software_-_RPMS (last edited 2015-07-02 11:28:20 by OleHolmNielsen)