Computer Sciences Department logo

CS 368-4 (2012 Fall) — Day 11 Homework

Due Monday, December 3, at the start of class.


Run a simulation program many times under a few different conditions, then analyze the raw data using R.

At heart, this assignment uses the same queue simulator from homework #8. But this time, we want to run different experimental conditions and then run a bunch of statistics on the raw data, all by running a single command! That is, we will create a simple workflow to handle all of the work.

Background Information

This is information about the script that I wrote. You do not need to write this program!

For background on the queue simulator itself, see homework #8. The script for this assignment is a little bit different:

Here is the new usage information (note the new script name):

Usage: queue_sim_loop [options] SERVERS CLIENTS-PER-HOUR COUNT

  --version         show program's version number and exit
  -h, --help        show this help message and exit
  -d, --departures  Allow clients to leave queue after waiting too long

Also, I wrote a simple (simplistic?) R script that analyzes the raw data. To learn more about R, visit the R Project website.


There are two main tasks you need to complete:

  1. Write submit files for each part of the workflow and make sure they work
  2. Write a DAGMan submit file for the whole workflow and get it to work

Part I: Individual Jobs

In this part, you will create and test four separate submit files that correspond to the four nodes of our workflow. Because each submit file is similar to ones you have written before, I am providing minimal guidance here.

To get started, follow these steps:

  1. Create and change to a new directory (ultimately, this assignment yields lots of files)
    mkdir Homework_11_First_Last
    cd Homework_11_First_Last
    That is, name your directory according to the email submission rules.
  2. Download the new simulator and associated R script
  3. Unpack the scripts:
    tar xzf homework-11.tar.gz
    You will have two files:

Now, write and test HTCondor submit files for each step of the process. A few details to note:

Make sure that you can successfully run all four jobs before moving on to the next part!

Part II: DAGMan

OK, now you have four working submit files. It is time to link them together into a single workflow. Obviously, we will use DAGMan to do this part.

First, draw a picture of the overall workflow. Pencil and paper is OK, no need to hand it in. But make sure you understand what each node does, what its inputs and outputs are, and how the nodes are connected. If you are unsure about this step, write to me!

Then, write the DAGMan submit file itself. It is not very complicated, and if you have done things right up to this point, you will not need to modify your HTCondor submit files from Part I at all.

And now, the moment we have been waiting for… Submit the entire workflow, stand back, and wait for the results!

Extra Challenges

Some ideas for extra learning:


Do the work yourself, consulting reasonable reference materials as needed. Any resource that provides a complete solution or offers significant material assistance toward a solution not OK to use. Asking the instructor for help is OK, asking other students for help is not. All standard UW policies concerning student conduct (esp. UWS 14) and information technology apply to this course and assignment.

Hand In

All homework assignments must be turned in by email! See the email page for more details about formatting, etc.

For this assignment, you must submit several files in order for your assignment to be complete:

Please do not include your output files this time!