Workflow 12450, Stage 1
| Workflow | 12450 |
| Campaign | 803 |
| Priority | 50 |
| Processors | 1 |
| Wall seconds | 3600 |
| Image | /cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest |
| RSS bytes | 4194304000 (4000 MiB) |
| Max distance for inputs | 30.0 |
| Enabled input RSEs |
CERN_PDUNE_EOS, DUNE_CA_SFU, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_GLASGOW, DUNE_UK_LANCASTER_CEPH, DUNE_UK_MANCHESTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, MONTECARLO, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC |
| Enabled output RSEs |
CERN_PDUNE_EOS, DUNE_CA_SFU, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_GLASGOW, DUNE_UK_LANCASTER_CEPH, DUNE_UK_MANCHESTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC |
| Enabled sites |
CZ_FZU |
| Scope | usertests |
| Events for this stage |
Output patterns
| | Destination | Pattern | Lifetime | For next stage | RSE expression |
|---|
| 1 | https://fndcadoor.fnal.gov:2880/dune/scratch/users/lwhite86/fnal/12450/1 | trainingFile*.root | | | |
Environment variables
| Name | Value |
|---|
| INPUT_CODE | /cvmfs/fifeuser2.opensciencegrid.org/sw/dune/7af99c003fdc5a9099bcea5a3699037367b46c7d |
| INPUT_TAR_DIR_LOCAL | /cvmfs/fifeuser3.opensciencegrid.org/sw/dune/09b6e2d917fc3a1c0ed6beac6e164db639cf582d |
File states
| Total files | Finding | Unallocated | Allocated | Outputting | Processed | Not found | Failed |
|---|
|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Job states
| Total | Submitted | Started | Processing | Outputting | Finished | Notused | Aborted | Stalled | Jobscript error | Outputting failed | None processed |
|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Stats of processed input files as CSV or JSON, and of uploaded output files as CSV or JSON (up to 10000 files included)
Jobscript
#!/bin/bash
:<<'EOF'
To use this jobscript to process 10 files from the dc4-vd-coldbox-bottom
data and put the output in the usertests namespace (MetaCat) and
scope (Rucio), and in the usertests:output-test-01 dataset in MetaCat and
Rucio, use this command to create the workflow:
justin simple-workflow \
--mql \
"files from dune:all where core.run_type='dc4-vd-coldbox-bottom' and dune.campaign='dc4' limit 10" \
--jobscript dc4-vd-coldbox-bottom.jobscript --max-distance 30 --rss-mb 4000 \
--scope usertests --output-pattern '*_reco_data_*.root:output-test-01'
The following optional environment variables can be set when creating the
workflow/stage: FCL_FILE, NUM_EVENTS, DUNE_VERSION, DUNE_QUALIFIER
EOF
# fcl file and DUNE software version/qualifier to be used
FCL_FILE=${FCL_FILE:-$INPUT_TAR_DIR_LOCAL/runPandora.fcl}
DUNE_VERSION=${DUNE_VERSION:-v10_12_02d00}
DUNE_QUALIFIER=${DUNE_QUALIFIER:-e26:prof}
FW_SEARCH_PATH=$FW_SEARCH_PATH:$INPUT_TAR_DIR_LOCAL
echo $FW_SEARCH_PATH
# number of events to process from the input file
if [ "$NUM_EVENTS" != "" ] ; then
events_option="-n $NUM_EVENTS"
fi
# First get an unprocessed file from this stage
did_pfn_rse=`$JUSTIN_PATH/justin-get-file`
if [ "$did_pfn_rse" = "" ] ; then
echo "Nothing to process - exit jobscript"
exit 0
fi
# Keep a record of all input DIDs, for pdjson2meta file -> DID mapping
echo "$did_pfn_rse" | cut -f1 -d' ' >>all-input-dids.txt
# pfn is also needed when creating justin-processed-pfns.txt
pfn=`echo $did_pfn_rse | cut -f2 -d' '`
echo "Input PFN = $pfn"
# Setup DUNE environment
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
# the xroot lib for streaming non-root files is in testproducts,
# so add it to the start of the path
#cp -r $INPUT_CODE/* .
#ls -lhrt
#ls $INPUT_CODE
#echo $PRODUCTS
#PRODUCTS=$INPUT_CODE:${PRODUCTS}
cp -r $INPUT_CODE/larpandoracontent .
#mv `pwd`/larpandoracontent/v04_17_04 `pwd`/larpandoracontent/v04_17_03
#mv `pwd`/larpandoracontent/v04_17_04.version `pwd`/larpandoracontent/v04_17_03.version
#ls `pwd`/larpandoracontent
#PRODUCTS=$INPUT_CODE:$PRODUCTS
PRODUCTS=`pwd`:$PRODUCTS
echo $PRODUCTS
setup dunesw "$DUNE_VERSION" -q "$DUNE_QUALIFIER"
echo $PRODUCTS
#ups active
echo "LArPandoraContent: ${LARPANDORACONTENT_DIR}"
export OMP_NUM_THREADS=${JUSTIN_PROCESSORS}
# Construct outFile from input $pfn
now=$(date -u +"%Y-%m-%dT_%H%M%SZ")
Ffname=`echo $pfn | awk -F/ '{print $NF}'`
fname=`echo $Ffname | awk -F. '{print $1}'`
#outFile=${fname}_reco_data_${now}.root
campaign="justIN.r${JUSTIN_WORKFLOW_ID}s${JUSTIN_STAGE_ID}"
(
# Do the scary preload stuff in a subshell!
export LD_PRELOAD=${XROOTD_LIB}/libXrdPosixPreload.so
echo "$LD_PRELOAD"
#lar -c $FCL_FILE $events_option -o $outFile "$pfn" > ${fname}_reco_${now}.log 2>&1
lar -c $FCL_FILE $events_option "$pfn"
#> ${fname}_training_${now}.log 2>&1
)
# Subshell exits with exit code of last command
larExit=$?
echo "lar exit code $larExit"
echo "$pfn" > justin-processed-pfns.txt
mv trackCharacterisationTraining.root trainingFile_${fname}.root
# LEIGH: No ART files so the below isn't needed?
#jobscriptExit=1
#if [ $larExit -eq 0 ] ; then
# # write metadata file if lar succeeded
# extractor_prod.py --infile "$outFile" --no_crc --appname reco \
# --appversion ${DUNE_VERSION} --appfamily art \
# --campaign ${campaign} > $outFile.ext.json
# extractorExit=$?
# echo "extractor_prod.py exit code $extractorExit"
#
# # Run pdjson2meta. THIS SHOULD MOVE TO SOMEWHERE LIKE duneutil ?
# /cvmfs/dune.opensciencegrid.org/products/dune/justin/pro/NULL/jobutils/pdjson2metadata \
# $outFile.ext.json all-input-dids.txt > $outFile.json
# p2mExit=$?
# echo "pdjson2metadata exit code $p2mExit"
#
# if [ $extractorExit -eq 0 -a $p2mExit -eq 0 ] ; then
# echo "Metadata extraction succeeds"
# echo "$pfn" > justin-processed-pfns.txt
# echo "===Metadata JSON==="
# cat $outFile.json
# echo
# echo "==================="
# jobscriptExit=0
# fi
#fi
ls -l
# Create compressed tar file with all log files
tar zcf `echo "$JUSTIN_JOBSUB_ID.logs.tgz" | sed 's/@/_/g'` *.log
#exit $jobscriptExit
exit $larExit