{"id":7967,"date":"2026-01-09T13:35:38","date_gmt":"2026-01-09T13:35:38","guid":{"rendered":"https:\/\/research.reading.ac.uk\/act\/?post_type=kbe_knowledgebase&#038;p=7967"},"modified":"2026-01-09T18:14:47","modified_gmt":"2026-01-09T18:14:47","slug":"racc2-gpu-computing","status":"publish","type":"kbe_knowledgebase","link":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/","title":{"rendered":"RACC2 &#8211; GPU computing"},"content":{"rendered":"<p>[vc_row][vc_column][vc_column_text]<\/p>\n<h3>What is GPU computing?<\/h3>\n<p data-start=\"77\" data-end=\"355\">GPU computing uses a graphics processing unit (GPU) as a co-processor to accelerate a central processing unit (CPU) for general scientific computing. While GPUs were originally designed for graphics workloads, they are now widely used to speed up compute-intensive applications.<\/p>\n<p data-start=\"360\" data-end=\"743\">Many parallelised applications run significantly faster by offloading their most computationally demanding sections to the GPU, while the remainder of the code continues to run on the CPU. A typical CPU has a small number of powerful cores (usually four to eight), whereas a GPU contains hundreds or thousands of smaller cores, enabling much higher throughput for suitable workloads.<\/p>\n<p data-start=\"748\" data-end=\"972\">Many scientific applications support GPU acceleration and can be developed or enhanced using frameworks such as NVIDIA\u2019s <a href=\"https:\/\/developer.nvidia.com\/cuda-toolkit\">CUDA toolkit<\/a>, which provides GPU-optimised libraries as well as debugging and performance-tuning tools.<\/p>\n<p>&nbsp;<\/p>\n<h3>GPU computing on the RACC2<\/h3>\n<p>On RACC2, users can request one or more GPUs and combine them with an suitable number of CPUs. This is illustrated in the example SLURM submission script below, available in \/software\/slurm_examples\/gpu\/.<\/p>\n<pre class=\"lang:default decode:true \">#!\/bin\/bash\r\n\r\n# standard CPU directives, tip: use cpus-per-task to allocate one or more cores per GPU  \r\n#SBATCH --ntasks=1 \r\n#SBATCH --cpus-per-task=1  \r\n#SBATCH --threads-per-core=1\r\n# plus the GPU line, you can request one or more GPUs on the same node\r\n#SBATCH --gres=gpu:1\r\n \r\n# partition 'gpuscavenger' or project partition\r\n# jobs in gpuscavenger use idle time on GPUs and might get killed end re-queued\r\n#SBATCH --partition=gpuscavenger\r\n \r\n#SBATCH --job-name=example_gpu_job\r\n#SBATCH --output=gpu_out.txt\r\n \r\n#SBATCH --time=24:00:00 #(24 hours is the default in the partition 'gpu_limited')\r\n#SBATCH --mem=48G \r\n\r\n#optional for debugging  \r\nhostname\r\nnvidia-smi\r\necho CUDA_VISIBLE_DEVICES $CUDA_VISIBLE_DEVICES\r\n\r\n#and the actual job\r\n.\/gpu_hello_apptainer.sh\r\n\r\n<\/pre>\n<p>The above is an example of a job where we expect almost all the work is done on the GPU. Hence, we request just 1 CPU core (&#8216;-cpus-per-task=1&#8217;). Allocating CPU and GPU cores does not always work like in the example above. Some jobs run both on CPUs and on GPUs, in which case it might be beneficial to allocate more CPU cores. GPUs are requested with the directive <span class=\"lang:default decode:true crayon-inline\">#SBATCH &#8211;gres=gpu:N<\/span>, where N is the number of GPUs your job will use. In the example above we allocate just one GPU.<\/p>\n<p>&nbsp;<\/p>\n<p>There are 2 options to access GPUs:<\/p>\n<ol>\n<li><strong>The project <\/strong><strong>partitions<\/strong>: These partitions are available only to the research groups that purchased the GPU nodes. Users should submit jobs to the partition associated with their project. While there is no enforced time limit, specifying a realistic walltime is strongly recommended, as this helps the scheduler operate efficiently and is considerate of other users sharing the nodes.<\/li>\n<li><strong>The gpuscavenger <\/strong><strong>partition<\/strong>: This partition allows users to take advantage of idle GPU capacity on hardware owned by specific projects. Jobs submitted to gpuscavenger\u00a0may be terminated and automatically re-queued if the nodes are required for higher-priority project jobs.<\/li>\n<\/ol>\n<p data-start=\"89\" data-end=\"536\">In the example above, we have included several commands that can help diagnose potential issues with GPU access. Printing the hostname allows you to identify the node on which your job is running. In addition, the\u00a0&#8216;nvidia-smi&#8217; command displays information about the installed NVIDIA driver and the available GPUs. Successful output from this command confirms that GPUs are present on the system and that the NVIDIA drivers are correctly installed.<\/p>\n<p data-start=\"541\" data-end=\"667\">The example job script gpu_hello_apptainer.sh demonstrates how to use Apptainer with PyTorch to run an application on a GPU.<\/p>\n<p>&nbsp;<\/p>\n<p>The following nodes are currently available<\/p>\n<table style=\"border-collapse: collapse;width: 100.206%;height: 120px\">\n<tbody>\n<tr style=\"height: 24px\">\n<td style=\"width: 25%;height: 24px\">node<\/td>\n<td style=\"width: 25%;height: 24px\">GPUs<\/td>\n<td style=\"width: 25%;height: 24px\">device RAM memory (per device)<\/td>\n<td style=\"width: 25%;height: 24px\">system RAM memory<\/td>\n<\/tr>\n<tr style=\"height: 24px\">\n<td style=\"width: 25%;height: 24px\">racc2-gpu-0<\/td>\n<td style=\"width: 25%;height: 24px\">3 x Tesla H100<\/td>\n<td style=\"width: 25%;height: 24px\">96 GB<\/td>\n<td style=\"width: 25%;height: 24px\">384 GB<\/td>\n<\/tr>\n<tr style=\"height: 24px\">\n<td style=\"width: 25%;height: 24px\">racc2-gpu-1<\/td>\n<td style=\"width: 25%;height: 24px\">2 x Tesla H100<\/td>\n<td style=\"width: 25%;height: 24px\">96 GB<\/td>\n<td style=\"width: 25%;height: 24px\">768 GB<\/td>\n<\/tr>\n<tr style=\"height: 24px\">\n<td style=\"width: 25%;height: 24px\">racc2-gpu-1<\/td>\n<td style=\"width: 25%;height: 24px\">4 x Tesla L40S<\/td>\n<td style=\"width: 25%;height: 24px\">48 GB<\/td>\n<td style=\"width: 25%;height: 24px\">768 GB<\/td>\n<\/tr>\n<tr style=\"height: 24px\">\n<td style=\"width: 25%;height: 24px\">racc2-gpu-1<\/td>\n<td style=\"width: 25%;height: 24px\">4 x Tesla L40S<\/td>\n<td style=\"width: 25%;height: 24px\">48 GB<\/td>\n<td style=\"width: 25%;height: 24px\">768 GB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text]  What is GPU computing?  GPU computing uses a graphics processing unit (GPU) as a co-processor to accelerate a central processing unit (CPU) for general scientific computing. While GPUs were originally designed for graphics workloads, they are now widely used to speed up compute-intensive applications.  Many parallelised applications run significantly faster by<\/p>\n","protected":false},"author":364,"featured_media":223,"template":"","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"__cvm_playback_settings":[],"__cvm_video_id":"","_links_to":"","_links_to_target":""},"kbe_taxonomy":[100],"kbe_tags":[],"class_list":["post-7967","kbe_knowledgebase","type-kbe_knowledgebase","status-publish","has-post-thumbnail","hentry","kbe_taxonomy-racc2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.8.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RACC2 - GPU computing - Academic Computing Team<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RACC2 - GPU computing - Academic Computing Team\" \/>\n<meta property=\"og:description\" content=\"[vc_row][vc_column][vc_column_text] What is GPU computing? GPU computing uses a graphics processing unit (GPU) as a co-processor to accelerate a central processing unit (CPU) for general scientific computing. While GPUs were originally designed for graphics workloads, they are now widely used to speed up compute-intensive applications. Many parallelised applications run significantly faster by\" \/>\n<meta property=\"og:url\" content=\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/\" \/>\n<meta property=\"og:site_name\" content=\"Academic Computing Team\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-09T18:14:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/03\/cluster-1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"128\" \/>\n\t<meta property=\"og:image:height\" content=\"128\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/\",\"url\":\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/\",\"name\":\"RACC2 - GPU computing - Academic Computing Team\",\"isPartOf\":{\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#website\"},\"datePublished\":\"2026-01-09T13:35:38+00:00\",\"dateModified\":\"2026-01-09T18:14:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/research.reading.ac.uk\/act\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Knowledgebase\",\"item\":\"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RACC2 &#8211; GPU computing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#website\",\"url\":\"https:\/\/research.reading.ac.uk\/act\/\",\"name\":\"Academic Computing Team\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/research.reading.ac.uk\/act\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#organization\",\"name\":\"University of Reading\",\"url\":\"https:\/\/research.reading.ac.uk\/act\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/08\/cropped-University_of_Reading_shield-1.png\",\"contentUrl\":\"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/08\/cropped-University_of_Reading_shield-1.png\",\"width\":512,\"height\":512,\"caption\":\"University of Reading\"},\"image\":{\"@id\":\"https:\/\/research.reading.ac.uk\/act\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RACC2 - GPU computing - Academic Computing Team","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/","og_locale":"en_GB","og_type":"article","og_title":"RACC2 - GPU computing - Academic Computing Team","og_description":"[vc_row][vc_column][vc_column_text] What is GPU computing? GPU computing uses a graphics processing unit (GPU) as a co-processor to accelerate a central processing unit (CPU) for general scientific computing. While GPUs were originally designed for graphics workloads, they are now widely used to speed up compute-intensive applications. Many parallelised applications run significantly faster by","og_url":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/","og_site_name":"Academic Computing Team","article_modified_time":"2026-01-09T18:14:47+00:00","og_image":[{"width":128,"height":128,"url":"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/03\/cluster-1-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/","url":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/","name":"RACC2 - GPU computing - Academic Computing Team","isPartOf":{"@id":"https:\/\/research.reading.ac.uk\/act\/#website"},"datePublished":"2026-01-09T13:35:38+00:00","dateModified":"2026-01-09T18:14:47+00:00","breadcrumb":{"@id":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/racc2-gpu-computing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/research.reading.ac.uk\/act\/"},{"@type":"ListItem","position":2,"name":"Knowledgebase","item":"https:\/\/research.reading.ac.uk\/act\/knowledgebase\/"},{"@type":"ListItem","position":3,"name":"RACC2 &#8211; GPU computing"}]},{"@type":"WebSite","@id":"https:\/\/research.reading.ac.uk\/act\/#website","url":"https:\/\/research.reading.ac.uk\/act\/","name":"Academic Computing Team","description":"","publisher":{"@id":"https:\/\/research.reading.ac.uk\/act\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/research.reading.ac.uk\/act\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/research.reading.ac.uk\/act\/#organization","name":"University of Reading","url":"https:\/\/research.reading.ac.uk\/act\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/research.reading.ac.uk\/act\/#\/schema\/logo\/image\/","url":"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/08\/cropped-University_of_Reading_shield-1.png","contentUrl":"https:\/\/research.reading.ac.uk\/act\/wp-content\/uploads\/sites\/2\/2017\/08\/cropped-University_of_Reading_shield-1.png","width":512,"height":512,"caption":"University of Reading"},"image":{"@id":"https:\/\/research.reading.ac.uk\/act\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_knowledgebase\/7967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_knowledgebase"}],"about":[{"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/types\/kbe_knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/users\/364"}],"version-history":[{"count":10,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_knowledgebase\/7967\/revisions"}],"predecessor-version":[{"id":7982,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_knowledgebase\/7967\/revisions\/7982"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/media\/223"}],"wp:attachment":[{"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/media?parent=7967"}],"wp:term":[{"taxonomy":"kbe_taxonomy","embeddable":true,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_taxonomy?post=7967"},{"taxonomy":"kbe_tags","embeddable":true,"href":"https:\/\/research.reading.ac.uk\/act\/wp-json\/wp\/v2\/kbe_tags?post=7967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}