Interactive access¶
System access¶
Warning
Please refer to internal technical documentation to get information about this subject.
Login nodes usage¶
When you connect to the supercomputer, you are directed to one of the login nodes of the machine. Many users are simultaneously connected to these login nodes. Since their resources are shared it is important to respect some standards of good practice.
Usage limit on login nodes¶
Login nodes should only be used to interact with the batch manager and to run lightweight tasks. As a rule of thumb, any process or group of processes which would use more CPU power and/or memory than what is available on a basic personal computer should not be executed on a login node. For more demanding interactive tasks, you should allocate dedicated resources on a compute node.
To ensure a satisfying experience for all users, offending tasks are automatically throttled or killed.
Interactive submission¶
There are 2 possible ways of accessing computing resources without using a submission script. ccc_mprun -K allows to create the allocation and the job environment while you are still on the login node. It is useful for MPI tests. ccc_mprun -s opens a shell on a compute node. It is useful for sequential or multi-threaded work that would be too costly for the login node.
Allocate resources interactively (-K)¶
It is possible to work interactively on allocated compute nodes thanks to the option -K
of ccc_mprun.
$ ccc_mprun -p partition -n 8 -T 3600 -K
This command will create an allocation and start a job.
$ echo $SLURM_JOBID
901732
Within this reservation, you can run job steps with ccc_mprun. Since the compute nodes are already allocated, you will not have to wait.
$ ccc_mprun hostname
node1569
node1569
node1569
node1569
node1569
node1569
node1569
node1569
Note
At this point, you are still connected on the login node. You cannot run your code directly or with mpirun. you have to use ccc_mprun!
Such an allocation is useful when developing an MPI program, in order to be able to test a ccc_mprun quickly and several times in a short period.
You can use the usual options for ccc_mprun as in ccc_mprun options.
Working on a compute node (-s)¶
To directly work on the allocated compute nodes, you need to open a shell inside a SLURM allocation. This is possible thanks to the -s
option:
$ ccc_mprun -p partition -c 16 -m work,scratch -s
[node1569 ~]$ hostname
node1569
In this case, the 16 cores of the node node1569 are allocated to you and you are able to run freely on all those cores without disrupting other jobs. It is just like any allocation, the computing hours will be accounted on your project. In any case, you will need to specify the filesystems you want to have access to, using -m option followed by a comma-separated list of filesystems.
Note
- You cannot use multiple nodes in this mode. You are limited to the number of cores in one node.
- When you do not need it any longer, do not forget to stop the interactive session with ctrl+d or exit 0.
- The computing hours spent in the interactive session will be withdrawn from your project quota.
- You can wait for the allocation for a shorter time using the “test” QOS.
This is typically used for costly and punctual tasks such as compiling a large code on 16 cores, post-processing or aggregating output data etc.
At any point, you can use the hostname command to check whether you are on a compute node or on a login nodes.
You can use the usual options for ccc_mprun as in ccc_mprun options.
Crontab¶
Crontab mechanism is available on login nodes in order to execute desired tasks in the background at designated times. A specific version of cron called crontab is provided and can be invoked with the regular crontab command name. crontab adds the ability to manage the crontab content associated to your user account whatever the login node your are connected to, still having this crontab be executed once (only one login node schedules and executes the commands you specify in your crontab).
The command crontab -e edits the file which contains the instructions to be launched, and crontab -r removes the current crontab. The instructions follow the following format:
mm hh dd MMM DDD task > logfile
where mm, hh, dd, MMM represent the minutes, the hours, the day of the month MMM, and DDD the days of every week on which the task ‘task’ is executed. ‘Logfile’ is the log file in which is redirected the standard output. The periodicity of the task must be appropriate to the need, and must not be lower than 5 minutes in order to not over solicit the system. Below are some examples of valid instruction lines:
0 0 * * 1 ccc_msub /path1/regression.sh >> /path2/joblist.sh
will submit every Monday at 0:00 the script of submission regression.sh
, and writes the JobID in the file joblist.sh
.
*/10 8-18 * * mon,tue,wed,thu,fri clear > /dev/null 2>&1
clears the shell every ten minutes between 8 a.m. and 6 p.m. during the week, without saving the output.
0 10 20 12 * mkdir /path3/annual_report
will create every 20th of December at 10 a.m. the folder ‘annual_report’ in /path3
.
Remote Desktop System service (NiceDCV)¶
The Remote Desktop System service on the TGCC supercomputer is based on NiceDCV solution. NiceDCV provides a web site where you can launch the booked graphical session.
Book a session¶
There are two types of sessions : a “virtual” session and a “console” session.
- The virtual session is using the GNOME Display Manager (GDM) unlike the console session. The virtual session is by default launched on only one GPU and not on all the GPUs of the node. Therefore, it is possible to launch in parallel as many virtual sessions as the number of available GPUs on the node. Moreover, many users can launch a virtual session on the same node given that they are on the same container.
The following command allows to book a virtual session :
$ ccc_visu virtual -p partition
- The console session allows node exclusivity, i.e. all GPUs on the node can be used inside the session. The visualization performance could be faster than on the virtual session (almost 2 times faster).
The following command allows to book for a console session :
$ ccc_visu console -p partition
Session access¶
Once the reservation is booked from the above commands, a URL is given in the standard output. To access the graphical session, launch this URL on your browser. A page opens in which you are asked to give your Irene credentials. Then, to acess the allocated session, you have two options:
- The first client (on the left): opens the session inside the brower. You need to give again your Irene credentials.
- The second client (on the right): allows to download it. However, you need root access on your machine to be able to install it.
Moreover, while the allocation with command ccc_visu didn’t expire or hadn’t been cancelled, the session will not be impacted if the client is closed. A session will last as defined by the -T option (in seconds), or 2 hours by default. The graphical session will expire with the corresponding job, and will not be available afterward. Besides, the session can be closed from the terminal from which the session was started using CTL-D or exit, or by ending the corresponding job with the ccc_mdel command.