Merge pull request #96 from Azure/intersect_cycle

Intersect cyclecloud
This commit is contained in:
Cormac Garvey 2019-10-27 09:51:12 -06:00 коммит произвёл GitHub
Родитель b3cd29fc83 137bbf37ce
Коммит 6b643eb0de
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 65 добавлений и 23 удалений

Просмотреть файл

@ -1,12 +1,12 @@
#!/bin/bash
DATA_TAR_SAS_URL=/path/to/casedata.tar
DATA_TAR_SAS_URL=/path/to/casedata.tar.tgz
DATA_TAR=BO_192_192_28.tgz
SHARED_DATA=/data
DATA_INSTALL_DIR=${DATA_INSTALL_DIR:-/data}
pushd $SHARED_DATA
if [ ! -f ${SHARED_DATA}/${DATA_TAR} ]; then
pushd $DATA_INSTALL_DIR
if [ ! -f ${DATA_INSTALL_DIR}/${DATA_TAR} ]; then
wget -O ${DATA_TAR} "$DATA_TAR_SAS_URL"
fi
popd

Просмотреть файл

@ -2,19 +2,19 @@
DOWNLOAD_DIR=/mnt/resource
# setup IX
ECLPATH=/apps/ecl
SHARED_APP=/apps
APP_INSTALL_DIR=${APP_INSTALL_DIR:-/apps}
ECLPATH=${APP_INSTALL_DIR}/ecl
APP_NAME=ecl
APP_VERSION=2018.2
PACKAGE=${APP_VERSION}_IX_DVD.iso
PACKAGE2=${APP_VERSION}_DVD.iso
MODULE_DIR=${SHARED_APP}/modulefiles
MODULE_DIR=${APP_INSTALL_DIR}/modulefiles
MODULE_NAME=intersect_${APP_VERSION}
#NOTE!!! Populate these variables before running the script
LICENSE_PORT_IP=<PORT@IP for license server>
IX_ISO_SAS_URL=/path/to/intersect_iso.tar
ECLIPSE_ISO_SAS_URL=/path/to/eclipse_iso.tar
IX_ISO_SAS_URL=/path/to/2018.2_IX_DVD.iso
ECLIPSE_ISO_SAS_URL=/path/to/2018.2_DVD.iso
function create_intersect_modulefile {
mkdir -p ${MODULE_DIR}
@ -23,8 +23,8 @@ cat << EOF >> ${MODULE_DIR}/${MODULE_NAME}
#
# intersect module for use with 'environment-modules' package:
#
prepend-path PATH ${SHARED_APP}/${APP_NAME}/tools/linux_x86_64/eclpython/bin
prepend-path PATH ${SHARED_APP}/${APP_NAME}/macros
prepend-path PATH ${APP_INSTALL_DIR}/${APP_NAME}/tools/linux_x86_64/eclpython/bin
prepend-path PATH ${APP_INSTALL_DIR}/${APP_NAME}/macros
setenv LM_LICENSE_FILE ${LICENSE_PORT_IP}
setenv F_UFMTENDIAN big
EOF
@ -40,7 +40,7 @@ sudo mount -t iso9660 -o loop ${DOWNLOAD_DIR}/${PACKAGE2} /mnt/iso2
csh /mnt/iso2/ECLIPSE/UNIX/install/cdinst.csh <<EOF
2
A
${SHARED_APP}/${APP_NAME}
${APP_INSTALL_DIR}/${APP_NAME}
y
EOF
@ -53,10 +53,11 @@ sudo mount -t iso9660 -o loop ${DOWNLOAD_DIR}/${PACKAGE} /mnt/iso
csh /mnt/iso/UNIX/install/cdinst.csh <<EOF
A
${SHARED_APP}/${APP_NAME}
${APP_INSTALL_DIR}/${APP_NAME}
y
EOF
create_intersect_modulefile
sudo sed -i 's/\/opt\/intel\/compilers_and_libraries_2018.1.163\/linux\/mpi/\/apps\/ecl\/tools\/linux_x86_64\/intel\/mpi\/2018.1.163/g' ${ECLPATH}/tools/linux_x86_64/intel/mpi/2018.1.163/intel64/bin/mpivars.sh
SED_STR="s/\/opt\/intel\/compilers_and_libraries_2018.1.163\/linux\/mpi/\\"${APP_INSTALL_DIR}"\/ecl\/tools\/linux_x86_64\/intel\/mpi\/2018.1.163/g"
sudo sed -i $SED_STR ${ECLPATH}/tools/linux_x86_64/intel/mpi/2018.1.163/intel64/bin/mpivars.sh

Просмотреть файл

@ -60,3 +60,44 @@ To see if the job is running do
````
qstat -aw
````
## Install and run intersect Benchmarks using [Azure CycleCloud](https://docs.microsoft.com/en-us/azure/cyclecloud/) Cluster
## Prerequisites
These steps require a Azure CycleCloud cluster with PBS. The `cyclecloud_simple_pbs` template in the examples directory a suitable choice.
Follow the steps in the examples/cyclecloud_simple_pbs/readme.md to setup cycle, import the template and start cluster.
Log in to the headnode of the cluster (from cycleserver):
```
$ cyclecloud connect master -c <cyclecloud cluster name>
```
## Installing Intersect
You will need to copy the apps/intersect folder to the cyclecloud master.
Run the following to install ntersect on the cluster (in /scratch):
export APP_INSTALL_DIR=/scratch
```
apps/intersect/install_full_intersect_2018.2.sh
```
## Install the data sets for intersect
export DATA_INSTALL_DIR=/scratch
```
apps/intersect/install_case_intersect_2018.2.sh
```
## Running Intersect
Copy apps/intersect to the cyclecloud master node.
To run on two HB nodes with 8 total cores (4 cores on each node) run ( Intersect installation and case model are in /scratch)
```
qsub -l select=2:ncpus=60:mpiprocs=4 -v case=BO_192_192_28,APP_INSTALL_DIR=/scratch,DATA_INSTALL_DIR=/scratch apps/intersect/run_intersect_2018.2.sh
```

Просмотреть файл

@ -4,19 +4,21 @@ set -o pipefail
APP_NAME=intersect
APP_VERSION=2018.2
SHARED_APP=/apps
SHARED_DATA=/data
ECLPATH=$SHARED_APP/ecl
case=${case:-BO_192_192_28}
APP_INSTALL_DIR=${APP_INSTALL_DIR:-/apps}
DATA_INSTALL_DIR=${DATA_INSTALL_DIR:-/scratch}
ECLPATH=$APP_INSTALL_DIR/ecl
#NOTE!! this path will depend on the dataset tar structure. the tar we used had case files under data e.g. data/BO_192_192_28
CASEPATH=data/${case}
source /etc/profile # so we can load modules
module use $SHARED_APP/modulefiles
CASEPATH=${PBS_O_WORKDIR}/${case}
export MODULEPATH=${APP_INSTALL_DIR}/modulefiles:$MODULEPATH
module use $APP_INSTALL_DIR/modulefiles
module load intersect_${APP_VERSION}
source ${ECLPATH}/tools/linux_x86_64/intel/mpi/2018.1.163/intel64/bin/mpivars.sh
cores=`cat $PBS_NODEFILE | wc -l`
cp $SHARED_DATA/${case}.tgz .
cd $PBS_O_WORKDIR
cp $DATA_INSTALL_DIR/${case}.tgz .
tar xvf ${case}.tgz
#
start_time=$SECONDS
@ -31,8 +33,6 @@ eclrun_time=$(($end_time - $start_time))
case_output=$CASEPATH/${case}.LOG
cp -r $CASEPATH $SHARED_DATA
# extract telemetry
if [ -f "${case_output}" ]; then
# SECTION Simulation complete. E 215s = 0h03m35s | C [198s,206s] | M [879.1M,1.2G,29.1G]