{"id":979,"date":"2021-03-29T16:28:10","date_gmt":"2021-03-29T16:28:10","guid":{"rendered":"http:\/\/wordpress.ubi.pt\/clusterdem\/?page_id=979"},"modified":"2025-02-04T09:32:29","modified_gmt":"2025-02-04T09:32:29","slug":"computation-section","status":"publish","type":"page","link":"https:\/\/clusterdem.ubi.pt\/?page_id=979","title":{"rendered":"Computational Resources"},"content":{"rendered":"<p>At ClusterDEM, we leverage advanced computational power to support our research in numerical modeling and simulation. Our <em><strong> mini HPC system, OCTOPUS500 <\/strong><\/em>, is a <em><strong>768-core <\/strong><\/em> cluster with <em><strong> 2TB of RAM <\/strong><\/em>, running <strong>CentOS<\/strong> and built upon <strong>ROCKS<\/strong> Cluster. This system enables parallel computing for large-scale simulations, including computational fluid dynamics (CFD) and multiphysics applications.<br \/>\n<img fetchpriority=\"high\" class=\"alignnone size-full wp-image-319\" src=\"https:\/\/clusterdem.ubi.pt\/wp-content\/uploads\/2018\/03\/transferir-11.png\" alt=\"\" width=\"413\" height=\"309\" \/><\/p>\n<h4><\/h4>\n<h4><strong>Running Your Case on OCTOPUS500<\/strong><\/h4>\n<p>To efficiently use our cluster, follow the guidelines below.<\/p>\n<h5><strong>Available Parallel Environments<\/strong><\/h5>\n<p>OCTOPUS500 uses a parallel environment defined as <code>mpiX<\/code>, where <code>X<\/code> represents the number of CPUs per node (from 1 to 10). Ensure that the number of requested slots is a multiple of <code>X<\/code>.<\/p>\n<p>\u2705 Example (Valid Submission):<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">-pe mpi5 25<br \/>\n<\/code><\/div>\n<\/div>\n<p>This launches a run with <strong>5 compute nodes, each using 5 CPUs<\/strong>.<\/p>\n<p>\u274c Invalid Cases:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">-pe mpi5 22  <span class=\"hljs-comment\"># Incorrect, not a multiple of 5<\/span><br \/>\n-pe mpi2 5   <span class=\"hljs-comment\"># Incorrect, not a multiple of 2<\/span><br \/>\n<\/code><\/div>\n<div dir=\"ltr\">\n<h4><strong>Cluster Node Selection<\/strong><\/h4>\n<p>This can be done with the command:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"hljs-deletion\">-l h=compute-0-x<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<p>where <code>x<\/code> is the <strong>specific node number<\/strong> you want to use.<\/p>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\"><\/code><\/div>\n<\/div>\n<p>\ud83d\udca1 <strong>Rule:\u00a0To optimize resource usage, you should always check the cluster status using Ganglia before submitting jobs:<br \/>\n\ud83d\udd17 <a href=\"http:\/\/192.168.92.140\/ganglia\" target=\"_new\" rel=\"noopener\">Ganglia Monitoring System<\/a> <em>(Accessible within the UBI network)<\/em><\/strong><\/p>\n<hr \/>\n<h3><strong>Job Submission and Management<\/strong><\/h3>\n<h4><strong>Submitting a Job<\/strong><\/h4>\n<p>Use the following command to submit jobs:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qsub RUN.sh<br \/>\n<\/code><\/div>\n<\/div>\n<p>After submitting a job with qsub, SGE will respond with something like:<\/p>\n<p>Your job 624556 (&#8220;myjob.cmd&#8221;) has been submitted<\/p>\n<p>where 624556 is the job number assigned by SGE to your job.<\/p>\n<h4><strong>Example OpenFOAM Submission Script<\/strong><\/h4>\n<p>Below is a sample job submission script for OpenFOAM:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\"><code class=\"!whitespace-pre language-bash\"><span class=\"hljs-meta\">#!\/bin\/bash<\/span><br \/>\n<span class=\"hljs-comment\">#$ -S \/bin\/bash<\/span><br \/>\n<span class=\"hljs-comment\">#$ -pe mpi5 10<\/span><br \/>\n<span class=\"hljs-comment\">#$ -cwd<\/span><br \/>\n<span class=\"hljs-comment\">#$ -N MySimulation<\/span><br \/>\n<span class=\"hljs-comment\">#$ -o log<\/span><br \/>\n<span class=\"hljs-comment\">#$ -e error.err<\/span><br \/>\n<span class=\"hljs-comment\">#$ -p 0<\/span><br \/>\n<span class=\"hljs-comment\">#$ -M youremail@ubi.pt<\/span><br \/>\n<span class=\"hljs-comment\">#$ -m bea<\/span><\/code><\/code><\/p>\n<p><code class=\"!whitespace-pre language-bash\"><code class=\"!whitespace-pre language-bash\"><\/code><\/code>. <span class=\"hljs-variable\">$HOME<\/span>\/OpenFOAM\/OpenFOAM-2.0.x\/etc\/bashrc <span class=\"hljs-comment\"># Ensure correct path<\/span><br \/>\nARGS=<span class=\"hljs-string\">&#8220;&#8211;mca btl ^openib &#8211;mca btl_tcp_if_include eth0&#8221;<\/span><\/p>\n<p><code class=\"!whitespace-pre language-bash\"><br \/>\n<\/code><code class=\"!whitespace-pre language-bash\"><span class=\"hljs-comment\"># Run the solver<\/span><br \/>\nSOLVER=clusterMHDFoam<br \/>\nmpirun -np <span class=\"hljs-variable\">$NSLOTS<\/span> <span class=\"hljs-variable\">$ARGS<\/span> <span class=\"hljs-variable\">$SOLVER<\/span> -parallel<br \/>\n<\/code><\/p>\n<\/div>\n<\/div>\n<p>\ud83d\udccc <strong>Note:<\/strong> This script should be run inside the case folder.<\/p>\n<p>\ud83d\udca1 <strong>Best Practices:<\/strong><\/p>\n<ul>\n<li><strong>Monitor cluster load<\/strong> via Ganglia (<a href=\"http:\/\/192.168.92.140\/ganglia\" target=\"_new\" rel=\"noopener\">http:\/\/192.168.92.140\/ganglia<\/a>).<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Commonly Used HPC Commands<\/strong><\/h3>\n<p>Below are some frequently used <strong>Sun Grid Engine (SGE)<\/strong> commands:<\/p>\n<table>\n<thead>\n<tr>\n<th>Command<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>qsub<\/code><\/td>\n<td>Submit a job<\/td>\n<\/tr>\n<tr>\n<td><code>qstat<\/code><\/td>\n<td>Check job status<\/td>\n<\/tr>\n<tr>\n<td><code>qhost<\/code><\/td>\n<td>Display node information<\/td>\n<\/tr>\n<tr>\n<td><code>qdel<\/code><\/td>\n<td>Cancel a job<\/td>\n<\/tr>\n<tr>\n<td><code>qhold<\/code><\/td>\n<td>Hold a job in queue<\/td>\n<\/tr>\n<tr>\n<td><code>qrls<\/code><\/td>\n<td>Release a held job<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ud83d\udd0d To see detailed descriptions, use:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">man qsub<br \/>\n<\/code><\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">\n<h3><strong>Examples<\/strong><\/h3>\n<h3><strong>Submitting a Job<\/strong><\/h3>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\">qsub -cwd -o <span class=\"hljs-built_in\">output<\/span>.<span class=\"hljs-built_in\">log<\/span> -e <span class=\"hljs-built_in\">error<\/span>.<span class=\"hljs-built_in\">log<\/span> -M youremail@ubi.pt -m bea myscript.sh<br \/>\n<\/code><\/div>\n<\/div>\n<h4><strong>Checking Job Status<\/strong><\/h4>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"hljs-attribute\">qstat<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<h4><strong>Displaying Node Information<\/strong><\/h4>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"hljs-attribute\">qhost<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<h4><strong>Canceling a Job<\/strong><\/h4>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"language-xml\">qdel <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">job_number<\/span>&gt;<\/span><br \/>\n<\/span><\/code><\/div>\n<\/div>\n<p>If a job is still running after using <code>qdel<\/code>, you can <strong>force cancellation<\/strong>:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"language-xml\">qdel -f <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">job_number<\/span>&gt;<\/span><\/span><\/code><\/div>\n<\/div>\n<p><code class=\"!whitespace-pre language-bash\"><\/code><\/div>\n<\/div>\n<p>Would you like any additional refinements or details? \ud83d\ude80<\/p>\n<h3><strong>SGE Commands Reference Guide<\/strong><\/h3>\n<p><strong>1. Submitting a Job (<code>qsub<\/code>)<\/strong><br \/>\nUsed to submit jobs to the cluster. The basic syntax is:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qsub -cwd -o output.log -e error.log -M your_email@ubi.pt -m bea -l h=compute-0-x script.sh<br \/>\n<\/code><\/div>\n<\/div>\n<ul>\n<li><code>-cwd<\/code> \u2192 Run job in the current directory<\/li>\n<li><code>-o path<\/code> \u2192 Redirect standard output<\/li>\n<li><code>-e path<\/code> \u2192 Redirect standard error<\/li>\n<li><code>-M email<\/code> \u2192 Email notifications<\/li>\n<li><code>-m bea<\/code> \u2192 Send email at <strong>beginning, end, and abort<\/strong><\/li>\n<li><code>-l h=compute-0-x<\/code> \u2192 Choose a specific node<\/li>\n<\/ul>\n<p>Alternatively, you can embed these options inside your script:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\"><span class=\"hljs-comment\">#$ -cwd<\/span><br \/>\n<span class=\"hljs-comment\">#$ -o log<\/span><br \/>\n<span class=\"hljs-comment\">#$ -e error.err<\/span><br \/>\n<span class=\"hljs-comment\">#$ -M your_email@ubi.pt<\/span><br \/>\n<span class=\"hljs-comment\">#$ -m bea<\/span><br \/>\n<span class=\"hljs-comment\">#$ -l h=compute-0-x<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<p>Then submit the script with:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qsub script.sh<br \/>\n<\/code><\/div>\n<\/div>\n<p><strong>2. Monitoring Jobs (<code>qstat<\/code>)<\/strong><br \/>\nCheck the status of running and pending jobs:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qstat<br \/>\n<\/code><\/div>\n<\/div>\n<p>To see jobs submitted by a specific user:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qstat -u username<br \/>\n<\/code><\/div>\n<\/div>\n<p><strong>3. Canceling a Job (<code>qdel<\/code>)<\/strong><br \/>\nTo cancel a job, use the job number assigned by <code>qsub<\/code>:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qdel &lt;job_id&gt;<br \/>\n<\/code><\/div>\n<\/div>\n<p>If the job does not stop, force termination:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qdel -f &lt;job_id&gt;<br \/>\n<\/code><\/div>\n<\/div>\n<p><strong>4. Checking Cluster Nodes (<code>qhost<\/code>)<\/strong><br \/>\nTo check available nodes and their status:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qhost<br \/>\n<\/code><\/div>\n<\/div>\n<p>To view jobs running on each node:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qhost -j<br \/>\n<\/code><\/div>\n<\/div>\n<p>To see available queues:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">\n<div class=\"sticky top-9 md:top-[5.75rem]\">\n<div class=\"absolute bottom-0 right-2 flex h-9 items-center\">\n<div class=\"flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-bash\">qhost -q<\/code><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>At ClusterDEM, we leverage advanced computational power to support our research in numerical modeling and simulation. Our mini HPC system,<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":13,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/pages\/979"}],"collection":[{"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=979"}],"version-history":[{"count":10,"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/pages\/979\/revisions"}],"predecessor-version":[{"id":2034,"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/pages\/979\/revisions\/2034"}],"up":[{"embeddable":true,"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=\/wp\/v2\/pages\/13"}],"wp:attachment":[{"href":"https:\/\/clusterdem.ubi.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}