Appname

Notitle

Application name is a ... short description taken from project website.

Appname is available as a module on Apocrita. Optionally add some lines about modules if there are special use cases, e.g MPI

Versions

Optional section to cover MPI / OpenJDK vs Oracle versions. Not to be used to cover 2.7 -> 2.3 differences, except for things like python 2 / python 3 where major changes have been made and they are effectively separate.

Open JDK

Open JDK is a free and open source implementation of the Java Platform.

Oracle JDK

Oracle JDK is a free, closed source implementation of the Java Platform.

OpenMPI

Using OpenMPI is supported but it is recommended to use IntelMPI.

IntelMPI

IntelMPI is better apparently.

Usage

Useful and or essential parameters and settings for the application. To run the latest installed version of appname, simply load the modulename module:

module load appname
  • If the usage page looks neat, add the appname -h output
  • If it's ugly, but possible to provide a cleaned up version in < 5 lines, add the appname -h output
  • If it's long, tell the user how to find the help documentation (man page, -h , --help) and maybe a typical example or syntax

then run one of the appname commands such as:

appname -wibble -i input.txt

Issues and bugs should be listed here in the usage section unless they affect an optional version e.g. OpenMPI, then they should be listed under that section, be careful to avoid any time sensitive text e.g. 'Will be fixed soon'. See examples:

Known Issue jobRunner

Failure to set -jobRunner will result in a failed job that does not request resources correctly.

Appname 2.7 Handling of bob

A bug affecting the handling of values of bob in version 2.7 means bobby drop no work. Further information is available in the bug report.

This issue is fixed in version 2.8 available as a module module load bob/2.8

$SV_DIR

$SV_DIR is set by the modulefile allowing Genome STRiP to function correctly.

Example jobs

Serial job

Here is an example job running on 4 cores:

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 4
#$ -l h_rt=4:0:0
#$ -l h_vmem=2G

module load appname
export VARS
appname params

Parallel job

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe parallel 64
#$ -l h_rt=4:0:0
#$ -l infiniband=nxv

module load appname
export VARS
appname params

GPU job

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 16
#$ -l h_rt=4:0:0
#$ -l h_vmem=7G
#$ -l gpu=1

module load appname
export VARS
appname params

Installing packages / plugins / addons

Optional section on installing packages / plugins e.g. rubygems python venvs

Python modules can be managed via virtualenv...

module load python
virtualenv bob
source bob/bin/activate

pip install requests

References

List of websites for project page, manuals, tutorials etc.

Template notes / usage

Remove this section

  • Remove sections that are not required, no blank sections with N/As
  • Check any images fit the page and don't distort the layout on desktop or mobile
  • Don't just replicate the manual
  • Explain how to use the tool on the cluster not the tool itself
  • Check that all qsub scripts / commands ACTUALLY work
  • Update the main apps page via the script
  • If bash code is present, change no-highlight to bash in code blocks

Job scripts

  • Change the examples to fit app.
  • Follow the examples, don't add sge options that are not required.
  • Use the full name of sge options not shortcuts e.g. infiniband not ib
  • Make sure to keep requests on at a usable size but not excessive as values may be copy pasted by users.
  • Ensure that the job actually works.