From 67d94db7ad48afae49c0fc1da2ff02cc89cd822a Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Tue, 17 Apr 2018 14:10:25 +0200 Subject: [PATCH 01/11] openmpi/3.0.1 for intel/18.2 and gcc/7.3.0 --- Compiler/openmpi/3.0/variants.Linux | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Compiler/openmpi/3.0/variants.Linux b/Compiler/openmpi/3.0/variants.Linux index bff5698..7f24a3a 100644 --- a/Compiler/openmpi/3.0/variants.Linux +++ b/Compiler/openmpi/3.0/variants.Linux @@ -2,3 +2,6 @@ openmpi/3.0.0 stable gcc/6.4.0 openmpi/3.0.0 stable gcc/7.2.0 openmpi/3.0.0 stable gcc/7.3.0 openmpi/3.0.0 stable intel/17.4 + +openmpi/3.0.1 stable gcc/7.3.0 +openpmi/3.0.1 unstable intel/18.2 From 14606e2cd107d34873d1040a0355c3d002c0cd99 Mon Sep 17 00:00:00 2001 From: gsell Date: Wed, 9 May 2018 09:44:03 +0200 Subject: [PATCH 02/11] Update README.md --- MPI/elegant/README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index 90a8428..9a2e97f 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -5,13 +5,10 @@ > Go down for PSI build instructions! -Instructions to setup `epics/base`, `epics/extensions` compile `SDDS` and `elegant`: +Instructions to setup `epics/base`, `epics/extensions` compile `SDDS` and `elegant`. The instructions to build from source are almost at the end of the page: https://www.aps.anl.gov/Accelerator-Operations-Physics/Software/installationGuide_Linux -> -Instructions to compile from source are almost at the end of the page! - Instructions to build `Pelegant`: https://ops.aps.anl.gov/publish/Pelegant_manual/node2.html From 113b85ca31567e82f9166e25491aa7a0029d4bec Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Wed, 9 May 2018 10:55:59 +0200 Subject: [PATCH 03/11] Add gcc 8.1.0 --- Programming/gcc/8/variants | 1 + 1 file changed, 1 insertion(+) create mode 100644 Programming/gcc/8/variants diff --git a/Programming/gcc/8/variants b/Programming/gcc/8/variants new file mode 100644 index 0000000..e4c513c --- /dev/null +++ b/Programming/gcc/8/variants @@ -0,0 +1 @@ +gcc/8.1.0 stable b:gmp/6.1.2 b:mpfr/4.0.1 b:mpc/1.1.0 From 7bf2e499c87e7df31dad93816b66fa6d7df54ad6 Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Wed, 9 May 2018 11:16:01 +0200 Subject: [PATCH 04/11] Add openmpi/3.0.1 for gcc/8.1.0 --- Compiler/openmpi/3.0/variants.Linux | 1 + 1 file changed, 1 insertion(+) diff --git a/Compiler/openmpi/3.0/variants.Linux b/Compiler/openmpi/3.0/variants.Linux index 7f24a3a..d68c3f3 100644 --- a/Compiler/openmpi/3.0/variants.Linux +++ b/Compiler/openmpi/3.0/variants.Linux @@ -4,4 +4,5 @@ openmpi/3.0.0 stable gcc/7.3.0 openmpi/3.0.0 stable intel/17.4 openmpi/3.0.1 stable gcc/7.3.0 +openmpi/3.0.1 stable gcc/8.1.0 openpmi/3.0.1 unstable intel/18.2 From 4ca64a762d484e91a13568cfe8816e22c9ee57d0 Mon Sep 17 00:00:00 2001 From: gsell Date: Wed, 9 May 2018 12:55:44 +0200 Subject: [PATCH 05/11] Update README.md --- MPI/elegant/README.md | 88 +++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index 9a2e97f..b9d1618 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -42,54 +42,25 @@ https://ops.aps.anl.gov/publish/Pelegant_manual/node2.html module load gcc/7.3.0 gsl/2.4 mpich/3.2.1 ``` +## Set used versions +``` +SDDS_VERSION=3.6.1 +ELEGANT_VERSION=34.2.0 +``` + ## Setup Environment ``` DOWNLOAD_DIR='/afs/psi.ch/software/Pmodules/distfiles/elegant' -PREFIX=/opt/psi/MPI/elegant/34.2.0/mpich/3.2.1/gcc/7.3.0 +PREFIX=/opt/psi/MPI/elegant/${ELEGANT_VERSION}/${MPI}/${MPI_VERSION}/${COMPILER}/${COMPILER_VERSION} +export EPICS_BASE="${PREFIX}/epics/base" export HOST_ARCH=linux-x86_64 export EPICS_HOST_ARCH=linux-x86_64 -export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn +export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn" ``` -## Prepare build environment - -EPICS base configuration -``` -mkdir -p "${PREFIX}" -cd "${PREFIX}" -tar xvf "${DOWNLOAD_DIR}/epics.base.configure.tar.gz" -cd epics/base -make -``` - -Prepare configuration files for EPICS build system -``` -cd "${PREFIX}" -tar xvf "${DOWNLOAD_DIR}/epics.extensions.configure.tar.gz -``` - -Prepare configuration files for elegant and other OAG apps -``` -cd "${PREFIX}" -tar xvf "${DOWNLOAD_DIR}/oag.apps.configure.tar.gz -``` - -## Base configuration for SDDS and elegant ``` ARGS=() -ARGS+=( "AR=ar -rc" ) -ARGS+=( "LD=ld -r" ) -ARGS+=( "RANLIB=ranlib" ) -ARGS+=( "GNU_DIR=${GCC_DIR}" ) -ARGS+=( "CLAPACK_LIB=${ATLAS_LIBRARY_DIR}" ) -ARGS+=( "ATLAS_LIB=${ATLAS_LIBRARY_DIR}" ) -ARGS+=( "ATLAS_INCLUDE=${ATLAS_INCLUDE_DIR}" ) -ARGS+=( "SYSGSL=1" ) -ARGS+=( "LAPACK=0" ) -ARGS+=( "GFORTRAN=1" ) -ARGS+=( "CLAPACK=1" ) -ARGS+=( "EPICS_BASE=${PREFIX}/epics/base" ) ARGS+=( "INSTALL_LOCATION=${PREFIX}" ) ARGS+=( "INSTALL_LIB=${PREFIX}/lib" ) ARGS+=( "INSTALL_SHRLIB=${PREFIX}/lib" ) @@ -97,17 +68,44 @@ ARGS+=( "INSTALL_TCLLIB=${PREFIX}/lib" ) ARGS+=( "INSTALL_BIN=${PREFIX}/bin" ) ``` -== Compile SDDS +## Prepare base build environment + +EPICS base configuration ``` -cd ${PREFIX}/epics/extensions/src/SDDS/ -make "${ARGS[@]}" OP_SYS_LDLIBS="-lgfortran -lquadmath -lf2c" -C png -make "${ARGS[@]}" OP_SYS_LDLIBS="-lgfortran -lquadmath -lf2c" -C pgapack -make "${ARGS[@]}" OP_SYS_LDLIBS="-lgfortran -lquadmath -lf2c" -make "${ARGS[@]}" OP_SYS_LDLIBS="-lgfortran -lquadmath -lf2c" MPI=1 -C SDDSlib +mkdir -p "${PREFIX}" +mkdir -p "${RPN_DEFNS%/*}" +cp "${DOWNLOAD_DIR}/defns.rpn" "${RPN_DEFNS}" +cd "${PREFIX}" +tar xvf "${DOWNLOAD_DIR}/epics.base.configure.tar.gz" +cd epics/base +make ``` -== Compile elegant +## Unpack EPICS extensions and OAG apps configuration + ``` +cd "${PREFIX}" +tar xvf "${DOWNLOAD_DIR}/epics.extensions.configure.tar.gz" +tar xvf "${DOWNLOAD_DIR}/oag.apps.configure.tar.gz" +cd "${PREFIX}/oag/apps/configure" +``` + +## Build required tools and libraries from SDDS +``` +cd "${PREFIX}" +tar xvf "${DOWNLOAD_DIR}/SDDS.${SDDS_VERSION}.tar.gz" +make -e "${ARGS[@]}" -C namelist +make -e "${ARGS[@]}" -C pgapack +make -e "${ARGS[@]}" -C SDDSlib +make -e "${ARGS[@]}" -C SDDSlib clean +make -e "${ARGS[@]}" MPI=1 -C SDDSlib +``` + +== Compile (P)elegant +``` +cd "${PREFIX}" +tar xvf "${DOWNLOAD_DIR}/elegant.${ELEGANT_VERSION}" + PATH+=":${PREFIX}/bin" cd "${PREFIX}/oag/apps/src/physics" From fb15e83d4af18b9b10c8cdfc86449479cf16d929 Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Wed, 9 May 2018 15:08:52 +0200 Subject: [PATCH 06/11] Mark gcc/8.1.0 unstable as hdf5_serial/1.10.2 cannot compile and my own program produces bad output:wq --- Programming/gcc/8/variants | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Programming/gcc/8/variants b/Programming/gcc/8/variants index e4c513c..b128666 100644 --- a/Programming/gcc/8/variants +++ b/Programming/gcc/8/variants @@ -1 +1 @@ -gcc/8.1.0 stable b:gmp/6.1.2 b:mpfr/4.0.1 b:mpc/1.1.0 +gcc/8.1.0 unstable b:gmp/6.1.2 b:mpfr/4.0.1 b:mpc/1.1.0 From cd3948666906396f3ebf44193c8255b25a55bda5 Mon Sep 17 00:00:00 2001 From: Hans-Christian Stadler Kleeb Date: Wed, 9 May 2018 15:50:07 +0200 Subject: [PATCH 07/11] Mark openmpi/3.0.1 for gcc/8.1.0 as unstable, because the compiler is unstable --- Compiler/openmpi/3.0/variants.Linux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compiler/openmpi/3.0/variants.Linux b/Compiler/openmpi/3.0/variants.Linux index d68c3f3..13bb508 100644 --- a/Compiler/openmpi/3.0/variants.Linux +++ b/Compiler/openmpi/3.0/variants.Linux @@ -4,5 +4,5 @@ openmpi/3.0.0 stable gcc/7.3.0 openmpi/3.0.0 stable intel/17.4 openmpi/3.0.1 stable gcc/7.3.0 -openmpi/3.0.1 stable gcc/8.1.0 +openmpi/3.0.1 unstable gcc/8.1.0 openpmi/3.0.1 unstable intel/18.2 From e7923a4992e8bca2956900e7c72de09d3f089398 Mon Sep 17 00:00:00 2001 From: gsell Date: Wed, 9 May 2018 16:36:50 +0200 Subject: [PATCH 08/11] Update README.md --- MPI/elegant/README.md | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index b9d1618..34a621a 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -39,7 +39,7 @@ https://ops.aps.anl.gov/publish/Pelegant_manual/node2.html ## Required Modules ``` -module load gcc/7.3.0 gsl/2.4 mpich/3.2.1 +module load gcc/7.3.0 gsl/2.4 openblas/0.2.20 mpich/3.2.1 ``` ## Set used versions @@ -61,11 +61,13 @@ export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn" ``` ARGS=() +ARGS+=( "EPICS_BASE=${PREFIX}" ) ARGS+=( "INSTALL_LOCATION=${PREFIX}" ) ARGS+=( "INSTALL_LIB=${PREFIX}/lib" ) ARGS+=( "INSTALL_SHRLIB=${PREFIX}/lib" ) ARGS+=( "INSTALL_TCLLIB=${PREFIX}/lib" ) ARGS+=( "INSTALL_BIN=${PREFIX}/bin" ) +ARGS+=( "SYSGSL=1") ``` ## Prepare base build environment @@ -88,35 +90,42 @@ cd "${PREFIX}" tar xvf "${DOWNLOAD_DIR}/epics.extensions.configure.tar.gz" tar xvf "${DOWNLOAD_DIR}/oag.apps.configure.tar.gz" cd "${PREFIX}/oag/apps/configure" +make -e ``` +> +You have to fix the `clean::` target in `${PREFIX}/oag/apps/configure/PYTHON_RULES` + ## Build required tools and libraries from SDDS ``` cd "${PREFIX}" tar xvf "${DOWNLOAD_DIR}/SDDS.${SDDS_VERSION}.tar.gz" +cd "${PREFIX}/epics/extensions/src/SDDS/" +make -e "${ARGS[@]}" -C fftpack +make -e "${ARGS[@]}" -C lzma +make -e "${ARGS[@]}" -C matlib +make -e "${ARGS[@]}" -C mdblib +make -e "${ARGS[@]}" -C mdbcommon +make -e "${ARGS[@]}" -C mdbmth +make -e "${ARGS[@]}" -C meschach make -e "${ARGS[@]}" -C namelist make -e "${ARGS[@]}" -C pgapack +make -e "${ARGS[@]}" -C rpns/code make -e "${ARGS[@]}" -C SDDSlib make -e "${ARGS[@]}" -C SDDSlib clean -make -e "${ARGS[@]}" MPI=1 -C SDDSlib +make "${ARGS[@]}" MPI=1 -C SDDSlib ``` -== Compile (P)elegant +## Compile (P)elegant + ``` cd "${PREFIX}" -tar xvf "${DOWNLOAD_DIR}/elegant.${ELEGANT_VERSION}" +tar xvf "${DOWNLOAD_DIR}/elegant.${ELEGANT_VERSION}.tar.gz" PATH+=":${PREFIX}/bin" -cd "${PREFIX}/oag/apps/src/physics" -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" - -cd "${PREFIX}/oag/apps/src/xraylib" -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" - cd "${PREFIX}/oag/apps/src/elegant" -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" Pelegant -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" -C elegantTools -make "${ARGS[@]}" OP_SYS_LDLIBS="-lreadline -lncurses -lgfortran -lquadmath -lf2c -lm -lrt -ldl" -C sddsbrightness +make -e "${ARGS[@]}" +make clean +make "${ARGS[@]}" Pelegant ``` From 63ead647ed4e47670ed41535533135aac93435eb Mon Sep 17 00:00:00 2001 From: gsell Date: Wed, 9 May 2018 16:42:36 +0200 Subject: [PATCH 09/11] Update README.md --- MPI/elegant/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index 34a621a..b1d9e2e 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -39,7 +39,7 @@ https://ops.aps.anl.gov/publish/Pelegant_manual/node2.html ## Required Modules ``` -module load gcc/7.3.0 gsl/2.4 openblas/0.2.20 mpich/3.2.1 +module load gcc/7.3.0 gsl/2.4 OpenBLAS/0.2.20 mpich/3.2.1 ``` ## Set used versions From 36cd7b5d918d280ee6168ff416e72f96dc1ae1ef Mon Sep 17 00:00:00 2001 From: gsell Date: Wed, 9 May 2018 17:24:31 +0200 Subject: [PATCH 10/11] Update README.md --- MPI/elegant/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index b1d9e2e..63be3c1 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -61,6 +61,9 @@ export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn" ``` ARGS=() +ARGS+=( "GNU_BIN=$GCC_DIR/bin" ) +ARGS+=( "LD=/usr/bin/ld" ) +ARGS+=( "AR=/usr/bin/ar" ) ARGS+=( "EPICS_BASE=${PREFIX}" ) ARGS+=( "INSTALL_LOCATION=${PREFIX}" ) ARGS+=( "INSTALL_LIB=${PREFIX}/lib" ) @@ -80,7 +83,7 @@ cp "${DOWNLOAD_DIR}/defns.rpn" "${RPN_DEFNS}" cd "${PREFIX}" tar xvf "${DOWNLOAD_DIR}/epics.base.configure.tar.gz" cd epics/base -make +make -e "${ARGS[@]}" ``` ## Unpack EPICS extensions and OAG apps configuration From 5961aea2cf4959bee0efcb891275bb7431a989aa Mon Sep 17 00:00:00 2001 From: gsell Date: Mon, 14 May 2018 17:15:00 +0200 Subject: [PATCH 11/11] Update README.md --- MPI/elegant/README.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index 63be3c1..0d92392 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -57,13 +57,15 @@ export EPICS_BASE="${PREFIX}/epics/base" export HOST_ARCH=linux-x86_64 export EPICS_HOST_ARCH=linux-x86_64 export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn" +export PERLLIB="${PREFIX}/lib/perl" ``` ``` ARGS=() ARGS+=( "GNU_BIN=$GCC_DIR/bin" ) ARGS+=( "LD=/usr/bin/ld" ) -ARGS+=( "AR=/usr/bin/ar" ) +ARGS+=( "AR=/usr/bin/ar -rc" ) +ARGS+=( "RANLIB=/usr/bin/ranlib" ) ARGS+=( "EPICS_BASE=${PREFIX}" ) ARGS+=( "INSTALL_LOCATION=${PREFIX}" ) ARGS+=( "INSTALL_LIB=${PREFIX}/lib" ) @@ -89,11 +91,13 @@ make -e "${ARGS[@]}" ## Unpack EPICS extensions and OAG apps configuration ``` +ARGS+=( "TOOLS=${PREFIX}/bin") cd "${PREFIX}" tar xvf "${DOWNLOAD_DIR}/epics.extensions.configure.tar.gz" tar xvf "${DOWNLOAD_DIR}/oag.apps.configure.tar.gz" cd "${PREFIX}/oag/apps/configure" -make -e +sed -i "s/clean::/clean:/" RULES_PYTHON +make -e "${ARGS[@]}" ``` > @@ -104,17 +108,17 @@ You have to fix the `clean::` target in `${PREFIX}/oag/apps/configure/PYTHON_RUL cd "${PREFIX}" tar xvf "${DOWNLOAD_DIR}/SDDS.${SDDS_VERSION}.tar.gz" cd "${PREFIX}/epics/extensions/src/SDDS/" -make -e "${ARGS[@]}" -C fftpack -make -e "${ARGS[@]}" -C lzma -make -e "${ARGS[@]}" -C matlib -make -e "${ARGS[@]}" -C mdblib -make -e "${ARGS[@]}" -C mdbcommon -make -e "${ARGS[@]}" -C mdbmth -make -e "${ARGS[@]}" -C meschach -make -e "${ARGS[@]}" -C namelist -make -e "${ARGS[@]}" -C pgapack -make -e "${ARGS[@]}" -C rpns/code -make -e "${ARGS[@]}" -C SDDSlib +make -e "${ARGS[@]}" -C fftpack && \ +make -e "${ARGS[@]}" -C lzma && \ +make -e "${ARGS[@]}" -C matlib && \ +make -e "${ARGS[@]}" -C mdbcommon && \ +make -e "${ARGS[@]}" -C mdblib && \ +make -e "${ARGS[@]}" -C mdbmth && \ +make -e "${ARGS[@]}" -C meschach && \ +make -e "${ARGS[@]}" -C namelist && \ +make -e "${ARGS[@]}" -C pgapack && \ +make -e "${ARGS[@]}" -C rpns/code && \ +make -e "${ARGS[@]}" -C SDDSlib && \ make -e "${ARGS[@]}" -C SDDSlib clean make "${ARGS[@]}" MPI=1 -C SDDSlib ```