From 67c09995ae1149892f10b357887ff25e9f151f3a Mon Sep 17 00:00:00 2001 From: Spencer Bliven Date: Mon, 30 Mar 2020 14:43:13 +0200 Subject: [PATCH] Document crYOLO/1.5.6_gpu build process --- EM/crYOLO/README.md | 14 ++++++++++ EM/crYOLO/build | 27 ++----------------- EM/crYOLO/files/variants | 1 + EM/crYOLO/modulefile | 13 ++++----- .../2019.07/conda-env-defs/cryolo/README.md | 10 +++++++ .../2019.07/conda-env-defs/cryolo/cryolo.yml | 14 ++++++++++ 6 files changed, 46 insertions(+), 33 deletions(-) create mode 100644 EM/crYOLO/README.md create mode 100644 Programming/anaconda/2019.07/conda-env-defs/cryolo/README.md create mode 100644 Programming/anaconda/2019.07/conda-env-defs/cryolo/cryolo.yml diff --git a/EM/crYOLO/README.md b/EM/crYOLO/README.md new file mode 100644 index 0000000..9845306 --- /dev/null +++ b/EM/crYOLO/README.md @@ -0,0 +1,14 @@ +# crYOLO + +crYOLO/1.2.3 was built as a miniconda independent environment. +Subsequent versions are deployed as central conda environments. +This significantly changed the build process. + +## Adding New Versions + +To add a new version, first create the conda environment, as described in +../../Programming/anaconda/2019.07/conda-env-defs/cryolo/. + +Next, update files/variants with the new version and run `./build ` to +install the modulefile + diff --git a/EM/crYOLO/build b/EM/crYOLO/build index cc36cb6..6f1766a 100755 --- a/EM/crYOLO/build +++ b/EM/crYOLO/build @@ -3,14 +3,7 @@ pbuild::add_to_group 'EM' pbuild::prep() { - - source "${BUILDBLOCK_DIR}/files/config-$V.sh" - - echo "prepping" - mkdir -p "$SRC_DIR" - curl -fsSLo "$SRC_DIR/miniconda.sh" "https://repo.anaconda.com/miniconda/${MINICONDA_VERSION:-Miniconda2-latest-Linux-x86_64.sh}" - curl -fsSLo "$SRC_DIR/cryoloBM.tgz" "${CRYOLOBM_URL:-ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_BM_V1_1_1/cryoloBM-1.1.1.tar.gz}" - curl -fsSLo "$SRC_DIR/cryolo.tgz" "${CRYOLO_URL:-ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_V${V_MAJOR}_${V_MINOR}_${V_PATCH}/cryolo-${V}.tar.gz}" + : } pbuild::configure() { @@ -22,22 +15,6 @@ pbuild::compile() { } pbuild::install() { - mkdir -p $PREFIX - - # Install conda - bash "$SRC_DIR/miniconda.sh" -b -p $PREFIX/conda - - # Create environment - $PREFIX/conda/bin/conda create -y --name crYOLO anaconda python=3.6 pyqt=5 cudnn=7.1.2 numpy - - # Activate - source $PREFIX/conda/bin/activate crYOLO - - # Install - pip install $SRC_DIR/cryolo.tgz - pip install $SRC_DIR/cryoloBM.tgz - - # Deactivate - source deactivate + : } diff --git a/EM/crYOLO/files/variants b/EM/crYOLO/files/variants index 942ddbb..7dc6e35 100644 --- a/EM/crYOLO/files/variants +++ b/EM/crYOLO/files/variants @@ -1,2 +1,3 @@ crYOLO/1.2.3 unstable cuda/9.0.176 +crYOLO/1.5.6_gpu unstable anaconda/2019.07 diff --git a/EM/crYOLO/modulefile b/EM/crYOLO/modulefile index fbafb29..596f793 100644 --- a/EM/crYOLO/modulefile +++ b/EM/crYOLO/modulefile @@ -32,20 +32,17 @@ switch -- $shelltype { } } -#puts stderr "Switching crYOLO mode to [module-info mode]" -#puts stdout "{ date; echo Switching crYOLO mode to [module-info mode] ; } >> /gpfs/home/bliven_s/cryolo_mod.log;\n" - +#set useflag [string map {{:} {}} $USEFLAGS] +#puts stderr "conda activate cryolo-${V_PKG}-${USEFLAGS%\n" switch [module-info mode] { "load" { - #puts stderr "source $PREFIX/conda/bin/activate crYOLO" - puts stdout "source $PREFIX/conda/bin/activate crYOLO;\n" + # Relies on the anaconda module being loaded since we need to update the path + puts stdout "conda activate cryolo-1.5.6-gpu;\n" } "unload" - "remove" { - #puts stderr "source deactivate" - puts stdout "source $PREFIX/conda/bin/deactivate;\n" - puts stdout {unset $(set|sed -rn 's/^(_?conda[a-z_]*).*$/\1/pI');} + puts stdout "conda deactivate;\n" } } diff --git a/Programming/anaconda/2019.07/conda-env-defs/cryolo/README.md b/Programming/anaconda/2019.07/conda-env-defs/cryolo/README.md new file mode 100644 index 0000000..46e620a --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/cryolo/README.md @@ -0,0 +1,10 @@ +# INSTALLATION + +IMPORTANT! DON'T INSTALL WITH AURISTOR. Use an OpenAFS system (e.g. pmod6) + + export TMPDIR=/opt/tmp/bliven_s + CONDA_COPY_ALWAYS=1 conda env create --file cryolo.yml + conda activate cryolo + +The alternate TMPDIR is required on pmod6 because /tmp is too small for pip to expand all wheel files. + diff --git a/Programming/anaconda/2019.07/conda-env-defs/cryolo/cryolo.yml b/Programming/anaconda/2019.07/conda-env-defs/cryolo/cryolo.yml new file mode 100644 index 0000000..42b1fe6 --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/cryolo/cryolo.yml @@ -0,0 +1,14 @@ +name: cryolo-1.5.6-gpu +channels: + - defaults +dependencies: + - python=3.6 + - pyqt=5 + - cudnn=7.1.2 + - numpy==1.14.5 + - cython + - wxPython==4.0.4 + - intel-openmp==2019.4 + - pip + - pip: + - cryolo[gpu]==1.5.6