Skip to content

Latest commit

 

History

History
119 lines (80 loc) · 2.55 KB

README.md

File metadata and controls

119 lines (80 loc) · 2.55 KB

deploy

Deployment scripts for CCTBX on various systems.

[[TOC]]

Submodules/Git LFS

This repo makes extensive use of git submodules -- in order to ensure that all submodules are up-to-date, run:

git submodule update --init --recursive

LFS

Large resource files are tracked using git large file storage (LFS) -- in order to update all LFS objects, run:

git lfs install
git lfs pull

Note: in order to use LFS, you might need to install it:

  1. On macOS (using homebrew) run:
brew install git-lfs
  1. On NERSC Cori run:
module load git-lfs

Avoiding the Distpatchers

CCTBX can be linked into the $CONDA_PREFIX -- avoiding the need for the dispatcher scripts. This is necessary if the computing environment reacts badly to modifications of $LD_LIBRARY_PATH. In this case, you need to run:

./opt/link_to_conda.sh

NOTE: you need to run source opt/cctbx/build/unsetpaths.sh whenever you source'ed opt/env.local IF you don't want the have the dispatchers in your $PATH -- but this is not strictly necessary.

Working within a Container: Docker/Shifter

This deployment script is a little different for containerized workflows. Building (and running) docker images is described here in more detail.

Working outside of a Container

To build, run:

./install_all.sh

This does the following:

  1. Ensure that all git submodules have been initialized
  2. Load site-specific modules/settings
  3. Install the local miniconda app
  4. Install the pipeline's conda environment
  5. Install CCTBX and psana2

Avoiding libreadline.so Warnings

If you're seeing libreadline.so warnings, you can run the following to silence these warnings:

pushd $CONDA_PREFIX/lib
ln -sf /lib64/libtinfo.so.6
popd

This is done automatically on NERSC's Cori system

Running outside of Docker/Shifter Containers

For example, running the xtc processing pipeline involves 2 steps:

  1. Activate local environment (from repository root):
source opt/env.local
  • Denpending on your compute environment, you might also need to load the required modules (this does not happen automatically as it is not always necessary):
source opt/env/load_modules.sh
  1. Run the xtc processing pipeline (from the run folder):
pushd
[srun|mpirun] ./index_lite.sh cxid9114 1 12 none 1000 ../data/tmp
popd

cf README_DOCKER.md for instructions on running inside a docker/shifter container.