The GPU nodes of SQUID can perform numerical computations using GPUs. This page explains how to run your own programs using CUDA on SQUID.
The GPU is an abbreviation for Graphics Processing Unit, which is a processor that processes images on a PC. the GPU is specialized for 3DCG shading processing, and can process large amounts of data in parallel on multiple processors simultaneously and at high speed. The GPU is specialized for 3DCG shading processing and can process a large amount of data simultaneously and in parallel on multiple processors. In this page, we will explain how to use GPUs for numerical calculations on computers.
How to use
The NVIDIA HPC SDK consists of compilers and libraries, and programs can be written in fortran, C, CUDA, etc. The NVIDIA HPC SDK consists of compilers and libraries, and programs can be written in fortran, C, CUDA, etc. No knowledge of image processing is required. No knowledge of image processing is required.
For more information about NVIDIA HPC SDK, please refer to the following NVIDIA official page.
NVIDIA HPC SDK
On SQUID, environment variable settings for compiler, library, application environment, etc. are managed by a tool called Environment modules. First of all, please execute the following command to load the recommended environment for GPU nodes.
% module load BaseGPU/2021
The compile commands in the NVIDIA HPC SDK are as follows:
For example, to compile a sample program "sample.f90" written in the fortran language with the Intel compiler, execute the following command on the front-end.
% nvfortran sample.f90
All user must use our computing system with "batch processing". "batch processing" means to require execution of a program with submitting job-script. After submitting job-script, calculate may not start soon and you may wait for ages because our computing system is crowded with many other users. On our system, "scheduler" system manages a wait queue for execution of programs.
* We bar execution a program on frontend server with interactive processing. Please execute with batch processing or interactive-batch processing.
The following is an example for job-script executing "a.out" on 1 GPU node, SQUID.
#PBS -q SQUID-S
#PBS --group=[your group name]
#PBS -l elapstim_req=1:00:00
#PBS -l cpunum_job=38
#PBS -l gpunum_job=1
module load BaseGPU/2021
Enter your own group name in "[your Group name]". You can check the group name by using the "id" or "groups" command. If the result of the "id" command is as follows, "G12345" is the group name:
uid=11111(u6a123) gid=12345(G12345) groups=12345(G12345)
The job-script require just executing a program. However, it is available to require "send mail at the end of executing job" or "change a name of output file" with specifying options. Please see the following page for a detail of job-script and options.
Please submit a job-script to our computing system for execution program. The following is an example for submitting job-script. On the example, a name of a job-script file is "nqs.sh".
% qsub nqs.sh
You can check a status of your submitted job with qstat command or sstat command. Please see the following page for a detail.
Our computing system transfers a result of your calculation to frontend-server when your calculation finished. our system output a result as a standard output file if you did not specify an output file on job-script. A standard output file is "[job-script name].o.[request ID]" and a standard error output file is "[job-script name].e.[request ID]".
The above is how to execute a serial program. Please check FAQ page or inquiry us if you have any question.