anchor.diff:  Step 5. Submit your job. You will need to set `QUEUE`, `PROJECT`, `PROCS`, and `WALLTIME`.
   You can configure those in `cfg-sys-1.sh` (see Step 3), set as env variables, or you can provide in your command line (see below).
   ----
  -$ export QUEUE=default
  +$ export QUEUE=debug-cache-quad
   $ export PROJECT=myproject
   $ export PROCS=3
  -$ export WALLTIME=01:00:00
  -
  -$ ./test/upf-1.sh theta upf-1.txt
  +$ export WALLTIME=00:10:00
  +
  +$ ./test/upf-1.sh theta
   
   // or 
   
  -$ QUEUE=default PROJECT=myproject PROCS=3 WALLTIME=01:00:00 ./test/upf-1.sh theta upf-1.txt
  +$ QUEUE=debug-cache-quad PROJECT=myproject PROCS=3 WALLTIME=00:10:00 ./test/upf-1.sh theta
   ----
   
   * `QUEUE` refers to the system queue name. The Theta machine has `default`, `debug-flat-quad`, and `debug-cache-quad`. For more information, please check https://www.alcf.anl.gov/user-guides/job-scheduling-policy-xc40-systems#queues
   * `PROJECT` refers to your allocated project name. Please check https://www.alcf.anl.gov/user-guides/allocations, for more detail.
   * `PROCS` is a number of nodes. We recommend adding extra 1 node in addition to the number of executions in your plan. In this example, we set 3 (1 + 2).
  +* `WALLTIME` refers to computing time you are requesting for individual node. The production queues are limited by policy. Check https://www.alcf.anl.gov/user-guides/job-scheduling-policy-xc40-systems#queues for more deail.
  +
   
   Step 6. Check queue status
   ----
  -$ qstat -h user_name -f
  -----
  +$ qstat -u user_name -f
  +----
  +
  +Step 7. Reviewing result files
  +After the job is completed, the results files are available in experiments directory (Supervisor/workflow/upf/experiments).
  +For example, `/home/hsyoo/candle_tutorial/Supervisor/workflows/upf/experiments/X000` will contains files like below,
  +----
  +-rw-r--r-- 1 hsyoo cobalt  2411 Aug 17 19:13 262775.cobaltlog
  +-rw-r--r-- 1 hsyoo users   1179 Aug 17 18:55 cfg-sys-1.sh <3>
  +-rw-r--r-- 1 hsyoo users      7 Aug 17 18:55 jobid.txt
  +-rw-r--r-- 1 hsyoo users   3310 Aug 17 19:13 output.txt <1>
  +drwxr-xr-x 4 hsyoo users    512 Aug 17 19:07 run <2>
  +-rw------- 1 hsyoo users  10863 Aug 17 18:55 swift-t-workflow.8X4.tic
  +-rw-r--r-- 1 hsyoo users    677 Aug 17 18:55 turbine.log
  +-rwxr--r-- 1 hsyoo users   5103 Aug 17 18:55 turbine-theta.sh
  +-rw-r--r-- 1 hsyoo users     60 Aug 17 18:55 upf-1.txt <3>
  +-rw-r--r-- 1 hsyoo users   4559 Aug 17 18:55 workflow.sh.log
  +
  +hsyoo@thetalogin4:~/candle_tutorial/Supervisor/workflows/upf/experiments/X000> ls -al run/ <2>
  +total 2
  +drwxr-xr-x 4 hsyoo users  512 Aug 17 19:07 .
  +drwxr-xr-x 3 hsyoo users 1024 Aug 17 20:33 ..
  +drwxr-xr-x 3 hsyoo users  512 Aug 17 20:34 test0
  +drwxr-xr-x 3 hsyoo users  512 Aug 17 19:13 test1
  +
  +hsyoo@thetalogin4:~/candle_tutorial/Supervisor/workflows/upf/experiments/X000> cat run/test0/model.log <4>
  +... many lines omitted ...
  +Epoch 10/10
  +60000/60000 [==============================] - 12s - loss: 4.3824 - acc: 0.7253 - val_loss: 2.1082 - val_acc: 0.8671
  +('Test loss:', 2.1082268813190574)
  +('Test accuracy:', 0.86709999999999998)
  +result: 2.10822688904
  +----
  +<1> `output.txt` contains stdout and stderr of this experiment. This is helpful to debug errors.
  +<2> `run` directory contains the output files. You will see two directories that are corresponding the IDs configured in upf-1.txt
  +<3> a copy of configuration files are available so that you can trace what were passed to this experiment.
  +<4> stdout of test0. After 10 epoches, validation loss was 2.1082. 
  +
   
   == Running mlrMBO based Hyperparameters Optimization (HPO) on Theta
   
  -Step 1. Checkout Supervisor repo
  -----
  -$ git clone https://github.com/ECP-CANDLE/Supervisor.git
  +Step 1. Create directory and checkout Supervisor & Candle repos.
  +You can skip this step if you already have done in previous section.
  +----
  +$ mkdir candle_tutorial
  +$ cd candle_tutorial
  +$ git clone -b master https://github.com/ECP-CANDLE/Supervisor.git
  +$ git clone -b library https://github.com/ECP-CANDLE/Candle.git
   ----
   
   Step 2. Move to mlrMBO workflow directory
  
