x86 Cluster: PADS
-----------------

PADS is a petabyte-scale, data intense computing resource located
at the joint Argonne National Laboratory/University of Chicago
Computation Institute. More information about PADS can be found
at http://pads.ci.uchicago.edu.

Requesting Access
~~~~~~~~~~~~~~~~~
If you do not already have a Computation Institute account, you can request
access at https://www.ci.uchicago.edu/accounts. This page will give you a list
of resources you can request access to. Be sure that PADS is selected. If
you already have an existing CI account, but do not have access to PADS,
send an email to support@ci.uchicago.edu to request access.

SSH Keys
~~~~~~~~
Before accessing PADS, be sure to have your SSH keys configured correctly.
There is some basic information about SSH and how to generate your key at
http://www.ci.uchicago.edu/wiki/bin/view/Resources/SshKeys. Once you have
followed those instructions, you can add your key at
https://www.ci.uchicago.edu/support/sshkeys/.

Connecting to a login node
~~~~~~~~~~~~~~~~~~~~~~~~~~
Once your keys are configured, you should be able to access a PADS login
node with the following command:

-----
ssh yourusername@login.pads.ci.uchicago.edu
-----

Adding Software Packages
~~~~~~~~~~~~~~~~~~~~~~~~
Softenv is a system used for managing applications. In order to run Swift,
the softenv environment will have to be modified slightly. Softenv is
configured by a file in your home directory called .soft. Edit this file
to look like this:
-----
+java-sun
+maui
+torque
@default
-----

Log out of PADS, and log back in for these changes to take effect.

Which project(s) are you a member of?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PADS requires that you are a member of a project. You can determine this by
running the following command:

-----
$ projects --available

The following projects are available for your use

Project      PI                      Title
CI-CCR000013 Michael Wilde           The Swift Parallel Scripting System
-----

If you are not a member of a project, you must first request access
to a project at http://www.ci.uchicago.edu/hpc/projects.

You should make sure that you have a project set as default. Run
the projects command with no arguments to determine if you have a default.

------
$ projects
You have no default project set.
-----

To set your default project, use projects --set
------
$ projects --set CI-CCR000013 --all
Your default project for all CI clusters has been set to CI-CCR000013.
-----

Creating sites.xml
^^^^^^^^^^^^^^^^^^
Swift relies on various configuration files to determine how to
run. This section will provide a working configuration file which
you can copy and paste to get running quickly. The sites.xml file
tells Swift how to submit jobs, where working directories are
located, and various other configuration information. More
information on sites.xml can be found in the Swift User's Guide.

The first step is to paste the text below into a file named sites.xml.

-----
include::../../tests/providers/pads/coasters/sites.template.xml[]
-----

This file will require just a few customizations. First, create a
directory called swiftwork. Modify \_WORK_ in sites.xml
to point to this new directory. For example
-----
<workdirectory>/home/myhome/swiftwork</workdirectory>
-----

Creating tc.data
^^^^^^^^^^^^^^^^
The tc.data configuration file gives information about the applications
that will be called by Swift. More information about the format
of tc.data can be found in the Swift User's guide.

Paste the following example into a file named tc.data

-----
include::../../tests/providers/pads/coasters/tc.template.data[]
-----

Copy a Swift Script
^^^^^^^^^^^^^^^^^^^
Within the Swift directory is an examples directory which contains
several introductory Swift scripts. The example we will use in this
section is called catsn.swift. Copy this script to the same directory
that your sites.xml and tc.data files are located.

-----
$ cp ~/swift-0.93/examples/misc/catsn.swift .
$ cp ~/swift-0.93/examples/misc/data.txt .
-----

TIP: The location of your swift directory may vary depending on how
you installed it. Change this to the examples/misc directory of your
installation as needed.


Run Swift
^^^^^^^^^

Finally, run the script:

-----
 swift -sites.file sites.xml -tc.file tc.data catsn.swift
-----

You should see several new files being created, called catsn.0001.out, catsn.0002.out, etc. Each of these
files should contain the contents of what you placed into data.txt. If this happens, your job has run
successfully on PADS!

TIP: Make sure your default project is defined. Read on for more
information.

Read on for more detailed information about running Swift on PADS.


Queues
^^^^^^

As you run more application in the future, you will likely need
to change queues.

PADS has several different queues you can submit jobs to depending on
the type of work you will be doing. The command "qstat -q" will print
the most up to date list of this information.

.PADS Queues
[options="header"]
|=========================================================
|Queue   |Memory|CPU Time|Walltime|Node|Run|Que|Lm  |State
|route   |--    |--      |--      |--  |  0|  0|--  | E R
|short   |--    |--      |04:00:00|--  | 64|  0|--  | E R
|extended|--    |--      |--      |--  |  0|  0|--  | E R
|fast    |--    |--      |01:00:00|1   |  0|152|--  | E R
|long    |--    |--      |24:00:00|--  |232|130|--  | E R
|=========================================================

When you determine your computing requirements, modify this line in your
sites.xml:

-----
<profile key="queue" namespace="globus">fast</profile>
-----

More Help
~~~~~~~~~
The best place for additional help is the Swift user mailing list. You can subscribe to this list at
https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user. When submitting information, please send your sites.xml file, your tc.data, and any Swift log files that were created during your attempt.


