General Questions

PARAM Ananta is the name of the NSM supercomputer hosted at IIT Gandhinagar.

A new User can start with a Spack Usage Guide and, User Manual (PARAM Ananta User Guide).

MegaFLOPS/GigaFLOPS/TeraFLOPS/PetaFLOPS are millions/billions/trillions/quadrillions of Floating-point Operations (calculations) Per Second.

After the faculty member has applied for the account on PARAM Ananta, students may submit the form using https://istf.iitgn.ac.in/hpc/applynow.php.

No. Please read the User guidelines on https://istf.iitgn.ac.in/.

Use the “passwd <username>” command to change your current password.

Linux is an open-source operating system that is similar to UNIX. It is widely used in High Performance Computing.

Although it may be possible to use the executables generated on other machines, all users are recommended to recompile the software in their home directory if they are not available on PARAM Ananta.

Users are strongly advised to back up their data periodically, as the PARAM Ananta Team does not provide a backup mechanism for user data.

No. Users are strictly NOT ALLOWED to run jobs on the Login Nodes or any other node interactively. All jobs must be submitted via scripts through the job scheduler.

SSH Questions

Secure Shell (SSH) is a program to log into another computer over a network, execute commands on a remote machine, and move files from one device to another. It provides strong authentication and secure communications over insecure channels. In addition, SSH provides secure X connections and secure forwarding of arbitrary TCP connections.

Do NOT use IP addresses (es) to access HPC! Please use the domain name paramananta.iitgn.ac.in. (i.e, ssh username@paramananta.iitgn.ac.in)

Operating System Instructions
Linux Use ssh -X username@paramananta.iitgn.ac.in
Windows Please see "X11 Forwarding in Putty" documentation

Batch Processing Questions

On PARAM Ananta, the SLURM manages systems' batch processing. The Slurm batch requests (jobs) are shell scripts that contain the same set of commands that you enter interactively. These requests may also include options for the batch system that provide timing, memory, and processor information. For more information, see the general procedure on the website and refer to the manpage man sbatch.

A job script is a text file containing instructions for the scheduler, including resource requests (e.g., CPUs, memory), runtime, and the program or script to execute.

The following is an example of a script file’s content:

#!/bin/bash
Tells the OS which shell to run this script in
#SBATCH –job-name <my_job_name>
Assigns the name “my_job_name” to the job
#SBATCH -p <partition_name>
Run the "sinfo" command to see the list of available partitions
#SBATCH --nodes=1
Run all processes on a single node
#SBATCH --ntasks=1
Run a single task
#SBATCH --cpus-per-task=4
Number of CPU cores per task
#SBATCH --gres=gpu
Include GPU for the task (optional, only for GPU jobs)
#SBATCH --time=00:00:05:00
Time limit days:hrs:min:sec (optional)
#SBATCH --output=first_%j.out
Standard output file
#SBATCH --error=first_%j.err
Standard error file

Sample job script:

#!/bin/bash
#SBATCH --job-name=test_job         # Job name
#SBATCH --partition=small            # Run "sinfo" command to check the available partitions
#SBATCH --nodes=1                   # Run all processes on a single node
#SBATCH --ntasks=1                  # Run a single task
#SBATCH --cpus-per-task=4           # Number of CPU cores per task
#SBATCH --gres=gpu:1                # Include gpu for the task (optional only for GPU jobs)
#SBATCH --output=first_%j.out       # Standard output file
#SBATCH --error=first_%j.err        # Standard error file
date;hostname;pwd

module load openmpi4
<Executable PATH> INPUT OUTPUT

