X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=cluster_tools%2Fgate_run_submit_cluster.sh;h=f47ed6dcdba0923b7a915880ec5e5746b1d5dfc3;hb=b161f06e1441d4ebaed294d9254469266846b1c5;hp=136a56742ec3985e1eb8d87bba4bc29c0ef02c1a;hpb=6d1a465f35ea7632c0f57fc2a85565547fb00295;p=clitk.git diff --git a/cluster_tools/gate_run_submit_cluster.sh b/cluster_tools/gate_run_submit_cluster.sh index 136a567..f47ed6d 100755 --- a/cluster_tools/gate_run_submit_cluster.sh +++ b/cluster_tools/gate_run_submit_cluster.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -u SCRIPTNAME="$(basename "${0}")" @@ -9,29 +9,36 @@ usage exit 1 } -DEFAULTRELEASESUFFIX="06o" +DEFAULTRELEASESUFFIX="NONE" DEFAULTNUMBEROFJOBS="10" function usage { echo "${SCRIPTNAME} mac/main.mac njobs releasesuffix paramtogate" echo "default njobs = ${DEFAULTNUMBEROFJOBS}" -echo "default releasesuffix = ${DEFAULTRELEASESUFFIX}" +echo "default releasesuffix = ${DEFAULTRELEASESUFFIX} (NONE means use Gate in PATH)" } test $# -eq 0 && usage && exit 0 -SCRIPTDIR=~/gate/gate-tests/bin -RELEASEDIR="${HOME}/gate/release${3:-"${DEFAULTRELEASESUFFIX}"}" -JOBFILE=~/gate/gate-tests/job_release.job +SCRIPTDIR="${HOME}/git/gate-tests/bin" +RELEASESUFFIX=${3:-"${DEFAULTRELEASESUFFIX}"} +RELEASEDIR="${HOME}/releases/grid_release${RELEASESUFFIX}" +JOBFILE="$(dirname $0)/gate_job_cluster.job" echo "Checking stuff" test -f ${JOBFILE} || error "can't find job file ${JOBFILE}" -test -d ${RELEASEDIR} || error "invalid release dir ${RELEASEDIR}" +if test "${RELEASESUFFIX}" = "${DEFAULTRELEASESUFFIX}" +then + RELEASEDIR="NONE" + which Gate 2>&1 >/dev/null || error "there is no Gate in the PATH" +else + test -d ${RELEASEDIR} || error "invalid release dir ${RELEASEDIR}" +fi MACRODIR=$(pwd) test -d ${MACRODIR}/mac && test -d ${MACRODIR}/data || error "invalid path" MACROFILE=${1:?"provide relative macro path"} test -f ${MACRODIR}/${MACROFILE} || error "invalid macro" -OUTPUTDIR=$(mktemp --tmpdir=${MACRODIR} -d run.XXXX) +OUTPUTDIR=$(mktemp --tmpdir=${MACRODIR} -d run.XXXX || error "can't create temp dir") test -d ${OUTPUTDIR} || error "can't locate output dir" RUNID=${OUTPUTDIR##*.} NJOBS=${2:-"${DEFAULTNUMBEROFJOBS}"} @@ -40,14 +47,25 @@ PARAM="${4:-""}" echo "Lets roll!!" echo "runid is ${RUNID}" +echo "qsub is $(which qsub)" test -z "${PARAM}" && echo "no param" || echo "param is ${PARAM}" -echo "using release $(basename ${RELEASEDIR})" +if test "$RELEASESUFFIX" = "$DEFAULTRELEASESUFFIX" +then + echo "using $(which Gate)" +else + echo "using release $(basename ${RELEASEDIR})" +fi echo "submitting ${NJOBS} jobs" +PARAMFILE="${OUTPUTDIR}/params.txt" +echo "njobs = ${NJOBS}" >> "${PARAMFILE}" +echo "macro = ${MACROFILE}" >> "${PARAMFILE}" +test -z "${PARAM}" || echo "param = ${PARAM}" >> "${PARAMFILE}" + while test $NJOBS -gt 0; do qsub -N "gatejob.${RUNID}" -o "${OUTPUTDIR}" \ -v "PARAM=\"${PARAM}\",INDEX=${NJOBS},INDEXMAX=${NJOBSMAX},SCRIPTDIR=${SCRIPTDIR},OUTPUTDIR=${OUTPUTDIR},RELEASEDIR=${RELEASEDIR},MACROFILE=${MACROFILE},MACRODIR=${MACRODIR}" \ - ${JOBFILE} || error "submission error" + "${JOBFILE}" || error "submission error" let NJOBS-- done