positive.code: = CANDLE Library User Guide
  
  The CANDLE library provides a wrapper class and utility functions, which enable users run their own deep learning code in high performance computers that CANDLE supports. With the current version of CANDLE library, users should be able to run hyperparameter optimization (mlrMBO workflow) or parallel excution (upf workflow). Due to the design of both workflows, users are required to implement certain methods (will be explained in section 1) and modify several config files (section 2). This user guide will provide an overview of structure and explanation of parameters or varaiables as needed.
  
  = How to write CANDLE compliant deep learning code
  
  == Minimum requirements
  The CANDLE requires two methods, `initialize_parameters()` and `run()`.
  
  === Initialize_parameters Method
  In `initialize_parameters` method, we will construct a class and build a parameter set, which will be used inside your deep learning code (run method). We provides some common parameters such as `batch_size`, `epochs`, etc. In addition to that, you can construct your own parameters (see Aurgument Specification section below). Finally, the `initialize_parameters` should return a python dictionary, in this doc, will be called `gParameters` (global parameters).
  
  === Run Method
  You can place your deep learning code in `run(Dict)` method. You can use parameter varaiable like `gParameters['batch_size']`.
  
  We have an https://github.com/ECP-CANDLE/Candle/blob/library/examples/mnist/mnist_mlp_candle.py[example], that converted a simple MNIST neural net `mnist_mlp.py` provided by https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py[Keras Team] into CANDLE compliant form. In this example, you will see how the `initialize_parameters` method is implemented and how the actual NN code was transplanted in `run` method.
  
  Finally, the `run()` returns history. This can be omitted for upf workflow, but required for HPO workflow.
  
  [source,python]
  ----
  def initialize_parameters():
      mnist_common = common.MNIST(common.file_path,
          'default_model.txt',
          'keras',
          prog='mnist_mlp',
          desc='MNIST example'
      )  // <1>
  
      # Initialize parameters
      gParameters = default_utils.initialize_parameters(mnist_common)
      ..
  
      return gParameters   // <2>
  
  def run(gParameters): // <3>
      ##########################################
      # Your DL start here. See mnist_mlp.py   #
      ##########################################
  
negative.code: you will need to set `BENCHMARK_DIR` to point the directory that your script locates, and
  `MODEL_PYTHON_SCRIPT` to name the script you want to run
  ----
  BENCHMARK_DIR=/home/hsyoo/candle_tutorial/Candle/examples/mnist <1>
  MODEL_PYTHON_SCRIPT=mnist_mlp_candle <2>
  ----
  <1> This location should reflect your environment
  <2> Note this requires filename without extension (such as .py)
  
  Step 4. Config hyper parameters. In this step, we are configuring parameter sets, which we will iteratively evaluate.
  For example, you can create `workflow/data/mnist.R` as below.
  