Software Build Documentation
From BCCD 3.0
(Difference between revisions)
(→shiny-server/1.4.4.802) |
(→shiny-server/1.4.4.802) |
||
Line 206: | Line 206: | ||
module load modules shiny-server/1.4.4.802 | module load modules shiny-server/1.4.4.802 | ||
</pre></li> | </pre></li> | ||
- | <li> | + | <li>Modify each <code>start-stop-daemon</code> instance to include support for running as <code>bccd</code>: |
+ | <pre> | ||
+ | SHINY_USER="bccd" | ||
+ | ... | ||
+ | start-stop-daemon -c ${SHINY_USER} --start --quiet --background --exec $DAEMON --test > /dev/null \ | ||
+ | || return 1 | ||
+ | ... | ||
+ | </pre></li> | ||
</ol> | </ol> | ||
<li><code>sudo cp -R node_modules /bccd/software/shiny-server/1.4.4.802/Linux/BCCD/x86_64</code></li> | <li><code>sudo cp -R node_modules /bccd/software/shiny-server/1.4.4.802/Linux/BCCD/x86_64</code></li> |
Revision as of 03:05, 18 October 2016
Contents |
BCCD 3.1.1
- Python
- 2.7.2
-
sudo apt-get install libsqlite3-dev libbz2-dev libdb4.7-dev libgdbm-dev libssl-dev
# Install prereqs - Load intelcc/11.1.073
- Add this patch for amd64: http://bugs.python.org/file25221/ffi64.c.patch
-
CC=$(which icc) CXX=$(which icc) nice ./configure --prefix=${BCCD_SW}/python/2.7.2/${ARCHPATH} --enable-shared --enable-unicode=ucs4 --without-gcc && nice make -j3 && nice make install
# Build the software - Make sure nothing is under
Failed to build these modules:
-
- 2.7.2
- Visual Python
- 5.7.2
-
apt-get install libgtkglextmm-x11-1.2-dev libgtkglext1-dev libghc6-gtkglext-dev libgtkmm-2.4-dev libglademm-2.4-dev libboost-all-dev
# Install prereqs -
nice ./configure --prefix=${BCCD_SW}/vpython-5.72/${ARCHPATH}
# Build the software
-
- 5.7.2
- Intelcc
- 11.1.073
- Search for license key in email titled "Fwd: Thank you for purchasing the Intel® Compiler Suite Professional Edition for Linux*"
- Download software from http://registrationcenter-download.intel.com/akdlm/irc_nas/2251/l_cproc_p_11.1.080_ia32.tgz and http://registrationcenter-download.intel.com/akdlm/irc_nas/2251/l_cproc_p_11.1.080_intel64.tgz
- Unpack tar balls on machines of the appropriate hardware
- Run the installer script
- Select all packages except for crypto packages
- Set prefix to ${BCCD_SW}/intelcc/11.1.073/${ARCHPATH}
- Make sure to get software database and license file out of /opt/intel
- Strip lib and mkl/lib *.so* files
- 11.1.073
- openmpi
- 1.4.5
- Install automake 1.1.11 (http://packages.debian.org/squeeze/all/automake/download)
- Load intelcc/11.1.073
- ./autogen.sh
- ./autogen.sh && ./configure --prefix=${BCCD_SW}/openmpi/1.4.5/${ARCHPATH} --enable-mpi-threads --with-libnuma CC=icc CXX=icpc F77=ifort FC=ifort && make
- Make sure symlinks in lib exist for all versioned libraries back to a single-digit and no digit (i.e. libmpi_cxx.so.1.0.2 -> libmpi_cxx.so.1 and libmpi_cxx.so)
- 1.4.5
- papi
- 4.2.1
- module load intelcc/11.1.073
- (amd64) CC=$(which icc) F77=$(which ifort) ./configure --prefix=${BCCD_SW}/papi/4.2.1/${ARCHPATH} --with-bitmode=64 --with-perf-events && make
- (i386) Same as above, but with --with-bitmode=32
- libpfm4 cannot be built with icc. Build it with gcc by cd'ing into libpfm4, and running "CC=$(which gcc) F77=$(which gfortran) make"
- 4.2.1
- LAPACK
- 3.4.0
- Load intelcc/11.1.073
- cp INSTALL/make.inc.ifort .
- Open make.inc.ifort and add -fPIC to OPTS and NOOPTS
- make all
- 3.5.0
- cp INSTALL/make.inc.gfortran make.inc
- make all
- 3.4.0
- ATLAS
- 3.8.4
- Load intelcc/11.1.073
- mkdir bccd && cd bccd
- ../configure --with-netlib-lapack=${BCCD_SW}/LAPACK/3.4.0/${ARCHPATH}/lib/liblapack.a -C ic icc -F ic '-O3 -fpic' -C if ifort -F if '-O3 -fpic' -Fa alg -fpic -b 32 && make
- For amd64, replace -b 32 w/ -b 64
- 3.10.2
- ../configure --prefix ${BCCD_SW}/ATLAS/3.10.2/${ARCHPATH}
- 3.8.4
- numpy
- 1.6.1
- Load intelcc/11.1.073 and python/2.7.2
- Set these variables:
- export BLAS_SRC=~/ATLAS/interfaces/blas/F77/src/
- export BLAS=${BCCD_SW}/ATLAS/3.8.4/${ARCHPATH}/lib/libf77blas.a
- export LAPACK=${BCCD_SW}/ATLAS/3.8.4/${ARCHPATH}/lib/liblapack.a
- export ATLAS=${BCCD_SW}/ATLAS/3.8.4/${ARCHPATH}/lib/libatlas.a
- python setup.py build && python setup.py install --prefix=${BCCD_SW}/numpy/1.6.1/${ARCHPATH}
- 1.6.1
- visual-python
- 5.7.2
- Load intelcc/11.1.073, python/2.7.2, and numpy/1.6.1
- Install libgtkglext1-dev, libgtkglextmm-x11-1.2-dev, libgtkmm-2.4-dev, libglademm-2.4-dev, libboost1.42-dev, libboost-python1.42-dev, libboost-thread1.42-dev, libboost-signals1.42-dev
- CC=$(which icc) CXX=$(which icc) ./configure --prefix=${BCCD_SW}/visual-python/5.7.2/${ARCHPATH} && make && make install
- 5.7.2
- fftw
- 3.3.1
- Load intelcc/11.1.073 and openmpi/1.4.5
- CC=$(which icc) F77=$(which ifort) ./configure --prefix=${BCCD_SW}/fftw/3.3.1/${ARCHPATH} --enable-single --enable-sse2 --enable-sse --enable-mpi --enable-openmp --enable-threads --enable-shared && make
- 3.3.1
- R
- 2.14.1
- Load intelcc/11.1.073
- Set BLAS and LAPACK to point to either ATLAS or LAPACK
- CC=$(which icc) CXX=$(which icc) F77=$(which ifort) ./configure --prefix=${BCCD_SW}/R/2.14.1/${ARCHPATH} --enable-R-shlib --with-blas=${BLAS} --with-lapack=${LAPACK} --with-system-zlib --with-system-bzlib --with-system-pcre
- 3.0.1
- R 3.0.1 assumes MKL for intelcc - this is not installed on BCCD so we must use gcc
- F77=gfortran FC=gfortran CC=gcc CXX=g++ ./configure --prefix=${BCCD_SW}/R/3.0.1/${ARCHPATH} --enable-R-shlib --with-system-zlib --with-system-bzlib --with-system-pcre
- 2.14.1
- Rmpi
- RMPI_TYPE=OPENMPI R
- install.packages(c("Rmpi"))
- mpich2
- 1.4.1p1
- module unload openmpi
- CC=$(which icc) CXX=$(which icpc) F77=$(which ifort) ./configure --prefix=${BCCD_SW}/mpich2/1.4.1p1/${ARCHPATH} --enable-fc --enable-cxx --enable-mpe --enable-strict --enable-shared --enable-sharedlibs=gcc --enable-dependencies --disable-checkpointing --with-mpe --disable-checkpointing --with-pm=mpd && make
- Delete share/{doc,examples*}
- Delete etc/mpd.conf symlink
- gzip share/man/man*/*
BCCD 3.2.1
- hwloc
- 1.7
- Install lib{hwloc,numa}-dev
-
./configure --prefix=${BCCD_SW}/hwloc/1.7/${ARCHPATH} CC=icc CXX=icpc F77=ifort FC=ifort && nice make -j3
- 1.7
- openmpi
- 1.6.4
- Install automake 1.11 using apt (this is on bigfe now, so just
apt-get install automake
) - Load intelcc
-
./autogen.sh && ./configure --prefix=${BCCD_SW}/openmpi/1.6.4/${ARCHPATH} --enable-mpi-thread-multiple CC=icc CXX=icpc F77=ifort FC=ifort && nice make -j3 && make install
- Link libmca_common_sm.so.3.0.0 to libmca_common_sm.so.1
- Install automake 1.11 using apt (this is on bigfe now, so just
- 1.6.4
BCCD 3.3.0
- PAPI
- 5.1.1 - binaries safe to strip
- (amd64)
./configure --prefix=${BCCD_SW}/papi/5.1.1/${ARCHPATH} && make -j3
- (i386)
./configure --prefix=${BCCD_SW}/papi/5.1.1/${ARCHPATH} && make -j3
- Might have to go into Rules.perfctr-pfm and fix " balancing in the architecture detection
- (amd64)
- 5.1.1 - binaries safe to strip
- numpy
- 1.7.1
- export BLAS=/bccd/software/BLAS/blas_LINUX.a
- export LAPACK=
- export ATLAS=
- On i686:
python setup.py config --fcompiler=intel --compiler=intel
- On x86_64:
python setup.py config --fcompiler=intelem --compiler=intel
- 1.7.1
- vpython
- 5.7.4
- Install libgtkglextmm-x11-1.2-dev
-
CC=$(which icc) ./configure --prefix=${BCCD_SW}/vpython/5.7.4/${ARCHPATH}
- 5.7.4
- openmpi
- 1.6.4
- Install automake 1.1.11 (http://packages.debian.org/squeeze/all/automake/download)
- Load intelcc/11.1.073
- ./autogen.sh && ./configure --prefix=${BCCD_SW}/openmpi/1.6.4/${ARCHPATH} --enable-mpi-thread-multiple CC=icc CXX=icpc F77=ifort FC=ifort
- 1.6.4
- scipy
- 0.12.0
- export ATLAS=/bccd/software/ATLAS/3.10.1/${ARCHPATH}/lib
- export BLAS=/bccd/software/BLAS/blas_LINUX.a
- python setup.py build
- 0.12.0
- LAPACK
- 3.4.2
- Load intelcc
- cp INSTALL/make.inc.ifort .
- Open make.inc.ifort and add -fPIC to OPTS and NOOPTS
- make all
- If you get a librefblas.a error, cd into BLAS/SRC and run make
- 3.4.2
- BLAS
- 2007
- In make.inc, change all references to gfortran to ifort
- 2007
- ATLAS
- 3.10.1
- ../configure --with-netlib-lapack-tarfile=${HOME}/lapack-3.4.2.tgz -C ic icc -F ic '-O3 -fpic' -C if ifort -F if '-O3 -fpic' -Fa alg -fpic -b 32
- Replace
-b 32
w/-b 64
for amd64
- 3.10.1
- Python
- 2.7.5
-
sudo apt-get install libsqlite3-dev libbz2-dev libdb4.7-dev libgdbm-dev libssl-dev
# Install prereqs - Load intelcc/11.1.080
- Add this patch for amd64: http://bugs.python.org/file25221/ffi64.c.patch
-
CC=$(which icc) CXX=$(which icc) nice ./configure --prefix=${BCCD_SW}/python/2.7.2/${ARCHPATH} --enable-shared --enable-unicode=ucs4 --without-gcc && nice make -j3 && nice make install
# Build the software - Make sure nothing is under
Failed to build these modules:
-
- 2.7.5
- pypar
- 2.1.5_108
- Install python-dev
-
CC=icc python setup.py build --compiler=unix
- 2.1.5_108
R/3.3.1
- Build zlib-1.2.8 and associated module (zlib 1.2.3.4 is too old and according to config.log a hack from Debian anyways)
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n zlib -v 1.2.8~v334 -a amd64 -s dir -t deb ${BCCD_SW}/zlib/1.2.8/${ARCHPATH} /usr/local/etc/modules/zlib/1.2.8
-
- Build bzip2-1.0.6 and associated module (again, Debian is too old)
- Add
-fPIC
to CFLAGS in Makefile -
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n bzip2 -v 1.0.6~v334 -a amd64 -s dir -t deb ${BCCD_SW}/bzip2/1.0.6/${ARCHPATH} /usr/local/etc/modules/bzip2/1.0.6
- Add
- Build xz-5.2.2 and associated module (same story)
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n xz -v 5.2.2~v334 -a amd64 -s dir -t deb ${BCCD_SW}/xz/5.2.2/${ARCHPATH} /usr/local/etc/modules/xz/5.2.2
-
- Build pcre-8.39 and associated module
-
./configure --prefix=${BCCD_SW}/pcre/8.39/${ARCHPATH} --enable-utf
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n pcre -v 8.3.9~v334 -a amd64 -s dir -t deb ${BCCD_SW}/pcre/8.39/${ARCHPATH} /usr/local/etc/modules/pcre/8.39
-
- Build curl-7.50.8 (for HTTPS support)
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n curl -v 7.50.3~v334 -a amd64 -s dir -t deb ${BCCD_SW}/curl/7.50.3/${ARCHPATH} /usr/local/etc/modules/curl/7.50.3
-
- Install
texinfo
andtexlive-latex-extra
packages- Touch
docs/NEWS.pdf
if you don't want to wait
- Touch
-
CFLAGS=F77=gfortran FC=gfortran CC=gcc CXX=g++ ./configure --prefix=${BCCD_SW}/R/3.3.1/${ARCHPATH} --enable-R-shlib --with-system-zlib --with-system-bzlib --with-system-pcre && make && make install
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n r -v 3.3.1~v334 -a amd64 -s dir -t deb -d 'bzip2 (>= 1.0.6~v334)' -d 'xz (>= 5.2.2~v334)' -d 'pcre (>= 8.3.9~v334)' -d 'curl (>= 7.5.0.3~v334)' -d 'zlib (>=1.2.8~v334)' ${BCCD_SW}/R/3.3.1/${ARCHPATH} /usr/local/etc/modules/R/3.3.1
cmake/3.7.0-rc1
-
./configure --prefix=${BCCD_SW}/cmake/3.7.0-rc1/${ARCHPATH} && make -j3 && make install
-
ruby1.9.1 /var/lib/gems/1.9.1/gems/fpm-1.4.0/bin/fpm -n cmake -v 3.7.0-rc1 -a amd64 -s dir -t deb ${BCCD_SW}/cmake/3.7.0-rc1/${ARCHPATH} /usr/local/etc/modules/cmake/3.7.0-rc1
shiny-server/1.4.4.802
module load cmake/3.7.0-rc1
mkdir build-dir/tmp
pushd build-dir/tmp
cmake -DCMAKE_INSTALL_PREFIX=${BCCD_SW}/shiny-server/1.4.4.802/${ARCHPATH} ../
nice make -j3
- Edit
cmake_install.cmake
, and change in the blockfile(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/shiny-server" TYPE DIRECTORY FILES
- Remove
build-dir/build
- Remove
build-dir/node_modules
module load shiny-server/1.4.4.802
- Install needed Node.js packages:
sudo $(which npm) install log4j client-sessions posix
- Fix the references to the
posix
module:sudo perl -wpl -i -e 's!../../build/Release/posix!posix!g' $(grep -lr './../build/Release/posix' ${BCCD_SW}/shiny-server/1.4.4.802/${ARCHPATH}/shiny-server/)
- Set to run as
bccd
user:sudo perl -wpl -i -e 's!^run_as shiny$!run_as bccd!g' /etc/shiny-server/shiny-server.conf
- Add to the init script:
- Modules (before
NAME
):# Modules . /usr/local/Modules/3.2.10/init/bash module load modules shiny-server/1.4.4.802
- Modify each
start-stop-daemon
instance to include support for running asbccd
:SHINY_USER="bccd" ... start-stop-daemon -c ${SHINY_USER} --start --quiet --background --exec $DAEMON --test > /dev/null \ || return 1 ...
sudo cp -R node_modules /bccd/software/shiny-server/1.4.4.802/Linux/BCCD/x86_64
BCCD 3.4.0
See Software Build
- papi
- 5.4.1
- (amd64)
pushd src && ./configure --prefix=${BCCD_SW}/papi/5.4.1/${ARCHPATH} --with-bitmode=64 --with-perf-events && make
- You might need to set
${BCCD_SW}/papi/5.4.1/${ARCHPATH}/share/papi/papi_events.csv
to be readable by anyone
- You might need to set
- (i386) Same as above, but with
--with-bitmode=32
- (amd64)
- 5.4.1
- pypar
- 2.1.5_108
-
pushd source && python setup.py build && python setup.py install --prefix=${BCCD_SW}/pypar/2.1.5_108/${ARCHPATH}
-
- 2.1.5_108
- R
- 3.2.1
- Install libreadline-dev
-
./configure --prefix=${BCCD_SW}/R/3.2.1/${ARCHPATH} --enable-R-shlib --with-system-zlib --with-system-bzlib --with-system-pcre
- 3.2.1
- Rmpi
- 0.6.5
- Download tar ball
- Load R:
module load R
- Compile/install:
R CMD INSTALL Rmpi_0.6-5.tar.gz --configure-args="--with-mpi=/usr/local/ --with-Rmpi-type=OPENMPI --disable-dlopen --with-mpi=/bccd/software/openmpi/1.8.5/Linux/BCCD/x86_64"
- 0.6.5
- mpi4py - see #955