Getting Started

Acquiring User Account

For participants of the workshop, please skip to Accessing Chalawan.

To register for an account, directly go to These processes below describe registration processes, for further information please contact The full registration process is described here:


Register for an account via online registration. We will review your information and activate your account within one working day.


Fill an online application form and submit. Once completed, you should receive notification of our decision within a week and further query regarding required software and setup if any.


Once your account and required setup are ready, we will send you email regards account details and how to login to Chalawan cluster.


Learn how to submit a job as well as uploading/download-ing your file to/from Chalawan cluster from Tutorials and Examples. Now you can launch your first job.


You can monitor Chalawan cluster status and utilization in the user-login area where you can also monitor the status of your submitted jobs.

You can now start your project. For more information on how to submit jobs and other usages, let’s see Tutorials & Example.

Using the command-line interface

Since our operating system is based on GNU/Linux, a command-line interface or command language interpreter (CLI) is the primary mean of interaction with our HPC. In case you are not familiar with the command-line interface, free-online courses at codecademy is a good place to start.

Accessing the Chalawan

The Chalawan Cluster is an isolated system which resides in the NARIT’s internal network. To access the Chalawan using the Internet outside NARIT, first, you need to log into the gateway machine (skip this step if you are connected directly to the Internet at NARIT). The gateway machine’s IP address and other information are given to you once you get the permission to access the Chalawan Cluster (For application, see the application page. For workshop participants, contact our staffs). Here we describe some methods for access to the head node passing through an intermediate host (gateway). If the first method doesn’t work for you, see another method below.

For Microsoft Windows user, see Connect to the Remote Server from Microsoft Windows.

Secure shell (ssh) through a gateway

This is the easiest method that using the ProxyJump directive. Once you have start terminal, type the following command and run (don’t forget to substitute <gateway.ip> and <port> with the given information):

If you enter the command properly, it will ask you for the gateway machine password and then the head node password. The successful connection will print output like this:

If you are not successful to login with this method, please read the next one.

The Naïve Method

For an older version of ssh, this method always works for you. Log in to the gateway machine with the given port number:

After that, log in to the head node:

Queuing System

The Chalawan HPC cluster uses the Open Grid Engine queuing system for scheduling jobs and for managing computational resources in the cluster. This includes all the compute nodes, memory, data storage, and other resources.

Your First Parallel Job

A “Hello World” with MPI

Let’s try running your first Message Passing Interface (MPI) program. The code is written in python which will print the message “hello world” from multiple processes. Create a file, copy and paste these following lines:

Save the file, then type in the command module load python3.6 (we will explain about module environment below). Then, execute the file with the command mpiexec -n 4 python3 If successful, this will print output like:

Note that the messages are not printed in the order of increment. Because the tasks were sent to separated processes and the order of printed messages are that of execution completion, not the execution initiation.

Submitting a Job

Using a job-script is a convenient way to interact with the cluster. The script will be sent to the Grid Engine via qsub command. Grid Engine will allocate the resource for all users’ jobs. You can submit any standard shell script (bash, csh, etc), with qsub.

The file can contain any command you wish to run. It can be the command mpiexec -n 4 python3 which executes our simple parallel python program. The general command-line for qsub looks like this:

This is an example of a long command with many options and looks complex. Thus, it is convenience to put these options inside a script file; The options starting with #$ will be passed to the Grid Engine. The example below is a script file for running GIZMO:

Here is the explanation of the options we use:

  • -N Name of the job
  • -cwd Execute the job at the current working directory. Error message and a log file are also written here.
  • -pe The parallel environment we wish to use.
  • -o Output filename
  • -e Error filename

Full list of arguments and explanation can be found here or you can type man qsub. We also recommend you to read Sun Grid Engine for beginners by Bioinformatics Platform at Max-Delbrück-Centrum für Molekulare Medizin (MDC).

Data Transfer

SecureCopy (scp)

scp is a basic command used to transfer files. For more information about scp, type man scp or scp --help.

Note: option -r is recursive

To transfer a file from remote (in this case the Castor) to local

To transfer multiple files from remote to local

To transfer a file from local to remote

Using Module Environments

The Modules package provides dynamic modification of the user’s environment via modulefiles. List of all available modules are displayed; when typing the command:

To use a module, type the command modulefollowedload by the name of modulefile. This will modify the user’s environment. The user can remove the environment setting by unloading the loaded modulefile, or by logging out of the system. To unload a module, use the command module unload modulefile. Many modulefiles can be loaded at the same time by typing module load modulefile1 modulefile2 .... If you would like to know which module has been loaded, you can use module list. Sometimes, it is convenient to remove all the loaded modulefiles, let’s, which can be done by typing module purge. The example below shows how to load the MUSIC modulefile, list the names, and remove all of them.

Some modulefiles may be conflicted with currently loaded modulefiles, so you have to use module switch or module swap module1 module2. For module package documentation type module --help or module -H.

For further information and support, please send e-mail to