Giter Club home page Giter Club logo

modulesets's Introduction

JHBuild modulesets for LIGO and open-source astronomy software

This is a collection of JHBuild (https://live.gnome.org/Jhbuild) modules for LIGO Parameter Estimation (LALInference, https://git.ligo.org/lscsoft/lalsuite).

It is a fork of Leo Singer's (https://github.com/lpsinger/modulesets) personal collection of JHBuild modules for automating build and installation of bleeding-edge packages for LIGO data analysis and open source astronomy.

As a taste, installing all of lalsuite and the attendant Python packages one-by-one becomes just:

$ jhbuild build lalsuite

Or, if you'd rather see a progress bar instead of all of the build output, you can add the -q flag:

$ jhbuild build -q lalsuite

And entering the preconfigured shell with PATH, PKG_CONFIG_PATH, PYTHONPATH, etc. preconfigured is just:

$ jhbuild shell

Instructions

To use, first clone this repository into your home directory under ~/modulesets as follows:

$ git clone git://github.com/vivienr/modulesets.git ~/modulesets

Next, clone and install JHBuild as follows (adapted from http://developer.gnome.org/jhbuild/unstable/getting-started.html.en):

$ mkdir -p ~/src && git clone [email protected]:GNOME/jhbuild.git ~/src/jhbuild
$ cd ~/src/jhbuild
$ ./autogen.sh
$ make
$ make install

Optionally, add the following line to your login script so that the jhbuild command is in your PATH:

export PATH=$PATH:~/.local/bin

Remember to log out and log back in for the new environment variable to take effect.

Next, choose wether the lalinference_o2 code version or more recent code based on master should be installed:

To install the lalinference_o2 code version

To install the lalinference_o2 code version, the install_lalinference_o2.sh script in the lalinference_o2 branch contains all the commands for a standard installation on the LIGO Data Grid:

$ cd ~/modulesets
$ git checkout lalinference_o2
$ nohup ./install_lalinference_cbc.sh &

The codes will be installed in ~/pe and published in ~/public_html/pe/build to be viewable on the web.

To install LALSuite based from current master

To install more recent versions of LALSuite (instead of lalinference_o2), symlink the bundled JHBuild configuration file to ~/.config/jhbuildrc:

$ mkdir -p ~/.config && cd ~/.config && ln -s ~/modulesets/jhbuildrc

Finally, build lalsuite with:

$ jhbuild build lalsuite

To start a shell with your newly built packages in the environment, run:

$ jhbuild shell

Experimental Support for Intel C Compiler (ICC)

There is now experimental support for compiling the LIGO/Virgo software stack (LALSuite) using the Intel C Compiler (icc), which is available on LIGO Data Grid computing clusters. To enable building with icc, add the line icc = True to your jhbuild configuration script as follows:

$ echo 'icc = True' >> ~/.config/my.jhbuildrc

Change installation options (branch, compile flags, ...)

Any file of the name *.jhbuildrc in the configuration directory will be picked up by jhbuild and can be used to modify default settings. To set a particular branch for a particular package, for instance compiling the lalsimulation package from the branch my_branch, use:

$ echo "branches['lalsimulation'] = (None,'my_branch')" >> ~/.config/my.jhbuildrc

To set specific compiler flag, such as debug options:

$ echo "os.environ['CFLAGS'] = '-Wall -g -O0'" >> ~/.config/my.jhbuildrc

More details are available in the JHBuild manual (https://developer.gnome.org/jhbuild/unstable/config-reference.html.en)

MacPorts

For building LALSuite on MacPorts, Leo suggests using the GCC 6 compiler toolchain (instead of clang) for full OpenMP support. On Mac OS, make sure that your MacPorts ports are up to date, and then run the following commands:

$ sudo port install openmpi-gcc6
$ sudo port select --set gcc mp-gcc6
$ sudo port select --set mpi openmpi-gcc6-fortran

Details

  • For lalinference_o2, the install_lalinference_cbc.sh is run on the cbc account of most LDG clusters, and the results are viewable online, for instance here.

  • Source code for modules is checked out into ~/src (or ~/pe/src when using install_lalinference_o2.sh).

  • For packages that support building out-of-srcdir, the build directory is in /usr1/$USER/build, /local/$USER/build, /localscratch/$USER/build or /var/tmp/$USER/build, to accommodate scratch storage locations on LSC data analysis clusters.

  • Packages are installed into ~/local (or ~/pe/local when using install_lalinference_o2.sh).

  • You will be reminded whenever you are inside the JHBuild environment shell by the colorized prompt beginning with the text JHBuild:.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.