justIN           Dashboard       Workflows       Jobs       AWT       Sites       Storages       Docs       Login

Workflow 3810, Stage 1

Priority50
Processors1
Wall seconds3600
RSS bytes4194304000 (4000 MiB)
Max distance for inputs30.0
Enabled input RSEs CERN_PDUNE_EOS, 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, MANCHESTER, MONTECARLO, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled output RSEs CERN_PDUNE_EOS, 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, MANCHESTER, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled sites BR_CBPF, CA_SFU, CA_Victoria, CERN, CH_UNIBE-LHEP, CZ_FZU, ES_CIEMAT, ES_PIC, FR_CCIN2P3, IN_TIFR, IT_CNAF, UK_Bristol, UK_Brunel, UK_Durham, UK_Edinburgh, UK_Imperial, UK_Lancaster, UK_Liverpool, UK_Manchester, UK_Oxford, UK_RAL-Tier1, UK_Sheffield, US_BNL, US_Caltech, US_Colorado, US_FNAL-FermiGrid, US_FNAL-T1, US_Michigan, US_MIT, US_Nebraska, US_NotreDame, US_PuertoRico, US_SU-ITS, US_Swan, US_UChicago, US_UConn-HPC, US_UCSD, US_Wisconsin
Scopeusertests
Events for this stage

Output patterns

 DestinationPatternLifetimeFor next stage
1https://fndcadoor.fnal.gov:2880/dune/scratch/users/pmelas/03810/1myAnaOutput_*.root

Environment variables

NameValue
INPUT_TAR_DIR_LOCAL/pnfs/dune/resilient/users/pmelas/test6.tar
NUM_EVENTS1

File states

Total filesFindingUnallocatedAllocatedOutputtingProcessedNot foundFailed
100600004

Job states

TotalSubmittedStartedProcessingOutputtingFinishedNotusedAbortedStalledJobscript errorOutputting failedNone processed
26000000002501
Replicas per RSE10490.025244.510269.975244.50000000000003Replicas per RSEDUNE_US_FNAL_DISK_STAGE (50%)DUNE_UK_MANCHESTER_CEPH (50%)

RSEs used

NameInputsOutputs
DUNE_US_FNAL_DISK_STAGE250

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
DUNE_VERSION=${DUNE_VERSION:-v09_09_00}
# 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
export PRODUCTS=/cvmfs/dune.opensciencegrid.org/products/dune/testproducts:${PRODUCTS}
setup dunetpc v09_09_00 -q e19:prof
export TF_NUM_THREADS=${JUSTIN_PROCESSORS}   
export OPENBLAS_NUM_THREADS=${JUSTIN_PROCESSORS} 
export JULIA_NUM_THREADS=${JUSTIN_PROCESSORS} 
export MKL_NUM_THREADS=${JUSTIN_PROCESSORS} 
export NUMEXPR_NUM_THREADS=${JUSTIN_PROCESSORS} 
export OMP_NUM_THREADS=${JUSTIN_PROCESSORS}  

# Construct outFile from input $pfn 
now=$(date -u +"%Y-%m-%dT_%H%M%SZ")
outFile=myAnaOutput_${now}.root

campaign="justIN.w${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 $events_option -c /pnfs/dune/persistent/users/pmelas/prodcosmics_pdsp_pm.fcl -o gen.root
lar $events_option -c protoDUNE_refactored_g4_stage1.fcl gen.root -o g4_stage1.root
lar $events_option -c protoDUNE_refactored_g4_stage2_sce_datadriven.fcl g4_stage1.root -o g4_stage2.root
lar $events_option -c /pnfs/dune/persistent/users/pmelas/protoDUNE_refactored_detsim_stage1.fcl g4_stage2.root -o detsim_stage1.root
lar $events_option -c protoDUNE_refactored_detsim_stage2.fcl detsim_stage1.root -o detsim_stage2.root
lar $events_option -c /pnfs/dune/persistent/users/pmelas/protoDUNE_refactored_reco_35ms_sce_datadriven_stage1.fcl detsim_stage2.root -o reco_stage1.root
lar $events_option -c /pnfs/dune/persistent/users/pmelas/protoDUNE_refactored_reco_35ms_sce_datadriven_stage2.fcl reco_stage1.root -o reco_stage2.root
lar $events_option -c /exp/dune/app/users/pmelas/v09_09_00/runMyModule22.fcl reco_stage2.root -o $outFile "$pfn" > myAnaOutput_${now}.log 2>&1
)

echo '=== Start last 100 lines of lar log file ==='
tail -100 myAnaOutput_${now}.log
echo '=== End last 100 lines of lar log file ==='

# Subshell exits with exit code of last command
larExit=$?
echo "lar exit code $larExit"
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 -lRS

# Create compressed tar file with all log files 
tar zcf `echo "$JUSTIN_JOBSUB_ID.logs.tgz" | sed 's/@/_/g'` *.log
exit $jobscriptExit

justIN time: 2024-11-23 16:56:07 UTC       justIN version: 01.01.09