The command sacct -j 'jobid' --format=user, JobID, JobName, MaxRSS, Elapsed will give you statistics on completed jobs by jobID. Once your job has completed, you can get additional information that was not available during the run. This includes run time, memory used, etc. The command output below shows the sample output. See the man page man sacct for more details.
$ sacct -j 269667 --format=JobID, Jobname, partition, state, elapsed, MaxRss, MaxVMSize, nnodes, ncpus, nodelist, AveDiskWrite
JobID      JobName      Partition    State       Elapsed    MaxRSS     MaxVMSize  NNodes  NCPUS  NodeList     AveDiskWrite
------------ ----------  ----------  ----------  ---------- ---------- --------- -------- ------ ------------- --------------
269667      SBBS_dist    standard-+   COMPLETED  03:43:01   16        625       cn[285-300]
269667.batch batch       COMPLETED   03:43:01   12564K     1530304K   1       40     cn285        3.43M
269667.0    pmi_proxy    COMPLETED   03:42:59   17989840K  43527004K  16      16     cn[285-300]  62530.07M

Slurm uses sbatch to submit, squeue to check the status, and scancel to delete a batch request.

There are numerous reasons why a job might not run even though there appear to be processors and/or memory available. These include:
  1. Your account may be at or near the job count or processor count limit for an individual user.
  2. Your group/Faculty adviser may be at or near the job count or processor count limit for a group.
  3. The scheduler may be trying to free enough processors to run a large parallel job.
  4. Your job may need to run longer than the time left until the start of a scheduled downtime.
  5. You may have requested a scarce resource or node type, either inadvertently or by design.

Ideally, it should be at the job output location given in the batch script.

Use scancel <jobid>.

No, it is not possible to use them for visualization.

The codes identify the reason that a job is waiting for execution. A job may be waiting for more than one reason, in which case, only one of those reasons is displayed.

JOB REASON CODE Explanation
AssociationJobLimitThe job’s association has reached its maximum job count.
AssocGrpNodeLimitThe jobs requested a number of nodes above the allowed for the entire project/association/group.
AssocMaxNodesPerJobLimitThe job requested a number of nodes above the allowed.
AssocMaxJobsLimitGenerally occurs when you have exceeded the number of jobs running in the queue.
AssocMaxWallDurationPerJobLimitThe job requested a runtime greater than that allowed by the queue.
AssociationResourceLimitThe job’s association has reached some resource limit.
AssociationTimeLimitThe job’s association has reached its time limit.
BadConstraintsThe job’s constraints cannot be satisfied.
BeginTimeThe job’s earliest start time has not yet been reached.
CleaningThe job is being requeued and still cleaning up from its previous execution.
DependencyThis job is waiting for a dependent job to be completed.
FrontEndDownNo front-end node is available to execute this job.
InactiveLimitThe job reached the system InactiveLimit.
InvalidAccountThe job’s account is invalid.
InvalidQOSThe Job’s QoS is invalid.
JobHeldAdminThe job is held by a system administrator.
JobHeldUserThe user holds the job.
JobLaunchFailureThe Job could not be launched. This may be due to a file system problem, an invalid program name, etc.
LicensesThe job is waiting for a license.
NodeDownA node required by the job is down.
NonZeroExitCodeThe job was terminated with a non-zero exit code.
PartitionConfigRequesting more or the wrong number of resources than the partition is configured for.
PartitionDownThe partition required by this job is in a DOWN state.
PartitionInactiveThe partition required by this job is in an Inactive state and is not able to start jobs.
PartitionNodeLimitThe number of nodes required by this job is outside of its current limits. It can also indicate that required nodes are DOWN or DRAINED.
PartitionTimeLimitThe job’s time limit exceeds its partition’s current time limit.
PriorityOne or more higher-priority jobs exist for this partition or advanced reservation.
PrologIts PrologSlurmctld program is still running.
QOSJobLimitThe Job’s QoS has reached its maximum job count
QOSResourceLimitThe Job’s QoS has reached some resource limit.
QOSTimeLimitThe Job’s QoS has reached its time limit.
QOSMaxCpuPerUserLimitThe Job’s QoS has reached its CPU core limit allocated per user.
ReqNodeNotAvailSome node specifically required by the job is not currently available. For example, the Node may currently be in use, reserved for another job, in an advanced reservation, DOWN, DRAINED, or not responding. Nodes that are DOWN, DRAINED, or not responding will be identified as part of the job’s “reason” field as “UnavailableNodes”. Such nodes will typically require the intervention of a system administrator to make them available.
ReservationThe job is waiting for its advanced reservation to become available.
ResourcesThe job is waiting for resources to become available.
QOSResourcesThe job’s requested QOS limits resources.
System failureFailure of the Slurm system, a file system, the network, etc
TimeLimitThe job has exceeded its time limit.
QOSUsageThresholdThe required QOS threshold has been breached.
WaitingForSchedulingNo reason has been set for this job yet. I was waiting for the scheduler to determine the appropriate reason.

