{"id":114,"date":"2020-01-22T19:50:51","date_gmt":"2020-01-22T19:50:51","guid":{"rendered":"https:\/\/ni.cmu.edu\/computing\/?post_type=ht_kb&#038;p=114"},"modified":"2023-10-11T12:57:10","modified_gmt":"2023-10-11T12:57:10","slug":"getting-started","status":"publish","type":"ht_kb","link":"https:\/\/ni.cmu.edu\/computing\/knowledge-base\/getting-started\/","title":{"rendered":"Cluster Quick Start Guide"},"content":{"rendered":"<p>This article is intended for our  new users to begin using the cluster quickly.  It summarizes basic information and points to the more detailed information. Users who understand and follow our policies and procedures will meet the our expectations of being good citizens. Please take the time to read our documentation so you don&#8217;t inconvenience your fellow community members.<\/p>\n<h3>Documentation and Policies<\/h3>\n<p>All new &#8220;Mind&#8221; cluster users <strong>are expected<\/strong> to read and understand our <a href=\"\/computing\/article-category\/policies\/\">Cluster Policies<\/a> page(s).\u00a0 This should only take a few minutes to read over.  If you have questions, ask David before proceeding.<\/p>\n<h3>Connecting to the Mind Cluster<\/h3>\n<p>You <a href=\"\/computing\/knowledge-base\/cluster-access\/\">applied for a cluster account,<\/a> and you&#8217;ve been notified that your account on the cluster is created. This article explains how to <a href=\"\/computing\/knowledge-base\/logging-onto-the-cluster\/\">connect to the MIND cluster.\u00a0<\/a><\/p>\n<h3>File and Data Storage<\/h3>\n<p>By default, users land in their home directory ( \/home\/&lt;username&gt; ) when logging onto the cluster.\u00a0 There are various storage areas on the cluster for specified usage.\u00a0 Understand what volumes your expected to use for code, configurations, data and results.\u00a0 The <a href=\"\/computing\/knowledge-base\/data-management\/\">Data Management<\/a> article will help you with this.<\/p>\n<h6>Two critical rules our users must follow regarding their data storage:<\/h6>\n<ol>\n<li>Users should only have data currently being used for processing and the results of recent processing saved on the cluster.<\/li>\n<li>Use these three storage areas correctly.\n<ol>\n<li><strong>\/home\/&lt;username&gt;<\/strong> is the user&#8217;s home directory and should only be used to store small files such as configuration files, documents, and source code [keep this to a maximum of 300GB]<\/li>\n<li><strong>\/user_data&lt;username&gt;<\/strong> space is a 1TB partition for users to save their work.<\/li>\n<li><strong>\/lab_data\/&lt;whateverlab&gt;<\/strong> is a 10TB partition for lab members to share and save their work.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\">These volumes are accessible cluster wide (on all compute nodes as well as on the head node).<\/p>\n<h6>This is an example of navigating to the various volumes.<\/h6>\n<pre>[dpane@mind ~]$ cd \/lab_data\/fisherlab\/\r\n[dpane@mind fisherlab]$ ls\r\n[dpane@mind fisherlab]$ pwd\r\n\/lab_data\/fisherlab\r\n[dpane@mind fisherlab]$ cd\r\n[dpane@mind ~]$ cd \/user_data\/qianoum\/\r\n[dpane@mind qianoum]$ ls\r\n[dpane@mind qianoum]$ ls -ltra\r\ntotal 9\r\ndrwxr-xr-x\u00a0\u00a0 2 qianoum qianoum\u00a0\u00a0 2 Jan\u00a0 9 09:28 .\r\ndrwxrwxrwx 172 root\u00a0\u00a0\u00a0 root\u00a0\u00a0\u00a0 172 Jan 10 10:51 ..\r\n[dpane@mind qianoum]$\r\n<\/pre>\n<p>You may also find this article on <a href=\"\/computing\/knowledge-base\/file-and-directory-permissions\/\">file and directory permissions<\/a> helpful.<\/p>\n<h3>Data transfer<\/h3>\n<p>Transferring files can be done using any secure transfer protocol. Samba is NOT a secure protocol and is NOT supported on the cluster.\u00a0 Various commands such as scp, sftp, rsync over ssh, etc. are supported.<\/p>\n<h6>An example command from a Linux or MacOS computer to the MIND cluster<\/h6>\n<pre>rsync -avz &lt;src directory path&gt; -e \"ssh -l &lt;username&gt;\" mind.cs.cmu.edu:&lt;full destination path on mind&gt;<\/pre>\n<p>Tectia File Transfer(Windows) , Fetch (MacOs), or some other sftp software will work.<br \/>\n<a class=\"moz-txt-link-freetext\" href=\"https:\/\/www.cmu.edu\/computing\/software\/\">https:\/\/www.cmu.edu\/computing\/software\/<\/a><\/p>\n<h3>Software<\/h3>\n<p>As new versions of software packages become available, we can made them available by installing them and then change the default user environment. A easy way to change the individual user environment is using the module command. The Modules package is a tool that simplifies shell initialization and lets users easily modify their environment during the session.<\/p>\n<pre>[dpane@mind-1-1 ~]$ module avail\r\n\r\n--------------------------------------- \/usr\/share\/Modules\/modulefiles ----------------------------------------\r\nanaconda3              dsi-studio             julia-1.2.0            python36-extras\r\ncuda-10.0              freesurfer-5.3.0       matlab-9.11            qt-4.8.2\r\ncuda-10.1              freesurfer-6.0.0       matlab-9.5             qt-4.8.5\r\ncuda-10.2              freesurfer-7.1.0       matlab-9.7             R-3.6.1\r\ncuda-11.1.1            fsl-6.0.3              module-git             rocks-openmpi\r\ncuda-9.2               gcc-4.7.4              module-info            rocks-openmpi_ib\r\ncudnn-10.0-7.3         gcc-4.9.2              modules                rstudio-1.2.5033\r\ncudnn-10.1-v7.6.5.32   gcc-6.3.0              mrtrix3-3.0.0-git      singularity\r\ncudnn-10.2-v7.6.5.32   git-2.23               null                   use.own\r\ncudnn-11.1.1-v8.0.4.30 git-2.30               openmpi-1.10-x86_64\r\ncudnn-9.2-7.6          glx-indirect           openmpi-1.8-x86_64\r\ndot                    julia-0.3.6            openmpi-x86_64\r\n[dpane@mind-1-1 ~]$ \r\n\r\n<\/pre>\n<p>Use <em>module load &lt;module filename&gt;<\/em> to activate the software. (e.g.module load anaconda3 ) and <em>module unload &lt;module filename&gt;<\/em> to deactivate the package.<\/p>\n<h6>Example of changing versions of Python and pip using the anaconda3 module file.<\/h6>\n<pre>[dpane@mind ~]$ which python\r\n\/usr\/bin\/python\r\n[dpane@mind ~]$ python --version\r\nPython 2.7.5\r\nx[dpane@mind ~]$ which pip\r\n\/usr\/bin\/pip\r\n[dpane@mind ~]$ pip --version\r\npip 8.1.2 from \/usr\/lib\/python2.7\/site-packages (python 2.7)\r\n[dpane@mind ~]$ module load anaconda3\r\n[dpane@mind ~]$ which python\r\n\/opt\/anaconda3\/bin\/python\r\n[dpane@mind ~]$ which pip\r\n\/opt\/anaconda3\/bin\/pip\r\n[dpane@mind ~]$ pip --version\r\npip 18.1 from \/opt\/anaconda3\/lib\/python3.7\/site-packages\/pip (python 3.7)\r\n[dpane@mind ~]$ python --version\r\nPython 3.7.1\r\n[dpane@mind ~]$\r\n[dpane@mind ~]$ module unload anaconda3\r\n[dpane@mind ~]$\r\n<\/pre>\n<p>When users are creating batch job scripts, they should load the appropriate module within the script so their software will run.<\/p>\n<h3>Running jobs<\/h3>\n<p><span style=\"color: #ff0000;\"><strong>Users &#8211; Avoid processing on the login node ( or &#8220;head node&#8221;). This includes VSCode usage (see this article on <a href=\"https:\/\/ni.cmu.edu\/computing\/knowledge-base\/ssh-vscode-setup\/\">VSCode setup<\/a>)<\/strong> <\/span>The head node is the machine that all users log into &#8211; hostname: <strong>mind.cs.cmu.edu<\/strong>. To run jobs, users need to schedule their jobs using the cluster job scheduler.\u00a0 The scheduler will assign the job to a compute node.\u00a0 The Slurm Workload Manager (or Slurm for short) job scheduler is the only job scheduler we use on the mind cluster. Users can request resources (machines, cpus, cpus, memory, time) and Slurm with allocate the appropriate resources (a compute node that meets the requested resources).\u00a0 If the resources aren&#8217;t available, the scheduler will keep the job request in the queue until a machine(s) with the resources are available.\u00a0 User requests that cannot be met due to the cluster not having the required resources will never get scheduled.\u00a0 The scheduler uses a number of factors and a complicated algorithm to allocate resources fairly.<\/p>\n<p>There are two main job queues which all users are able to submit their jobs to.<\/p>\n<ol>\n<li>cpu &#8211;\u00a0 this encompasses all of the cpu nodes<\/li>\n<li>gpu &#8211;\u00a0 this encompasses all of the gpu nodes<\/li>\n<\/ol>\n<h6>You are expected to only submit to the GPU queue when your job(s) will be using GPU(s) for its&#8217; processing.<\/h6>\n<p>Users are able to request batch or interactive jobs.\u00a0 An interactive\u00a0 job will assign the user a session on a compute node so they can work interactively.<\/p>\n<h6>Example interactive session request on a specific cpu node (you can eliminate specifying a node if you want):<\/h6>\n<pre>srun -p cpu --cpus-per-task=1 --gres=gpu:0 --mem=10GB --time=4:00:00 --nodelist=mind-0-11 --pty bash<\/pre>\n<h6>Example of interactive session request with X11 display on non gpu node:<\/h6>\n<pre>srun --x11 -p cpu --cpus-per-task=1 --gres=gpu:0 --mem=0 --time=4:00:00 --pty $SHELL<\/pre>\n<p>The following is an example of requesting an interactive session on a compute node. In the example, I simply ran the command `hostname` when I was on the head node; requested an interactive session on a node in the cpu queue where I ran the same &#8216;host name&#8217; command; I then exited the interactive session and got back onto the head node.<\/p>\n<pre>[dpane@mind ~]$ hostname\r\nmind.cs.cmu.edu\r\n[dpane@mind ~]$ srun -p cpu --cpus-per-task=1 --gres=gpu:0 --mem=10GB --time=4:00:00 --nodelist=mind-0-11 --pty bash\r\n[dpane@mind-0-11 ~]$\r\n[dpane@mind-0-11 ~]$\r\n[dpane@mind-0-11 ~]$ hostname\r\nmind-0-11.eth\r\n[dpane@mind-0-11 ~]$ exit\r\nexit\r\n[dpane@mind ~]$\r\n<\/pre>\n<p>More information and examples can be found on the <a href=\"\/computing\/knowledge-base\/slurm-scheduler\/\">Slurm Scheduler<\/a> page.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is intended for our new users to begin using the cluster quickly. It summarizes basic information and points to the more detailed information. Users who understand and follow our policies and procedures will meet the our expectations of being good citizens. Please take the time to read our&#8230;<\/p>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[12],"ht-kb-tag":[],"class_list":["post-114","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-getting-started"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":39,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb\/114\/revisions"}],"predecessor-version":[{"id":597,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb\/114\/revisions\/597"}],"wp:attachment":[{"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb-category?post=114"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/ni.cmu.edu\/computing\/wp-json\/wp\/v2\/ht-kb-tag?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}