Working on the Cluster - NSBLab/MATLAB-connectome-intro GitHub Wiki

Working on the cluster

Start with the fundamentals of using the MASSIVE operating system

MASSIVE/HPC clusters Linux/bash scripting
Principles and Philosophy As computational neuroscientists, the work we do can get computationally demanding. To facilitate this, we (and many other labs) will use what is called a High-Performance Computing (HPC) cluster.

Our cluster is called MASSIVE, and it consists of many interconnected nodes which function similar to your laptop or desktop PC, but at a much larger scale.

MASSIVE is a cloud computing solution. This means that we connect to MASSIVE and its desktops remotely, so you won’t need a powerful computer to access MASSIVE and it can be accessed anywhere in the world. You may however need a reliable internet connection in order to access the remote desktop without much latency. Similarly, nothing you save on MASSIVE will be saved on your personal computer, so you may need to transfer relevant files if necessary.

Your MASSIVE desktop uses an operating system called Linux, which is a Unix-like operating system. It basically works just like the Windows or Macintosh operating systems that you might be more familiar with, but with a greater emphasis on command line usage than menus for navigation.

This means you’ll want to open what is known as a terminal, where you can run text based commands to open and move files or even run different software programs. Bash is a language used in Linux to write these text based commands.

When running software on MASSIVE specifically, you’ll often need to load specific modules before you get started in the terminal you’re currently running.

Introduction You should read the guidelines and talk to Chao about creating a MASSIVE account.

The Strudel web client (currently in beta) is the simplest method of opening a desktop and what we recommend for beginners.

See section 1.1 on getting started on MASSIVE.

Before you run any software, you’ll need to be familiar with the basic syntax of bash.

Andy’s Brain Book provides an intro to bash for Linux/Unix with an emphasis on how this can be used to run relevant neuroimaging software you might use. When using the brain book, you’ll need to launch a MASSIVE desktop and then open the terminal. There are a few small modifications you’ll have to make when using the brain book tutorials on MASSIVE - see section 1.2.

  • Lessons 1-4 will cover general commands for navigating file systems and directory trees.
  • Lessons 5-6 will cover for loops and if else statements (even if you’re familiar with these operations in another language, the syntax can vary in bash).
  • Lessons 7-9 will cover writing and running scripts that will allow you to interact with your data, run your analyses, or anything else you wish to do with your code

    Basic commands to be familiar with (explained in detail in the Linux/bash scripting section): pwd, cd, ls, mkdir, rmdir, cp, mv, rm

    You can see a cheat sheet here - this is a reminder of some of the important content covered in the brain book

Advanced techniques
Other notes
  • To launch a desktop within Strudel, you must first select which GPU node you wish to use. These nodes vary in how much memory is available, ranging from the P4 and Single T4 light compute nodes, to the more powerful Dual T4 and A40 heavy compute nodes.
  • Each node has a login queue based on the availability of resources, with the heavy compute nodes sometimes taking longer to connect to. If you find you’re waiting in the queue for ages, try connecting to a different node and let someone in the team know if you’re still struggling to access a desktop
VirtualGL
  • This is a graphics library for Unix/Linux that is needed when running some software on a MASSIVE desktop
  • Many visualisation tools will fail if you haven’t loaded the virtualgl module and added ‘vglrun’ before your command
    • e.g., vglrun freeview […]
  • This detail isn’t included in some of the attached tutorials on external websites or their example code, so make sure to include this where necessary when running code on MASSIVE

    List of installed MASSIVE modules

⚠️ **GitHub.com Fallback** ⚠️