GPU Cluster

From radwiki
Jump to navigation Jump to search

The department of Diagnostic Radiology manages five servers colloquially referred to as the "GPU cluster".

They were set up by IT services and handed over in February 2020. The rack is physically located at The Hong Kong Jockey Club Building For Interdisciplinary Research, 1/F.

Hardware Specifications

The servers are typically called nodes. There are four computing nodes and one storage node.

Name Public IP address Physical CPU cores GPU RAM(GB) Storage (TB) Storage mount point URL
gpu1 16 V100(16G)x4 64 1.6 /scratch NA
gpu2 16 V100(16G)x4 64 1.6 /scratch NA
gpu3 16 V100(16G)x4 64 1.6 /scratch NA
cpu1 80 NA 512 1.6 /scratch NA
storage1 12 NA 16 100 exported as nfs to /home

Realtime performance and usage metrics can be found at HPC Diagnostics and Statistics


Users are currently expected to use the GPU cluster in the following ways:

  1. Access to this wiki
  2. Access to a GitLab account for code sharing and collaboration
  3. Shell access to the compute nodes
    • Users get their own user-specific home folder.

A few introductory guides are available to help users. Other software may be installed upon request, but users should note they can manually install any software in their own home directory without needing admin privileges.

  • To use the shell access features of the GPU cluster, users need to get a server account.
  • All users must be on the HKU network / VPN to access anything.

Choosing a server

Refer to the specs table for IP address information. storage1 is not intended for direct shell access, so password login for non-admins is disabled. The storage node transparently makes its storage capacity available to all nodes as the /home directory.

For running code and scripts

Choose cpu1 or any of the 3 gpu servers. Optionally check the local resource usage with command top, ps or nvidia-smi. Apart from GPU related things, the 4 servers should have a similar software stack. Software installed includes various scripting languages like Lua, Python, PHP, and Perl. There is also a C/C++ compiler (gcc) and a git client. The home folder comes with a pre-installed python environment (anaconda).

For file transfer/storage

It doesn't matter which server you choose, since the user home folder (/home/[userID]) is shared across servers. E.g. if you upload a file to cpu1, it will also be available when you connect to gpu2. Additionally, users may create files and folders in /home/shared_data to allow other users to access the same data. To evaluate available storage see the df or du commands.

If required for performance reasons, users may write in the /scratch directory. Unlike the /home folder, files stored under /scratch are purely local to a server. As a /scratch folder is accessible to all users on the server, it is advisable to restrict access to others using chmod 700 on your files and subfolders.

* The /scratch folders may cleared without notice, so do not use it for long-term storage.


Users may have several sets of login credentials:

  • One for the Linux shell
  • One for this wiki
  • One for their Gitlab

All the passwords used in the above are stored in a salted hash format. This means, in the event of a data breach, user passwords won't be compromised. It also means they are not retrievable, not even by admins. Password resets are (ideally) handled by automated email.

  • Please use a strong password and protect it.
  • Non-anonymous patient data should be stored in encrypted format.


Users may run servers listening on ports, e.g. a VNC/X11 server or Jupyter notebook. Such connections should use an SSH tunnel to ensure security and pass the firewall.

Connections to websites on should use SSL/TLS (i.e. https in the browser). This means traffic to the (proxy) server is encrypted.


See here for logs and technical details.