Fusion (x86 cluster) ------------------- Fusion is a 320-node computing cluster for the Argonne's Laboratory Computing Resource Center (LCRC). The primary goal of the LCRC is to facilitate mid-range computing in all of the scientific programs of Argonne and the University of Chicago. This section will walk you through running a simple Swift script on Fusion. Requesting Access ~~~~~~~~~~~~~~~~~ If you do not already have a Fusion account, you can request one at https://accounts.lcrc.anl.gov/request.php. Email support@lcrc.anl.gov for additional help. Projects ~~~~~~~~ In order to run a job on a Fusion compute node, you must first be associated with a project. Each project has one or more Primary Investigators, or PIs. These PIs are responsible for adding and removing users to a project. Contact the PI of your project to be added. More information on this process can be found at http://www.lcrc.anl.gov/info/Projects. SSH Keys ~~~~~~~~ Before accessing Fusion, be sure to have your SSH keys configured correctly. SSH keys are required to access fusion. You should see information about this when you request your account. Check link:http://wiki.mcs.anl.gov/IT/index.php/SSH_keys[ssh FAQ] or email support@lcrc.anl.gov for additional help. Connecting to a login node ~~~~~~~~~~~~~~~~~~~~~~~~~~ Once your keys are configured, you should be able to access a Fusion login node with the following command: ----- ssh @fusion.lcrc.anl.gov ----- Creating sites.xml ~~~~~~~~~~~~~~~~~~ Swift uses various configuration files to determine how to run an application. 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 link:http://swiftlang.org/docs/index.php[documentation]. The first step is to paste the text below into a file named sites.xml. ----- include::../../etc/sites/fusion.xml[] ----- This file will require one customization. Create a directory called swiftwork. Modify \_WORK_ in sites.xml to point to a new directory. For example ----- /tmp/swiftwork ----- Creating tc ~~~~~~~~~~~ The tc configuration file gives information about the applications that will be called by Swift. More information about the format of tc can be found in the Swift user guide. Paste the following example into a file named tc ----- include::../../tests/providers/fusion/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. The script copies input file's content to another file using the Unix cat utility. Copy this script to the same directory that your sites.xml and tc.data files are located. ----- $ cp ~/swift/examples/misc/catsn.swift . $ cp ~/swift/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 catsn.swift ----- You should see 10 new text files get created, named catsn*.out. If you see these files, then you have succesfully run Swift on Fusion! Queues ~~~~~~ Fusion has two queues: shared and batch. The shared queue has a maximum 1 hour walltime and limited to 4 nodes. The batch queue is for all other jobs. Edit your sites.xml file and edit the queue option to modify Swift's behavior. For example: ----- batch ----- More information on Fusion queues can be found at http://www.lcrc.anl.gov/info/BatchJobs. More Help ~~~~~~~~~ The best place for additional help is the Swift user mailing list. You can subscribe to this list at link:https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user[swift-user]. When submitting information, send your sites.xml file, your tc.data, and any Swift log files that were created during your attempt.