-
Notifications
You must be signed in to change notification settings - Fork 6
Deployment on EEE
This page describes a possible and recommended way of installation of MUSCLE2 on the ComPat EEE resources. The instruction refers to compat branch. In order to get more detailed descriptions for the master branch, see the Installation section.
In order to install MUSCLE from source, you need at least:
The most current sources of muscle2 can be cloned from githab. It is important to checkout a proper branch:
git clone https://github.com/psnc-apps/muscle2.git
cd muscle2
git fetch
git checkout compat
The building and installation process of MUSCLE2 is based on CMake scripts and may be performed purely with CMake. However, in order to simplify production deployments on EEE, it is advised to use prepared helper bash scripts.
Following the CMake rules, the process of building MUSCLE2 should be performed in the build
directory:
cd build
In this directory, there is a build.sh script which steers the build process. It takes a couple of parameters that may be displayed with -h:
./build.sh -h
USAGE: ./build.sh [OPTIONS]
Builds and installs MUSCLE to specific directory using provided settings
If no options are specified MUSCLE will be tried to build using configuration
from files with predefined names and then installed in /opt/muscle
Options:
-c, --config=FILE use configuration stored in FILE
-i, --install-prefix=DIR install to DIR
-g, --use-git-tag create a subdir in DIR with the name of last git tag
-p, --performance include C++ performance counters
-h, --help display this message
The -c/--config
option allows to use some site-specific configuration stored in a given file. For ComPat, a special folder with predefined configuration files for EEE resources was created.
E.g. for the resource Inula, the configuration file compat/inula.conf
looks as follows:
module load plgrid/tools/openmpi
module load plgrid/tools/python/2.7.3
export INSTALL_PREFIX=/home/plgrid-groups/plggcompat/Common/muscle2/inula/inst
For such a configuration, the build process may be invoked in the following way:
./build.sh -c compat/inula.conf -g
If succeeded, MUSCLE2 will be installed to $INSTALL_PREFIX/LAST_GIT_TAG_NAME
directory.
Note: The presented build configuration doesn't enable performance counters required by Allinea tools. In order to enable them add -p option to ./build.sh command.
#Modules In the EEE MUSCLE2 should be available to use after loading special ComPat environment module.
A module for MUSCLE2 in version compat-1.0 installed on Inula looks as follows:
#%Module1.0#####################################################################
##
## MUSCLE2 Modulefile
##
proc ModulesHelp { } {
global version
puts stderr "\tThis module sets environment variables for the compat branch of MUSCLE2."
puts stderr "\tThe module details:"
puts stderr "\t* target resource: inula"
puts stderr "\t* tag: compat-1.0"
}
module-whatis "Sets environment variables for the compat branch of MUSCLE2"
module add plgrid/tools/python/2.7.3
module add compat/common/ruby
set MUSCLE_HOME "/home/plgrid-groups/plggcompat/Common/muscle2/inula/inst/compat-1.0"
setenv MUSCLE_HOME $MUSCLE_HOME
setenv MUSCLE_MTO "192.168.11.102:20303"
setenv MUSCLE_PORT_MIN "20506"
setenv MUSCLE_PORT_MAX "20599"
setenv QCG_COORDINATOR_URL "http://150.254.161.193:21000/"
if { ! [info exists ::env(SESSION_ID)] } {
setenv SESSION_ID $env(USER)
}
prepend-path PATH "${MUSCLE_HOME}/bin"
prepend-path LD_LIBRARY_PATH "${MUSCLE_HOME}/lib"
set curMod [module-info name]
if { [ module-info mode load ] } {
puts stderr "$curMod load complete."
}
if { [ module-info mode remove ] } {
puts stderr "$curMod unload complete."
}
set version "compat-1.0"
All ComPat modules should be created in the Modules
directory being the 1st-level subdirectory of the ComPat shared directory ($COMPAT_SHARED)
. For the QCG purposes, the same directory - so the same set of modules - should be linked to the hidden .qcg-modules subdirectory as well.
With the jobs started by QCG, the defined modules will be added to MODULES_PATH
automatically and available to easy use in executed tasks. In case of jobs not submitted by QCG, MODULES_PATH
should be manually prepended with the $COMPAT_SHARED/Modules
.
For MUSCLE2, in the simplest case (without specifying a version) the module should be available under the following command:
module load compat/common/muscle2
Thus, the module file for such a case should be stored in $COMPAT_SHARED/Modules/compat/common/muscle2
.
All version-specific modulefiles should be stored in subdirectories of that directory.