# Running MCC11 jobs on Cori
###### tags: `Offline`
## Running MCC11 jobs inside docker container
Before trying MCC11 jobs on Cori, I would like to go through the full `gen-g4-detsim-reco` chain in a SL7 docker container on a local machine.
Here I am using `docker-bd.fnal.gov` (use `duneimagegpvm01.fnal.gov` in the near future).
1. Copy over `dunepro.Production.proxy` to your local machine;
2. Start a generic sl7 container ` docker run --rm -it -v $PWD:/scratch -v /cvmfs:/cvmfs fermilab/fnal-wn-sl7`
3. Setup software environment in the container and obtain valid voms proxy
```shell=
export X509_USER_PROXY=/scratch/dunepro.Production.proxy
voms-proxy-init -noregen -rfc -voms dune:/dune/Role=Production
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
setup dunetpc v08_24_00 -q e17:prof
setup duneutil v08_24_00 -q e17:prof
```
4. Run a `gen` stage job with `lar -c prodgenie_nue_dune10kt_1x2x6.fcl -n 2 -o /scratch/local_v082400_n2_gen.root |& tee -a /scratch/run_local_v082400_n2_gen.log`
5. Run the downstream `g4` stage job with `lar -c standard_g4_dune10kt_1x2x6.fcl -s /scratch/local_v082400_n2_gen.root -n 2 -o /scratch/local_v082400_n2_g4.root |& tee /scratch/run_local_v082400_n2_g4.log`
6. Run the downstream `detsim` stage job with `lar -c standard_detsim_dune10kt_1x2x6.fcl -s /scratch/local_v082400_n2_g4.root -n 2 -o /scratch/local_v082400_n2_detsim.root |& tee /scratch/run_local_v082400_n2_detsim.log`
7. Run the downstream `reco` stage job with `lar -c standard_reco_dune10kt_1x2x6.fcl -s /scratch/local_v082400_n2_detsim.root -n 2 -o /scratch/local_v082400_n2_reco.root |& tee /scratch/run_local_v082400_n2_reco.log`
In my test, all of the above jobs finished with:
> Art has completed and will exit with status 0.
>
## Making shifter image available on Cori
This can be easily done with `shifterimg pull fermilab/fnal-wn-sl7` on Cori's login node.
## Running MCC11 jobs inside shifter image on Cori interactively (more details will be added here. Haven't tested all steps)
1. Copy over dunepro's proxy to Cori;
2. Submit an interactive job;
3. Startup the shifter container;
4. Setup software enviroment and obtain voms proxy;
5. Follow similar step as above to run the MCC11 jobs stage-by-stage.
## Things need to be addressed before production run on Cori
1. Use flux files from stash-cache instead of the default `/pnfs` location;
2. Stream output files to dCache instead of writing to local disk;
3. Are we keeping all the files from intermidiate stages?