hurwitzlab/launcher

Name: launcher

Owner: Hurwitz Lab

Description: A simple utility for executing multiple sequential or multi-threaded applications in a single multi-node batch job

Forked from: TACC/launcher

Created: 2017-10-04 20:33:10.0

Updated: 2017-10-04 20:33:12.0

Pushed: 2017-10-04 23:36:16.0

Homepage: null

Size: 835

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Launcher

Build Status status

Launcher is a utility for performing simple, data parallel, high throughput computing (HTC) workflows on clusters, massively parallel processor (MPP) systems, workgroups of computers, and personal machines.

Installing Launcher

Launcher does not need to be compiled. Unpack the tarball or clone the repository in the desired directory. Then, set LAUNCHER_DIR to point to that location. Python 2.7 or greater and hwloc are required for full functionality. See INSTALL for more information.

Verifying Installation

Included in the download is a file called “quickstart” found in the folder “tests”. In order to verify installation, open the command line and find the launcher file, and then type “cd tests” and then press the enter key. If the quickstart file is in the correct place, there is no need for arguments, so type “./quickstart”. However, if the Launcher directory is found somewhere else, type “./quickstart “. The script will run in the terminal and if there are no errors in the process, the last line will say “Launcher: Done. Job exited without errors”.

Quickstart
Available Environment Variables

You should set the following environment variables:

The launcher defines the following environment variables for each job that is started:

Example: If you want to redirect stdout to a file containing the unique ID of each line, you can specify the following in the paramlist file: `a.out > out.o$LAUNCHER_JID`

If this particular execution instance of a.out was the first line in the job file, the output would be placed in the file “out.o1”.

Note: you can also use the launcher to run a sequence of serial jobs when you have more jobs to run than the requested number of processors.

Task Scheduling Behavior

The launcher has three available behaviors for scheduling jobs, available by setting the environment variable $LAUNCHER_SCHED: (descriptions below assume k = task, p = num. procs, n = num. jobs)

Using Launcher on Multi-/Many-core Processors

Launcher uses the hwloc utility to determine layout of cores on the node. If hwloc is installed on your system and the commands are in the default PATH, Launcher will use this to partition the cores on node between the tasks. You can enable task binding by setting LAUNCHER_BIND=1 before calling paramrun.

Using Launcher with Intel Xeon Phi (KNC) Co-processor Cards

Launcher has the ability to execute appropriately compiled executables natively on first generation Intel Xeon Phi (KNC) cards.

Available Environment Variables for Intel Xeon Phi execution:

Job Submission

Copy the example job submission script launcher.<sched> to your working directory to use as a starting point for interfacing with the desired batch system. Note that this script provides some simple error checking prior to the actual submission to aid in diagnosing missing executables and misconfiguration.

The launcher/extras/batch-scripts directory contains several example submission scripts:

Referencing Launcher

If you are using Launcher, please remember to make a reference to it when publishing results. The file paper/paper.bib contains the BibTeX-formatted citation list. Please reference entry Wilson:2014:LSF:2616498.2616533 (i.e., in LaTeX: \cite{Wilson:2014:LSF:2616498.2616534}).


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.