Self help

See below our detailed self help guides to assist you to get started.

  • Logging in

    ÐÂÀË²ÊÆ±'s Phoenix cluster can be accessed via the  protocol, the server name is isphoenix.adelaide.edu.au and the port used is the default port 22.

    Depending on the operating system (OS), there are a few ways to connect.

    Linux and Mac

    Open a command line (an ssh client should be installed by default on both OSs) and use the following command to connect to the phoenix cluster using University of ÐÂÀË²ÊÆ± credentials: ssh <userid>@phoenix.adelaide.edu.au

    Here, <userid> refers to the University of ÐÂÀË²ÊÆ± identification number. Once a connection is established, a prompt asking for UoA password should appear.

    Windows

    There are various programmes which can be used to connect to Phoenix.

    Windows XP/7/8

    The recommended software to use under Windows XP/7/8 is called PuTTY ( and install PuTTY). Once you have got your copy of PuTTY, you can follow this PuTTY set up to get your PuTTY configured. An alternative to PuTTY is the .

    Windows 10

    The recommended software is still PuTTY (see previous section).

    However, a default Windows 10 installation usually offers a . An pre-release version of exists. If it is desired to install the package open PowerShell with Administrator rights.

    1. Allow running scripts with Set-ExecutionPolicy RemoteSigned
    2. Installing Chocolatey (Package manager) iwr -UseBasicParsing | iex
    3. Install OpenSSH via choco install openssh

    In a similar way to Linux and Mac one can now connect to Phoenix using the Powershell:  ssh.exe <userid>@phoenix.adelaide.edu.au

    Cygwin

    If you have cygwin installed, then you can open a cygwin-terminal and then follow the Linux and Mac section, if you never heard of cygwin, safely ignore this note.

  • Transferring files

    Before you run your application, you will need to upload your data and/or program code from your computer to your directory on the Phoenix system. Fortunately, this step is very easy and there are a number of ways to do this.

    Using a file transfer client

    For Windows users, is an ideal place to start. Download the .  If you need help to set up WinSCP, you may find this useful.

    For Mac users, is an option, you can . Use SFTP to establish the connection.

    is another alternative, however, you will have to . Download .

    If you need help to set up Cyberduck or Fetch, you may find. This step by step or this step by step useful.

    Using terminal commands

    Using the command line interface may seem like a challenge to start with, but becomes easy with practice. The two common commands for transferring files using the terminal are scp and sftp.

    scp uses a similar syntax to the local cp command by specifying the file or directory to copy and the destination:
    scp -r myfile.txtOrMydirectory aXXXXXXX@phoenix.adelaide.edu.au:~/fastdir/MyPhoenixFolder

    Remote file locations are specified by prepending the file path with the user and hostname as in the example above. For further details you may wish to refer to this .

    sftp (secure ftp) provides a similar interface to the ftp command. First, navigate to the local directory where your files reside. You can then initiate an sftp session to phoenix with the following command:
    sftp aXXXXXXX@phoenix.adelaide.edu.au

    Once the sftp session has started, you can use put and get to upload and download files to/from the remote computer. There are other commands available using the sftp protocol, to learn more you can look at this .

    If you need to transfer files from tizard to Phoenix, you need to know your tizard credentials, path to folders on tizard to copy from, and path on Phoniex to copy to.
    scp  USER@TIZARD:/path/to/files $FASTDIR/ somepath

    Interacting with the Phoenix System: Mastering Linux Basics

    Like most HPC systems, Phoenix uses Linux as its operating system. Interacting with the system is easier if you are familiar with the basics of the Linux command line interface. As a starting point to learn about Linux basics and discover the most useful commands for using Phoenix, you can refer to our guide.

  • Loading software packages

    Software packages on Phoenix are organised in modules, some of the currently available packages and documentations can be found .

    In most cases, your required software is not loaded by default on the Phoenix system. After logging in, you will need to load your required software before you can perform any calculations. Phoenix uses the module system to manage the software environment. To see a list of the available software, use the module avail command as in the example below. If you can not find your required software under this list, there is a good chance we can make it available to you, contact us via email to make a software installation request.

    $ module avail

    ----------------------------------------------------- /usr/share/Modules/modulefiles ------------------------------------------------------
    dot module-git module-info modules null use.own

    ------------------------------------------------------------ /etc/modulefiles -------------------------------------------------------------
    cuda/6.0 cuda/7.0 gnu-parallel/20150322 intelmpi/5.0.3.048 openmpi/gnu/1.8.4 subread/1.4.6-p2
    cuda/6.5 gcc/4.8.4 intel/13.1.3.174 matlab/2014a openmpi/intel/1.8.1

    To load a software package, use the module load command:

    $ module load cuda/6.5

    To unload a software package, use the module unload command:

    $ module unload gcc/4.8.4

    To swap between software packages, use the module swap command:

    $ module swap cuda/6.5 cuda/7.0

    For advance users:

  • Perparing a job script

    There are two components required to submit a job for analysis in the Phoenix system.

    • The software you wish to run (and any associated data files)
    • A job script that requests system resources

    To ensure a fair and optimized system for all Phoenix users, we use a resource management tool, SLURM, for job scheduling. In order to submit a job to Phoenix, you must create a SLURM job script and save this along with the program files, into your directory folder on Phoenix. Below are examples of sample job scripts called <my_job.sh> for each of the two common job types, namely simple jobs and parallel (MPI) jobs. For each job type, a downloadable version is provided for you to use. Please configure your job script according to one of following that best suits your requirements.

    Creating a simple job script

    A job script is a text file that specifies the resources your code needs to run. The job scheduler then uses these resources to determine when to to run your job. Let's have a look at a simple job script example for some sequential code (that only runs on 1 CPU core):

    #!/bin/bash
    #SBATCH -p batch # partition (this is the queue your job will be added to)
    #SBATCH -N 1 # number of nodes (use a single node)
    #SBATCH -n 1 # number of cores (sequential job uses 1 core)
    #SBATCH --time=01:00:00 # time allocation, which has the format (D-HH:MM:SS), here set to 1 hour
    #SBATCH --mem=4GB # memory pool for all cores (here set to 4 GB)

    # Executing script (Example here is sequential script)
    ./my_sequential_program # your software with any arguments

    We'll begin by explaining the purpose of each line of the script example:

    The header line #!/bin/bash simply tells the scheduler which shell language is going to be used to interpret the script. The default shell on Phoenix is bash.

    The next set of lines all begin with the prefix #SBATCH. This prefix is used to indicate that we are specifying a resource request for the scheduler.The scheduler divides the cluster workload into partitions, or work queues. Different partitions are used for different types of compute job. Each compute job must select a partition with the -p option. To learn more about the different partitions available on Phoenix, see <reference>.

    The Phoenix cluster is a collection of compute nodes, where each node has multiple CPU cores. Each job must specify the CPU resources required by using the -N option to request nodes and the -n to request the number of cores per node required. See <reference>

    Each compute job needs to specify an estimate of the amount of time it needs to complete. This is commonly referred to as the walltime, specified with the --time=HH:MM:SS option. The estimated walltime needs to be larger than the actual time needed by the job, otherwise the scheduler will terminate the job for exceeding its requested time.
    Dedicated memory (RAM) is allocated for each job when it runs, and the amount of memory required per node must be specified with the --mem option.

    A simple job is one in which the computational process is sequential and is carried out by a single node. (Note: If your program file does not use MPI or MPI enabled libraries, your job belongs to this category.) Depending on your computational needs, you may need to use either CPU or GPU-accelerated computing nodes. This provides some insights about the differences between . If you need further support with this, please contact the team to discuss.

    Below is a sample job script for simple CPU jobs. You will need to create an .sh file in your directory on Phoenix, and can copy and paste the script below into that file. Please remember you must then configure the job script to your needs. The most common fields that need modification are the number of nodes and cores you wish to use, the duration of time for which you wish to run the job, and the email address to which notifications should be sent (i.e. your email address).

    #!/bin/bash
    #SBATCH -p cpu # partition (this is the queue your job will be added to)
    #SBATCH -N 1 # number of nodes (due to the nature of sequential processing, here uses single node)
    #SBATCH -n 2 # number of cores (here uses 2)
    #SBATCH --time=01:00:00 # time allocation, which has the format (D-HH:MM), here set to 1 hour
    #SBATCH --mem=4GB # memory pool for all cores (here set to 4 GB)

    # Notification configuration
    #SBATCH --mail-type=END # Type of email notifications will be sent (here set to END, which means an email will be sent when the job is done)
    #SBATCH --mail-type=FAIL # Type of email notifications will be sent (here set to FAIL, which means an email will be sent when the job is fail to complete)
    #SBATCH --mail-user=firstname.lastname@adelaide.edu.au # Email to which notification will be sent

    # Executing script (Example here is sequential script and you have to select suitable compiler for your case.)
    bash ./my_program.sh # bash script used here for demonstration purpose, you should select proper compiler for your needs

    For simple GPU jobs, the following example job script can be copied and pasted into a new .sh file in your Phoenix directory:

    #!/bin/bash

    # Configure the resources required
    #SBATCH -p gpu # partition (this is the queue your job will be added to)
    #SBATCH -n 8 # number of cores (here uses