Check the job output and error files for clues. Review your job script for errors. If you still need help, contact support with the error logs.

Disk Storage Questions

lfs quota -hu $USER /home
lfs quota -hu $USER /scratch

Each individual case will be discussed by the PARAM Ananta administration, and it will decide how much disk space can be allocated. Raise a support ticket https://paramananta.iitgn.ac.in/support/scp/login.php

To reveal the directories in your account that are taking up the most disk space, you can use the du, sort, and tail commands. For example, to display the ten largest directories, change to your home directory and then run the command:
du . | sort -n | tail -n 10

The commands tar and gzip can be used together to produce compressed file archives representing entire directory structures. For example, to package a directory structure rooted at src/, use:
tar -czvf src.tar.gz src/
This archive can then be unpackaged using:
tar -xzvf src.tar.gz
where the resulting directory/file structure is identical to what it was initially.

The programs zip, bzip2, and compress can also be used to create compressed file archives. See the man pages on these programs for more details.

The list includes all regular files in a user directory more than 30 days old.
lfs find $HOME -mtime +30 -type f -print | xargs du -sh
lfs find $SCRATCH -mtime +30 -type f -print | xargs du -sh

Other Common Questions

Programs run on the login nodes are subject to strict CPU time limits called wall time. To run an application that takes more time, you need to create a batch request. Your batch request should include an appropriate estimate for the amount of time your application will need.
Or,
The Job’s QoS has reached its CPU core limit allocated per user.

Windows and Mac have different end-of-line conventions for text files than UNIX and Linux systems do, and most UNIX shells (including the ones interpreting your batch script) don’t like seeing the extra character that Windows appends to each line or the alternate character used by Mac. You can use the following commands on the Linux system to convert a text file from Windows or Mac format to UNIX format:
$dos2unix myfile.txt
$mac2unix myfile.txt

A text file created on Linux/UNIX will usually display correctly in Wordpad but not in Notepad. For example, you can use the following command on the Linux system to convert a text file from UNIX format to Windows format:
$unix2dos myfile.txt

No.

Do NOT run any job that is longer than a few minutes on the login nodes. The login node is for the compilation of jobs. It is best to run the job on compute nodes.
It is recommended to refer to the quick start guide on the PARAM Ananta. This should serve as a good starting point for the new users.
Before installing any software in your home, ensure that it is from a reliable and safe source.
Please do not use spaces while creating the directories and files.
Please inform PARAM Ananta support when you notice something strange – e.g., unexpected slowdowns, files missing/corrupted, etc

Please use the ‘module avail apps’ command to know the list of available applications on PARAM Ananta.

You may install open-source software yourself in your home directory. If you have a license for commercial software that allows all institute users to use it, please raise a ticket by providing all details related to the software along with license information. We make this software available as a module for everyone’s use.

Most packages have an option to install under a normal user account. We avoid installing the user software as root.

If you are using a Linux system, use ssh -X @paramananta.iitgn.ac.in
Windows users: please see "X11 Forwarding in Putty"

All Rights Reserved © Copyright 2025 | Indian Institute of Technology Gandhinagar, Palaj, Gujarat 382055