gstlal-inspiral  0.4.2
 All Classes Namespaces Files Functions Variables Pages
gstlal inspiral code optimization

Introduction

This documentation page covers installation of optimized dependencies for use in gstlal profiling and benchmarking. The instructions below cover a general case, however at the end there are links to pages for detailed instruction sets for specific machines. After reading this page, the user should be well prepared to install all of the needed software on a vanilla machine and to then perform profiling and benchmarking.

by hand

A makefile, the corresponding rc file to source, and required patches are available here:

https://ldas-jobs.ligo.caltech.edu/~cody.messick/vanilla_make/

A description of the patches can be found in the gstlal inspiral code optimization patches page.

Running this makefile (with the correct environment variables from optimalrc of course) with

make -f Makefile.ligosoftware

will download tarballs and install

Before running the Makefile the following dependencies, available on both yum and apt, need to be installed with their development files (ie the dev packages are needed).

Please email cody..nosp@m.mess.nosp@m.ick@l.nosp@m.igo..nosp@m.org if you find you need additional required packages.

There are a couple of FIXMEs listed in the Makefile, which are duplicated below.

## FIXME --enable-gcc-flags set to no on lalapps configure as work around to avoid warnings stopping install process
## Not sure what causes the warnings
$(INSTALL_FILES_DIR)/lalapps-6.14.0/config.log : $(INSTALL_DIR)/lib/liblalstochastic.so
    tar -xzf $(TARDIR)/lalapps-6.14.0.tar.gz -C $(INSTALL_FILES_DIR)
    cd $(INSTALL_FILES_DIR)/lalapps-6.14.0 && \
        ./configure --enable-gcc-flags=no --enable-swig-python --prefix=$(INSTALL_DIR)

...

## FIXME Hack to make gsl default to atlas for blas
$(DEP_INSTALL_DIR)/lib/pkgconfig/gsl.pc.orig : $(DEP_INSTALL_DIR)/lib/libgsl.so
        cp $(DEP_INSTALL_DIR)/lib/pkgconfig/gsl.pc $@ 
            sed 's/-lgslcblas/-latlas -lsatlas/' $@ > $(DEP_INSTALL_DIR)/lib/pkgconfig/gsl.pc

by hand

WARNING: This will make pretty nonportable code. E.g., if you build on a Xeon-XXXX that might be the only processor it will run on.

Set up an environment similar to below

# This is an install prefix that does not get used anywhere but this script
INSTALLPATH=/home/gstlalcbc/profilegcc

export CFLAGS="-fPIC -O3 -march=native"

# These are environment variables that do get exported
PATH=${INSTALLPATH}/bin:$PATH
PKG_CONFIG_PATH=${INSTALLPATH}/lib64/pkgconfig:${INSTALLPATH}/lib/pkgconfig:$PKG_CONFIG_PATH
PYTHONPATH=${INSTALLPATH}/lib64/python2.6/site-packages:${INSTALLPATH}/lib/python2.6/site-packages:$PYTHONPATH:/usr/lib/python2.6/site-packages:/usr/lib64/python2.6/site-packages/
GST_PLUGIN_PATH=${INSTALLPATH}/lib/gstreamer-0.10:/opt/lscsoft/gst/lib64/gstreamer-0.10

export PATH PKG_CONFIG_PATH PYTHONPATH GST_PLUGIN_PATH

Dependencies locations are linked below. You need to build in this order, but first read below for special atlas and gsl install instructions.

  1. atlas
  2. orc
  3. gsl
  4. gstreamer
  5. gst-plugins-base
  6. gst-plugins-good
  7. gst-python
  8. oprofile

After unpacking atlas from the tarball, follow the build directions but configure with

--nof77 --shared

After installing gsl, open the file installdirectory/lib/pkgconfig/gsl.pc. Replace the line

-lgslcblas

with

-latlas -lsatlas

This will force gsl to go through atlas when using BLAS. Note that this is a hacky workaround because gsl has problems compiling to use atlas correctly.

After the dependencies listed above are installed, build lalsuite and gstlal in the normal way, but with the CFLAGS above

Profiling

You can find a self contained profile script here: https://ldas-jobs.ligo.caltech.edu/~gstlalcbc/profile.tar.gz

NOTE: This only works with the released gstlal versions, e.g., gstlal-0.7.1.tar.gz and gstlal-inspiral-0.3.2.tar.gz