<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.umiacs.umd.edu/umiacs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Derek</id>
	<title>UMIACS - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umiacs.umd.edu/umiacs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Derek"/>
	<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php/Special:Contributions/Derek"/>
	<updated>2026-04-04T07:48:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=January_2025&amp;diff=12481</id>
		<title>January 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=January_2025&amp;diff=12481"/>
		<updated>2025-01-31T21:02:16Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are viewing this page, then you are connected to the UMD GlobalProtect VPN or locally connected to a UMIACS network.&lt;br /&gt;
&lt;br /&gt;
Access to publicly-routed UMIACS resources such as our [[GitLab]], [[OBJ | Object Store]], and [[Intranet]] page, as well as [[Main Page | this wiki]] and other UMIACS-hosted wikis, is now available for UMIACS users who have reset their UMIACS password as advised previously.&lt;br /&gt;
&lt;br /&gt;
Submission nodes for [[Nexus]] are now available for [[SSH]] connections. If you are connected via the UMD GlobalProtect VPN, you will need to multi-factor authenticate with UMIACS&#039; [[Duo]] instance to be able to connect via SSH.&lt;br /&gt;
&lt;br /&gt;
Outbound traffic from UMIACS networks is now available and users should be able to connect to upstream remote services.  This includes the full use of the Iribe conference rooms.&lt;br /&gt;
&lt;br /&gt;
If you have any questions or concerns, please [[HelpDesk | contact staff]].&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Podman&amp;diff=11833</id>
		<title>Podman</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Podman&amp;diff=11833"/>
		<updated>2024-05-20T13:18:37Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://podman.io/ Podman] is a daemonless container engine alternative to [https://www.docker.com/ Docker].  We don&#039;t support Docker in many of our environments as it grants trivial administrative control over the host the Docker daemon runs on.  Podman on the other hand has the ability to run containers in user namespaces.  This means that for every user name space in the kernel you create the processes within it will map to a new uid/gid range.  For example, if you are root in your container, you will not be uid 0 outside the container, but instead you will be uid 4294000000.&lt;br /&gt;
&lt;br /&gt;
We still believe that [[Apptainer]] is the best option for running containerized workloads on our clustered based resources.  Podman is a good option for developing the containers to be run via Apptainer or building a deliverable for a funding agency.  Please [[HelpDesk | contact staff]] if you would like Podman installed on a workstation or standalone server.  More information on Podman running [https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md rootless].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
To get started there are a few things that you need to configure.&lt;br /&gt;
&lt;br /&gt;
First, run the &amp;lt;code&amp;gt;podman&amp;lt;/code&amp;gt; command.  If it says command not found or you get an ERRO like the one below about no subuid ranges, and you are on a workstation or standalone (non-cluster) server, please [[HelpDesk | contact staff]] with the error and the host that you are using.  We will need to do some steps to setup the host you want ready.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ podman&lt;br /&gt;
ERRO[0000] cannot find mappings for user username: No subuid ranges found for user &amp;quot;username&amp;quot; in /etc/subuid&lt;br /&gt;
Error: missing command &#039;podman COMMAND&#039;&lt;br /&gt;
Try &#039;podman --help&#039; for more information.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
Containers are made up of layers for the image and these are stored in the graphroot setting of &amp;lt;code&amp;gt;~/.config/containers/storage.conf&amp;lt;/code&amp;gt; which by default will be in your home directory.  With our home directories being available over NFS there is an [https://www.redhat.com/sysadmin/rootless-podman-nfs issue] that due to the user name space mapping described above you will not be able to access your home directory when you are building the layers.&lt;br /&gt;
&lt;br /&gt;
You need to update the &amp;lt;code&amp;gt;graphroot&amp;lt;/code&amp;gt; setting to a local directory on the host.  The file &amp;lt;code&amp;gt;~/.config/containers/storage.conf&amp;lt;/code&amp;gt; may not exist until you run &amp;lt;code&amp;gt;podman&amp;lt;/code&amp;gt; the first time, however you can manually create it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storage]&lt;br /&gt;
  driver = &amp;quot;vfs&amp;quot;&lt;br /&gt;
  graphroot = &amp;quot;/scratch0/username/.local/share/containers/storage&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When building larger images, it may fill up the default directory for imageCopyTmpDir (/var/tmp). If this happens, you will need to specify a different directory using the environment variable TMPDIR. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export TMPDIR=&amp;quot;/scratch0/example_tmp_directory&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPUs ==&lt;br /&gt;
Running Podman with the local Nvidia GPUs requires some additional configuration steps that staff has to add to any individual workstation or standalone (non-cluster) server that runs Podman.  This includes ensuring the &amp;lt;tt&amp;gt;nvidia-container-runtime&amp;lt;/tt&amp;gt; package is installed.&lt;br /&gt;
&lt;br /&gt;
For example you can run &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; from within the official Nvidia CUDA containers with a command like this, optionally replacing the tag for different CUDA versions/OS images:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ podman run --rm --hooks-dir=/usr/share/containers/oci/hooks.d docker.io/nvidia/cuda:12.2.2-base-ubi8 nvidia-smi&lt;br /&gt;
Thu Apr 16 18:47:04 2020&lt;br /&gt;
+---------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |&lt;br /&gt;
+---------------------------------------------------------------------------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                      |               MIG M. |&lt;br /&gt;
|=========================================+======================+======================|&lt;br /&gt;
|   0  NVIDIA RTX A6000               Off | 00000000:01:00.0 Off |                  Off |&lt;br /&gt;
| 30%   28C    P8               6W / 300W |      2MiB / 49140MiB |      0%      Default |&lt;br /&gt;
|                                         |                      |                  N/A |&lt;br /&gt;
+-----------------------------------------+----------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+---------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                            |&lt;br /&gt;
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |&lt;br /&gt;
|        ID   ID                                                             Usage      |&lt;br /&gt;
|=======================================================================================|&lt;br /&gt;
|  No running processes found                                                           |&lt;br /&gt;
+---------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full list of tags can be found at https://hub.docker.com/r/nvidia/cuda/tags.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
To build your own image you can start from an example we have https://gitlab.umiacs.umd.edu/derek/gpudocker.&lt;br /&gt;
&lt;br /&gt;
First clone the repository, change directory and build the image with podman.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.umiacs.umd.edu/derek/gpudocker.git&lt;br /&gt;
cd gpudocker&lt;br /&gt;
podman build -t gpudocker .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can run the test script to verify.  Notice that we pass the local directory &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; as a path into the image so we can run a script.  This can also be useful for your data output data as well as if you write anywhere else in the container it will not be available outside the container.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ podman run --volume `pwd`/test:/mnt --hooks-dir=/usr/share/containers/oci/hooks.d gpudocker python3 /mnt/test_torch.py&lt;br /&gt;
GPU found 0: GeForce GTX 1080 Ti&lt;br /&gt;
tensor([[0.3479, 0.6594, 0.5791],&lt;br /&gt;
        [0.6065, 0.3415, 0.9328],&lt;br /&gt;
        [0.9117, 0.3541, 0.9050],&lt;br /&gt;
        [0.6611, 0.5361, 0.3212],&lt;br /&gt;
        [0.8574, 0.5116, 0.7021]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead want to push modifications to this example to your own container registry such that you can pull the container image down later, please see the README.md located in the example repository itself.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=WebCrawling&amp;diff=11648</id>
		<title>WebCrawling</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=WebCrawling&amp;diff=11648"/>
		<updated>2024-03-01T14:01:48Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web crawling, scraping, or otherwise downloading large sets of publicly available information on the Internet (hereafter referred to as just &amp;quot;crawling&amp;quot;) should be handled with care.&lt;br /&gt;
&lt;br /&gt;
You should always understand if any publicly accessible data you are planning on crawling is encumbered or not.  Some things that are publicly accessible are still under copyright and it is important to understand what the restrictions are on any data that you crawl from remotely accessible sites.&lt;br /&gt;
&lt;br /&gt;
There are a number of different organizations that still give access to academic institutions (such as UMIACS) through IP based filtering, but have restrictions on crawling.  The services that they provide may also not be adequately built for programmatic crawling.  In this case, these organizations may ban IP addresses or ranges if crawling is observed on those IP addresses or ranges.  This can then prevent other individuals from using these services from the same IP addresses or ranges. In the case of UMIACS, bad behavior on the part of a single user from UMIACS systems can result in all access to a service being banned from UMIACS&#039; public IP addresses.&lt;br /&gt;
&lt;br /&gt;
Some examples of databases or sites that may have restrictions on crawling are (not an exhaustive list):&lt;br /&gt;
* University of Maryland Library Resources - https://lib.guides.umd.edu/c.php?g=326950&amp;amp;p=2194463&lt;br /&gt;
* NCBI - https://www.ncbi.nlm.nih.gov/search/&lt;br /&gt;
&lt;br /&gt;
You should never try to evade limitations or restrictions imposed by the site or owner for publicly available service that you are looking to crawl.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=WebCrawling&amp;diff=11625</id>
		<title>WebCrawling</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=WebCrawling&amp;diff=11625"/>
		<updated>2024-02-21T15:02:58Z</updated>

		<summary type="html">&lt;p&gt;Derek: Created page with &amp;quot;Web crawling, scraping or otherwise downloading large sets of publicly available information on the Internet should be handled with care.  You should always understand if any data you are planning on scraping is publicly available but is still encumbered.  Some things that are publicly accessible are still under copyright and are important to understand what restrictions on any data that you crawl from remotely accessible sites.  There are a number of different sites tha...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web crawling, scraping or otherwise downloading large sets of publicly available information on the Internet should be handled with care.&lt;br /&gt;
&lt;br /&gt;
You should always understand if any data you are planning on scraping is publicly available but is still encumbered.  Some things that are publicly accessible are still under copyright and are important to understand what restrictions on any data that you crawl from remotely accessible sites.&lt;br /&gt;
&lt;br /&gt;
There are a number of different sites that still give access to academic institutions through IP based filtering but have restrictions on scraping or crawling.  There can also be the case that the service is not adequately built for programmatic crawling.  In this case these organizations only often option to sites who crawl them is to ban IP addresses (or ranges).  This of course can have impacts on individuals who try to then use these services from UMIACS public IPs and are blocked.&lt;br /&gt;
&lt;br /&gt;
Some examples but not an exhaustive list are the following of databases or sites that may have restrictions:&lt;br /&gt;
&lt;br /&gt;
* University of Maryland Library Resources - https://lib.guides.umd.edu/c.php?g=326950&amp;amp;p=2194463&lt;br /&gt;
* NCBI - https://www.ncbi.nlm.nih.gov/search/&lt;br /&gt;
&lt;br /&gt;
Users should not be ever trying to evade limitations or restrictions of data within a publicly available service they are looking to scrape.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=S3Clients&amp;diff=11041</id>
		<title>S3Clients</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=S3Clients&amp;diff=11041"/>
		<updated>2023-06-21T13:15:38Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* mc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many popular S3 desktop clients can be used to access the [[OBJ | UMIACS Object Store]].  These tools complement the [[UMobj]] command line utilities and the built-in web interface by providing integration with the native file explorer on your desktop machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Many of these clients have features that are not supported by our Object Store in UMIACS.  One prominent example of this is permissions. We suggest you instead manage permissions from the [https://obj.umiacs.umd.edu/obj built-in web application] for the Object Store.&lt;br /&gt;
&lt;br /&gt;
=Graphical Clients=&lt;br /&gt;
&lt;br /&gt;
==Cyberduck==&lt;br /&gt;
* http://cyberduck.ch/&lt;br /&gt;
&lt;br /&gt;
This is a free Windows and Mac S3 browser (it is however nagware that asks for a donation).  It supports our S3 Object Stores using the &amp;quot;S3 (Amazon Simple Storage Service)&amp;quot;  drop down menu choice in the add bookmark dialog.  The following fields are required.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cyberduck.png|400px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;&#039;&#039; - This should be your object store (&amp;lt;code&amp;gt;obj.umiacs.umd.edu&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Access Key ID&#039;&#039;&#039; - This is your access key as provided to you in the object store&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039; - This is your secret key as provided to you in the object store&lt;br /&gt;
&lt;br /&gt;
You will be prompted for your secret key when you connect and may choose to save the password.&lt;br /&gt;
&lt;br /&gt;
==Transmit==&lt;br /&gt;
* http://panic.com/transmit/&lt;br /&gt;
This is a paid file transfer application for Mac.  It supports our S3 Object Stores using the &amp;quot;S3&amp;quot; menu choice after clicking the plus sign to add a favorite.   The following fields are required:&lt;br /&gt;
&lt;br /&gt;
[[Image:Transmit.png|400px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;&#039;&#039; - This should be your object store (&amp;lt;code&amp;gt;obj.umiacs.umd.edu&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Access Key ID&#039;&#039;&#039; - This is your access key as provided to you in the object store&lt;br /&gt;
* &#039;&#039;&#039;Secret&#039;&#039;&#039; - This is your secret key as provided to you in the object store&lt;br /&gt;
&lt;br /&gt;
These settings can be saved as a favorite for easy access.  Transmit also allows you to mount your Obj buckets as local disks, which will support easy drag-and-drop of files.&lt;br /&gt;
&lt;br /&gt;
=Command Line Clients=&lt;br /&gt;
==s3cmd==&lt;br /&gt;
Command line client for accessing S3-like services.&lt;br /&gt;
&lt;br /&gt;
* http://s3tools.org/s3cmd&lt;br /&gt;
&lt;br /&gt;
You need to configure a file like &amp;lt;code&amp;gt;~/.s3cmd&amp;lt;/code&amp;gt; that looks like the following with your ACCESS_KEY and SECRET_KEY substituted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
access_key = ACCESS_KEY&lt;br /&gt;
host_base = obj.umiacs.umd.edu&lt;br /&gt;
host_bucket = %(bucket)s.obj.umiacs.umd.edu&lt;br /&gt;
secret_key = SECRET_KEY&lt;br /&gt;
use_https = True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==mc==&lt;br /&gt;
The Minio Client is a comprehensive single binary (Go) command line client for cloud based storage services.&lt;br /&gt;
&lt;br /&gt;
* https://min.io/download&lt;br /&gt;
&lt;br /&gt;
Users in UMIACS can run this client on supported systems through adding a software [[Modules|modules]] for &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module add mc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to setup a cloud provider for Obj and you should first retrieve the ACCESS_KEY and SECRET_KEY for your personal or LabAccount in the [https://obj.umiacs.umd.edu/obj/user/ Object Store ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mc config host add obj http://obj.umiacs.umd.edu ACCESS_KEY SECRET_KEY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see what host(s) you have configured by the command &amp;lt;code&amp;gt;mc config host ls&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can then use the normal &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt; commands like the following to list the contents of a bucket.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mc ls obj/iso&lt;br /&gt;
[2017-02-10 16:45:04 EST] 3.5GiB rhel-server-7.3-x86_64-dvd.iso&lt;br /&gt;
[2017-02-13 12:21:33 EST] 4.0GiB rhel-workstation-7.3-x86_64-dvd.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also the ability to search for file globs of specific files using the &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; sub-command for &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mc find derek/derek_support --name &amp;quot;*.log&amp;quot;&lt;br /&gt;
derek/derek_support/mds_20170918/ceph-mds.objmds01.log&lt;br /&gt;
derek/derek_support/satellite.log&lt;br /&gt;
derek/derek_support/umiacs-49168.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=S3Clients&amp;diff=10808</id>
		<title>S3Clients</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=S3Clients&amp;diff=10808"/>
		<updated>2023-02-07T20:34:37Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* mc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many popular S3 desktop clients can be used to access the [[OBJ | UMIACS Object Store]].  These tools complement the [[UMobj]] command line utilities and the built-in web interface by providing integration with the native file explorer on your desktop machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Many of these clients have features that are not supported by our Object Store in UMIACS.  One prominent example of this is permissions. We suggest you instead manage permissions from the [https://obj.umiacs.umd.edu/obj built-in web application] for the Object Store.&lt;br /&gt;
&lt;br /&gt;
=Graphical Clients=&lt;br /&gt;
&lt;br /&gt;
==Cyberduck==&lt;br /&gt;
* http://cyberduck.ch/&lt;br /&gt;
&lt;br /&gt;
This is a free Windows and Mac S3 browser (it is however nagware that asks for a donation).  It supports our S3 Object Stores using the &amp;quot;S3 (Amazon Simple Storage Service)&amp;quot;  drop down menu choice in the add bookmark dialog.  The following fields are required.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cyberduck.png|400px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;&#039;&#039; - This should be your object store (&amp;lt;code&amp;gt;obj.umiacs.umd.edu&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Access Key ID&#039;&#039;&#039; - This is your access key as provided to you in the object store&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039; - This is your secret key as provided to you in the object store&lt;br /&gt;
&lt;br /&gt;
You will be prompted for your secret key when you connect and may choose to save the password.&lt;br /&gt;
&lt;br /&gt;
==Transmit==&lt;br /&gt;
* http://panic.com/transmit/&lt;br /&gt;
This is a paid file transfer application for Mac.  It supports our S3 Object Stores using the &amp;quot;S3&amp;quot; menu choice after clicking the plus sign to add a favorite.   The following fields are required:&lt;br /&gt;
&lt;br /&gt;
[[Image:Transmit.png|400px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;&#039;&#039; - This should be your object store (&amp;lt;code&amp;gt;obj.umiacs.umd.edu&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &#039;&#039;&#039;Access Key ID&#039;&#039;&#039; - This is your access key as provided to you in the object store&lt;br /&gt;
* &#039;&#039;&#039;Secret&#039;&#039;&#039; - This is your secret key as provided to you in the object store&lt;br /&gt;
&lt;br /&gt;
These settings can be saved as a favorite for easy access.  Transmit also allows you to mount your Obj buckets as local disks, which will support easy drag-and-drop of files.&lt;br /&gt;
&lt;br /&gt;
=Command Line Clients=&lt;br /&gt;
==s3cmd==&lt;br /&gt;
Command line client for accessing S3-like services.&lt;br /&gt;
&lt;br /&gt;
* http://s3tools.org/s3cmd&lt;br /&gt;
&lt;br /&gt;
You need to configure a file like &amp;lt;code&amp;gt;~/.s3cmd&amp;lt;/code&amp;gt; that looks like the following with your ACCESS_KEY and SECRET_KEY substituted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
access_key = ACCESS_KEY&lt;br /&gt;
host_base = obj.umiacs.umd.edu&lt;br /&gt;
host_bucket = %(bucket)s.obj.umiacs.umd.edu&lt;br /&gt;
secret_key = SECRET_KEY&lt;br /&gt;
use_https = True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==mc==&lt;br /&gt;
The Minio Client is a comprehensive single binary (Go) command line client for cloud based storage services.&lt;br /&gt;
&lt;br /&gt;
* https://min.io/download&lt;br /&gt;
&lt;br /&gt;
Users in UMIACS can run this client on supported systems through adding a software [[Modules|modules]] for &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module add mc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to setup a cloud provider for Obj and you should first retrieve the ACCESS_KEY and SECRET_KEY for your personal or LabAccount in the [https://obj.umiacs.umd.edu/obj/user/ Object Store ].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mc alias set obj http://obj.umiacs.umd.edu ACCESS_KEY SECRET_KEY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can then use the normal &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt; commands like the following to list the contents of a bucket.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mc ls obj/iso&lt;br /&gt;
[2017-02-10 16:45:04 EST] 3.5GiB rhel-server-7.3-x86_64-dvd.iso&lt;br /&gt;
[2017-02-13 12:21:33 EST] 4.0GiB rhel-workstation-7.3-x86_64-dvd.iso&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also the ability to search for file globs of specific files using the &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; sub-command for &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mc find derek/derek_support --name &amp;quot;*.log&amp;quot;&lt;br /&gt;
derek/derek_support/mds_20170918/ceph-mds.objmds01.log&lt;br /&gt;
derek/derek_support/satellite.log&lt;br /&gt;
derek/derek_support/umiacs-49168.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Podman&amp;diff=10778</id>
		<title>Podman</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Podman&amp;diff=10778"/>
		<updated>2022-12-21T18:55:41Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://podman.io/ Podman] is a daemonless container engine alternative to [https://www.docker.com/ Docker].  We don&#039;t support Docker in many of our environments as it grants trivial administrative control over the host the Docker daemon runs on.  Podman on the other hand has the ability to run containers in user namespaces.  This means that for every user name space in the kernel you create the processes within it will map to a new uid/gid range.  For example, if you are root in your container, you will not be uid 0 outside the container, but instead you will be uid 4294000000.&lt;br /&gt;
&lt;br /&gt;
We still believe that [[Singularity]] is the best option for running containerized workloads on our clustered based resources.  Podman is a good option for developing the containers to be run via [[Singularity]] or building a deliverable for a funding agency.  Please [[HelpDesk | contact staff]] if you would like podman installed on a workstation or standalone server.  More information on Podman running [https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md rootless].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
To get started there are a few things that you need to configure.&lt;br /&gt;
&lt;br /&gt;
First run the &#039;&#039;&#039;podman&#039;&#039;&#039; command.  If it says command not found or that you get an ERRO like the one below about no subuid ranges please [[HelpDesk | contact staff]] with the error and the host that you are using.  We will need to do some steps to setup the host you want ready.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[username@zerus:~ ] $ podman&lt;br /&gt;
ERRO[0000] cannot find mappings for user username: No subuid ranges found for user &amp;quot;username&amp;quot; in /etc/subuid&lt;br /&gt;
Error: missing command &#039;podman COMMAND&#039;&lt;br /&gt;
Try &#039;podman --help&#039; for more information.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
Containers are made up of layers for the image and these are stored in the graphroot setting of &amp;lt;code&amp;gt;~/.config/containers/storage.conf&amp;lt;/code&amp;gt; which by default will be in your home directory.  With our home directories being available over NFS there is an issue[https://www.redhat.com/sysadmin/rootless-podman-nfs] that due to the user name space mapping described above you will not be able to access your home directory when you are building the layers.&lt;br /&gt;
&lt;br /&gt;
You need to update the &amp;lt;code&amp;gt;graphroot&amp;lt;/code&amp;gt; setting to a local directory on the host.  The file &amp;lt;code&amp;gt;~/.config/containers/storage.conf&amp;lt;/code&amp;gt; may not exist until you run &amp;lt;code&amp;gt;podman&amp;lt;/code&amp;gt; the first time. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storage]&lt;br /&gt;
  driver = &amp;quot;vfs&amp;quot;&lt;br /&gt;
  runroot = &amp;quot;/tmp/run-2174&amp;quot;&lt;br /&gt;
  graphroot = &amp;quot;/scratch1/username/.local/share/containers/storage&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPUs ==&lt;br /&gt;
Running Podman with the local Nvidia GPUs requires some additional configuration steps that staff has to add to any individual host that runs Podman.  This includes ensuring the &amp;lt;tt&amp;gt;nvidia-container-runtime&amp;lt;/tt&amp;gt; package is installed.&lt;br /&gt;
&lt;br /&gt;
For example you can run &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt; from within the official Nvidia CUDA containers with a command like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ podman run --rm --hooks-dir=/usr/share/containers/oci/hooks.d docker.io/nvidia/cuda nvidia-smi&lt;br /&gt;
Thu Apr 16 18:47:04 2020&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 440.44       Driver Version: 440.44       CUDA Version: 10.2     |&lt;br /&gt;
|-------------------------------+----------------------+----------------------+&lt;br /&gt;
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|===============================+======================+======================|&lt;br /&gt;
|   0  GeForce GTX TIT...  Off  | 00000000:03:00.0 Off |                  N/A |&lt;br /&gt;
| 22%   40C    P8    14W / 250W |    142MiB / 12212MiB |      1%      Default |&lt;br /&gt;
+-------------------------------+----------------------+----------------------+&lt;br /&gt;
|   1  GeForce GTX TIT...  Off  | 00000000:04:00.0 Off |                  N/A |&lt;br /&gt;
| 22%   34C    P8    15W / 250W |      1MiB / 12212MiB |      1%      Default |&lt;br /&gt;
+-------------------------------+----------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                       GPU Memory |&lt;br /&gt;
|  GPU       PID   Type   Process name                             Usage      |&lt;br /&gt;
|=============================================================================|&lt;br /&gt;
+-----------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
To build your own image you can start from an example we have https://gitlab.umiacs.umd.edu/derek/gpudocker.&lt;br /&gt;
&lt;br /&gt;
First clone the repository, change directory and build the image with podman.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://gitlab.umiacs.umd.edu/derek/gpudocker.git&lt;br /&gt;
cd gpudocker&lt;br /&gt;
podman build -t gpudocker .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can run the test script to verify.  Notice that we pass the local directory &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; as a path into the image so we can run a script.  This can also be useful for your data output data as well as if you write anywhere else in the container it will not be available outside the container.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ podman run --volume `pwd`/test:/mnt --hooks-dir=/usr/share/containers/oci/hooks.d gpudocker python3 /mnt/test_torch.py&lt;br /&gt;
GPU found 0: GeForce GTX 1080 Ti&lt;br /&gt;
tensor([[0.3479, 0.6594, 0.5791],&lt;br /&gt;
        [0.6065, 0.3415, 0.9328],&lt;br /&gt;
        [0.9117, 0.3541, 0.9050],&lt;br /&gt;
        [0.6611, 0.5361, 0.3212],&lt;br /&gt;
        [0.8574, 0.5116, 0.7021]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10772</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10772"/>
		<updated>2022-11-18T16:18:30Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs and accessing resources like GPUs in other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition=cbcb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account=cbcb&amp;lt;/code&amp;gt; and a specific &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --ntasks=16 --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218874 queued and waiting for resources&lt;br /&gt;
srun: job 218874 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218874&lt;br /&gt;
JobId=218874 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:06 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:13:56 EligibleTime=2022-11-18T11:13:56&lt;br /&gt;
   AccrueTime=2022-11-18T11:13:56&lt;br /&gt;
   StartTime=2022-11-18T11:13:56 EndTime=2022-11-19T11:13:56 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:13:56 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:13:56 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=16 NumTasks=16 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=16,mem=2000G,node=1,billing=2266&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
CBCB still has its current [https://wiki.umiacs.umd.edu/cbcb-private/index.php/Storage storage] allocation still in place.  All data file systems are available computationally in the Nexus that were available in the previous CBCB cluster.  Please note about the change in your home directory in the migration section below.&lt;br /&gt;
&lt;br /&gt;
CBCB users can also request allocations from our [[Nexus#Storage]] policies.&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10771</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10771"/>
		<updated>2022-11-18T16:17:02Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs and accessing resources like GPUs in other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition=cbcb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account=cbcb&amp;lt;/code&amp;gt; and a specific &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --ntasks=16 --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218874 queued and waiting for resources&lt;br /&gt;
srun: job 218874 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218874&lt;br /&gt;
JobId=218874 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:06 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:13:56 EligibleTime=2022-11-18T11:13:56&lt;br /&gt;
   AccrueTime=2022-11-18T11:13:56&lt;br /&gt;
   StartTime=2022-11-18T11:13:56 EndTime=2022-11-19T11:13:56 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:13:56 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:13:56 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=16 NumTasks=16 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=16,mem=2000G,node=1,billing=2266&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
CBCB has its current [https://wiki.umiacs.umd.edu/cbcb-private/index.php/Storage storage] allocation still in place.  Please note that the home directory migration information below.&lt;br /&gt;
&lt;br /&gt;
CBCB users can also request allocations from our [[Nexus#Storage]] policies.&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10770</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10770"/>
		<updated>2022-11-18T16:14:33Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs and accessing resources like GPUs in other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition=cbcb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account=cbcb&amp;lt;/code&amp;gt; and a specific &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --ntasks=16 --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218874 queued and waiting for resources&lt;br /&gt;
srun: job 218874 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218874&lt;br /&gt;
JobId=218874 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:06 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:13:56 EligibleTime=2022-11-18T11:13:56&lt;br /&gt;
   AccrueTime=2022-11-18T11:13:56&lt;br /&gt;
   StartTime=2022-11-18T11:13:56 EndTime=2022-11-19T11:13:56 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:13:56 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:13:56 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=16 NumTasks=16 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=16,mem=2000G,node=1,billing=2266&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10769</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10769"/>
		<updated>2022-11-18T16:12:44Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Quality of Service (QoS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Nexus is the combined scheduler of resources in UMIACS.  Many of our existing computational clusters that have discrete schedulers will be folding into this scheduler in the future (see [[#Migrations | below]]).  The resource manager for Nexus (as with our other existing computational clusters) is [[SLURM]].  Resources are arranged into partitions where users are able to schedule computational jobs.  Users are arranged into a number of SLURM accounts based on faculty, lab, or center investments.&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
All accounts in UMIACS are sponsored.  If you don&#039;t already have a UMIACS account, please see [[Accounts]] for information on getting one.  You need a full UMIACS account (not a [[Accounts/Collaborator | collaborator account]]) in order to access Nexus.&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
The submission nodes for the Nexus computational resources are determined by department, center, or lab affiliation.  You can log into the [https://intranet.umiacs.umd.edu/directory/cr/ UMIACS Directory CR application] and select the Computational Resource (CR) in the list that has the prefix &amp;lt;code&amp;gt;nexus&amp;lt;/code&amp;gt;. The Hosts section lists your available login nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - UMIACS requires multi-factor authentication through our [[Duo]] instance.  This is completely discrete from both UMD&#039;s and CSD&#039;s Duo instances.  You will need to enroll one or more devices to access resources in UMIACS, and will be prompted to enroll when you log into the Directory application for the first time.&lt;br /&gt;
&lt;br /&gt;
Once you have identified your submission nodes, you can [[SSH]] directly into them.  From there, you are able to submit to the cluster via our [[SLURM]] workload manager.  You need to make sure that your submitted jobs have the correct account, partition, and qos.&lt;br /&gt;
&lt;br /&gt;
== Jobs ==&lt;br /&gt;
[[SLURM]] jobs are submitted by either &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sbatch&amp;lt;/code&amp;gt; depending if you are doing an interactive job or batch job, respectively.  You need to provide the where/how/who to run the job and specify the resources you need to run with.&lt;br /&gt;
&lt;br /&gt;
For the where/how/who, you may be required to specify &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; (respectively) to be able to adequately submit jobs to the Nexus.&lt;br /&gt;
&lt;br /&gt;
For resources, you may need to specify &amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt; for time, &amp;lt;code&amp;gt;--tasks&amp;lt;/code&amp;gt; for CPUs, &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; for RAM, and &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt; for GPUs in your submission arguments to meet your requirements.  There are defaults for all four, so if you don&#039;t specify something, you may be scheduled with a very minimal set of time and resources (e.g., by default, NO GPUs are included if you do not specify &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt;).  For more information about submission flags for GPU resources, see [[SLURM/JobSubmission#Requesting_GPUs]].  You can also can run &amp;lt;code&amp;gt;man srun&amp;lt;/code&amp;gt; on your submission node for a complete list of available submission arguments.&lt;br /&gt;
&lt;br /&gt;
=== Interactive ===&lt;br /&gt;
Once logged into a submission node, you can run simple interactive jobs.  If your session is interrupted from the submission node, the job will be killed.  As such, we encourage use of a terminal multiplexer such as [[Tmux]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --ntasks 4 --mem=2gb --gres=gpu:1 nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-ae5dc1f5-c266-5b9f-58d5-7976e62b3ca1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Batch ===&lt;br /&gt;
Batch jobs are scheduled with a script file with an optional ability to embed job scheduling parameters via variables that are defined by &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; lines at the top of the file.  You can find some examples in our [[SLURM/JobSubmission]] documentation.&lt;br /&gt;
&lt;br /&gt;
= Partitions = &lt;br /&gt;
The SLURM resource manager uses partitions to act as job queues which can restrict size, time and user limits.  The Nexus (when fully operational) will have a number of different partitions of resources.  Different Centers, Labs, and Faculty will be able to invest in computational resources that will be restricted to approved users through these partitions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by all non-[[ClassAccounts |class account]] users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/Tron]] - Pool of resources available to all UMIACS and CSD faculty and graduate students.&lt;br /&gt;
* Scavenger - [https://slurm.schedmd.com/preempt.html Preemption] partition that supports nodes from multiple other partitions.  More resources are available to schedule simultaneously than in other partitions, however jobs are subject to preemption rules.  You are responsible for ensuring your jobs handle this preemption correctly.  The SLURM scheduler will simply restart a preempted job with the same submission arguments when it is available to run again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by [[ClassAccounts]]:&#039;&#039;&#039;&lt;br /&gt;
* [[ClassAccounts | Class]] - Pool available for UMIACS/CSD class accounts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by specific lab/center users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/CLIP]] - CLIP lab pool available for CLIP lab members.&lt;br /&gt;
* [[Nexus/Gamma]] - GAMMA lab pool available for GAMMA lab members.&lt;br /&gt;
* [[Nexus/MC2]] - MC2 lab pool available for MC2 lab members.&lt;br /&gt;
* [[Nexus/CBCB]] - CBCB lab pool available for CBCB lab members.&lt;br /&gt;
&lt;br /&gt;
= Quality of Service (QoS) =&lt;br /&gt;
SLURM uses a QoS to provide limits on job sizes to users.  Note that you should still try to only allocate the minimum resources for your jobs, as resources that each of your jobs schedules are counted against your [https://slurm.schedmd.com/fair_tree.html FairShare priority] in the future.&lt;br /&gt;
* default - Default QoS. Limited to 4 cores, 32GB RAM, and 1 GPU per job.  The maximum wall time per job is 3 days.&lt;br /&gt;
* medium - Limited to 8 cores, 64GB RAM, and 2 GPUs per job.  The maximum wall time per job is 2 days.&lt;br /&gt;
* high - Limited to 16 cores, 128GB RAM, and 4 GPUs per job.  The maximum wall time per job is 1 day.&lt;br /&gt;
* scavenger - Limited to 64 cores, 256GB RAM, and 8 GPUs per job.  The maximum wall time per job is 2 days.  Only 192 total cores, 768GB total RAM, and 24 total GPUs are permitted simultaneously across all of your jobs running in this QoS.  This QoS is both only available in the scavenger partition and the only QoS available in the scavenger partition. To use this QoS, include &amp;lt;code&amp;gt;--partition=scavenger&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=scavenger&amp;lt;/code&amp;gt; in your submission arguments. Do not include any QoS argument other than &amp;lt;code&amp;gt;--qos=scavenger&amp;lt;/code&amp;gt; (optional) or the submission will fail.&lt;br /&gt;
&lt;br /&gt;
You can display these QoSes from the command line using &amp;lt;code&amp;gt;show_qos&amp;lt;/code&amp;gt; command. Other partition, lab-or-group-specific or reserved QoSes may also appear in the listing. The above four QoSes are the ones that everyone can submit to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                    cpu=32,mem=2000G&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that in the default non-preemption partition (&amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt;), you will be restricted to 32 total cores, 256GB total RAM, and 4 total GPUs at once across all jobs you have running in the QoSes allowed by that partition.  This is codified by the reserved QoS also named &amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt; in the output above. Lab/group-specific partitions may also have similar restrictions across all users in that lab/group that are using the partition (codified by &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; in the output above for the QoS name that matches the lab/group partition).&lt;br /&gt;
&lt;br /&gt;
To find out what accounts and partitions you have access to, use the &amp;lt;code&amp;gt;show_assoc&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
All storage available in Nexus is currently [[NFS]] based.  We will be introducing some changes for Phase 2 to support high performance GPUDirect Storage (GDS).  These storage allocation procedures will be revised and approved by the launch of Phase 2 by a joint UMIACS and CSD faculty committee.&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
Home directories in the Nexus computational infrastructure are available from the Institute&#039;s [[NFShomes]] as &amp;lt;code&amp;gt;/nfshomes/USERNAME&amp;lt;/code&amp;gt; where USERNAME is your username.  These home directories have very limited storage (20GB, cannot be increased) and are intended for your personal files, configuration and source code.  Your home directory is &#039;&#039;&#039;not&#039;&#039;&#039; intended for data sets or other large scale data holdings.  Users are encouraged to utilize our [[GitLab]] infrastructure to host your code repositories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: To check your quota on this directory you will need to use the &amp;lt;code&amp;gt;quota -s&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
Your home directory data is fully protected and has both [[Snapshots | snapshots]] and is [[NightlyBackups | backed up nightly]].&lt;br /&gt;
&lt;br /&gt;
Other standalone compute clusters have begun to fold into partitions in Nexus.  The corresponding home directories used by these clusters (if not &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt;) will be gradually phased out in favor of the &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt; home directories.&lt;br /&gt;
&lt;br /&gt;
== Scratch Directories ==&lt;br /&gt;
Scratch data has no data protection including no snapshots and the data is not backed up. There are two types of scratch directories in the Nexus compute infrastructure:&lt;br /&gt;
* Network scratch directories&lt;br /&gt;
* Local scratch directories&lt;br /&gt;
&lt;br /&gt;
Please note that [[ClassAccounts | class accounts]] do not have network scratch directories.&lt;br /&gt;
&lt;br /&gt;
=== Network Scratch Directories ===&lt;br /&gt;
You are allocated 200GB of scratch space via NFS from &amp;lt;code&amp;gt;/fs/nexus-scratch/$username&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;It is not backed up or protected in any way.&#039;&#039;&#039;  This directory is &#039;&#039;&#039;automounted&#039;&#039;&#039; so you will need to &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the directory or request/specify a fully qualified file path to access this.&lt;br /&gt;
&lt;br /&gt;
You may request a permanent increase of up to 400GB total space without any faculty approval by [[HelpDesk | contacting staff]].  If you need space beyond 400GB, you will need faculty approval and/or a project directory.&lt;br /&gt;
&lt;br /&gt;
This file system is available on all submission, data management, and computational nodes within the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Local Scratch Directories ===&lt;br /&gt;
Each computational node that you can schedule compute jobs on also has one or more local scratch directories.  These are always named &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/scratch1&amp;lt;/code&amp;gt;, etc.  These are almost always more performant than any other storage available to the job.  However, you must stage their data within the confines of your job and stage the data out before the end of your job.&lt;br /&gt;
&lt;br /&gt;
These local scratch directories have a tmpwatch job which will &#039;&#039;&#039;delete unaccessed data after 90 days&#039;&#039;&#039;, scheduled via maintenance jobs to run once a month at 1am.  Different nodes will run the maintenance jobs on different days of the month to ensure the cluster is still highly available at all times.  Please make sure you secure any data you write to these directories at the end of your job.&lt;br /&gt;
&lt;br /&gt;
== Faculty Allocations ==&lt;br /&gt;
Each faculty member can be allocated 1TB of lab space upon request.  We can also support grouping these individual allocations together into larger center, lab, or research group allocations if desired by the faculty.  Please [[HelpDesk | contact staff]] to inquire.&lt;br /&gt;
&lt;br /&gt;
This lab space does not have [[Snapshots | snapshots]] by default (but are available if requested), but is [[NightlyBackups | backed up]].&lt;br /&gt;
&lt;br /&gt;
== Project Allocations ==&lt;br /&gt;
Project allocations are available per user for 270 TB days; you can have a 1TB allocation for up to 270 days, a 3TB allocation for 90 days, etc..  A single faculty member can not have more than 20 TB of sponsored account project allocations active at any point. &lt;br /&gt;
&lt;br /&gt;
The minimum storage space you can request (maximum length) is 500GB (540 days) and the minimum allocation length you can request (maximum storage) is 30 days (9TB).&lt;br /&gt;
&lt;br /&gt;
To request an allocation, please [[HelpDesk | contact staff]] with your account sponsor involved in the conversation.  Please include the following details:&lt;br /&gt;
* Project Name (short)&lt;br /&gt;
* Description&lt;br /&gt;
* Size (1TB, 2TB, etc.)&lt;br /&gt;
* Length in days (270 days, 135 days, etc.)&lt;br /&gt;
* Other user(s) that need to access the allocation, if any&lt;br /&gt;
&lt;br /&gt;
These allocations will be available via &amp;lt;code&amp;gt;/fs/nexus-projects/$project_name&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;Renewal is not guaranteed to be available due to limits on the amount of total storage.&#039;&#039;&#039;  Near the end of the allocation period, staff will contact you and ask if you are still in need of the storage allocation.  If you are no longer in need of the storage allocation, you will need to relocate all desired data within 14 days of the end of the allocation period.  Staff will then remove the allocation.&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
We have read-only dataset storage available at &amp;lt;code&amp;gt;/fs/nexus-datasets&amp;lt;/code&amp;gt;.  If there are datasets that you would like to see curated and available, please see [[Datasets | this page]].&lt;br /&gt;
&lt;br /&gt;
We will have a more formal process to approve datasets by Phase 2 of Nexus.&lt;br /&gt;
&lt;br /&gt;
= Migrations =&lt;br /&gt;
If you are a user of an existing cluster that is the process of being folded into Nexus now or in the near future, your cluster-specific migration information will be listed here.&lt;br /&gt;
* [[Nexus/CLIP | CLIP]]&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10768</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10768"/>
		<updated>2022-11-18T16:12:16Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Partitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Nexus is the combined scheduler of resources in UMIACS.  Many of our existing computational clusters that have discrete schedulers will be folding into this scheduler in the future (see [[#Migrations | below]]).  The resource manager for Nexus (as with our other existing computational clusters) is [[SLURM]].  Resources are arranged into partitions where users are able to schedule computational jobs.  Users are arranged into a number of SLURM accounts based on faculty, lab, or center investments.&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
All accounts in UMIACS are sponsored.  If you don&#039;t already have a UMIACS account, please see [[Accounts]] for information on getting one.  You need a full UMIACS account (not a [[Accounts/Collaborator | collaborator account]]) in order to access Nexus.&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
The submission nodes for the Nexus computational resources are determined by department, center, or lab affiliation.  You can log into the [https://intranet.umiacs.umd.edu/directory/cr/ UMIACS Directory CR application] and select the Computational Resource (CR) in the list that has the prefix &amp;lt;code&amp;gt;nexus&amp;lt;/code&amp;gt;. The Hosts section lists your available login nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - UMIACS requires multi-factor authentication through our [[Duo]] instance.  This is completely discrete from both UMD&#039;s and CSD&#039;s Duo instances.  You will need to enroll one or more devices to access resources in UMIACS, and will be prompted to enroll when you log into the Directory application for the first time.&lt;br /&gt;
&lt;br /&gt;
Once you have identified your submission nodes, you can [[SSH]] directly into them.  From there, you are able to submit to the cluster via our [[SLURM]] workload manager.  You need to make sure that your submitted jobs have the correct account, partition, and qos.&lt;br /&gt;
&lt;br /&gt;
== Jobs ==&lt;br /&gt;
[[SLURM]] jobs are submitted by either &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sbatch&amp;lt;/code&amp;gt; depending if you are doing an interactive job or batch job, respectively.  You need to provide the where/how/who to run the job and specify the resources you need to run with.&lt;br /&gt;
&lt;br /&gt;
For the where/how/who, you may be required to specify &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; (respectively) to be able to adequately submit jobs to the Nexus.&lt;br /&gt;
&lt;br /&gt;
For resources, you may need to specify &amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt; for time, &amp;lt;code&amp;gt;--tasks&amp;lt;/code&amp;gt; for CPUs, &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; for RAM, and &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt; for GPUs in your submission arguments to meet your requirements.  There are defaults for all four, so if you don&#039;t specify something, you may be scheduled with a very minimal set of time and resources (e.g., by default, NO GPUs are included if you do not specify &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt;).  For more information about submission flags for GPU resources, see [[SLURM/JobSubmission#Requesting_GPUs]].  You can also can run &amp;lt;code&amp;gt;man srun&amp;lt;/code&amp;gt; on your submission node for a complete list of available submission arguments.&lt;br /&gt;
&lt;br /&gt;
=== Interactive ===&lt;br /&gt;
Once logged into a submission node, you can run simple interactive jobs.  If your session is interrupted from the submission node, the job will be killed.  As such, we encourage use of a terminal multiplexer such as [[Tmux]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --ntasks 4 --mem=2gb --gres=gpu:1 nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-ae5dc1f5-c266-5b9f-58d5-7976e62b3ca1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Batch ===&lt;br /&gt;
Batch jobs are scheduled with a script file with an optional ability to embed job scheduling parameters via variables that are defined by &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; lines at the top of the file.  You can find some examples in our [[SLURM/JobSubmission]] documentation.&lt;br /&gt;
&lt;br /&gt;
= Partitions = &lt;br /&gt;
The SLURM resource manager uses partitions to act as job queues which can restrict size, time and user limits.  The Nexus (when fully operational) will have a number of different partitions of resources.  Different Centers, Labs, and Faculty will be able to invest in computational resources that will be restricted to approved users through these partitions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by all non-[[ClassAccounts |class account]] users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/Tron]] - Pool of resources available to all UMIACS and CSD faculty and graduate students.&lt;br /&gt;
* Scavenger - [https://slurm.schedmd.com/preempt.html Preemption] partition that supports nodes from multiple other partitions.  More resources are available to schedule simultaneously than in other partitions, however jobs are subject to preemption rules.  You are responsible for ensuring your jobs handle this preemption correctly.  The SLURM scheduler will simply restart a preempted job with the same submission arguments when it is available to run again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by [[ClassAccounts]]:&#039;&#039;&#039;&lt;br /&gt;
* [[ClassAccounts | Class]] - Pool available for UMIACS/CSD class accounts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by specific lab/center users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/CLIP]] - CLIP lab pool available for CLIP lab members.&lt;br /&gt;
* [[Nexus/Gamma]] - GAMMA lab pool available for GAMMA lab members.&lt;br /&gt;
* [[Nexus/MC2]] - MC2 lab pool available for MC2 lab members.&lt;br /&gt;
* [[Nexus/CBCB]] - CBCB lab pool available for CBCB lab members.&lt;br /&gt;
&lt;br /&gt;
= Quality of Service (QoS) =&lt;br /&gt;
SLURM uses a QoS to provide limits on job sizes to users.  Note that you should still try to only allocate the minimum resources for your jobs, as resources that each of your jobs schedules are counted against your [https://slurm.schedmd.com/fair_tree.html FairShare priority] in the future.&lt;br /&gt;
* default - Default QoS. Limited to 4 cores, 32GB RAM, and 1 GPU per job.  The maximum wall time per job is 3 days.&lt;br /&gt;
* medium - Limited to 8 cores, 64GB RAM, and 2 GPUs per job.  The maximum wall time per job is 2 days.&lt;br /&gt;
* high - Limited to 16 cores, 128GB RAM, and 4 GPUs per job.  The maximum wall time per job is 1 day.&lt;br /&gt;
* scavenger - Limited to 64 cores, 256GB RAM, and 8 GPUs per job.  The maximum wall time per job is 2 days.  Only 192 total cores, 768GB total RAM, and 24 total GPUs are permitted simultaneously across all of your jobs running in this QoS.  This QoS is both only available in the scavenger partition and the only QoS available in the scavenger partition. To use this QoS, include &amp;lt;code&amp;gt;--partition=scavenger&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=scavenger&amp;lt;/code&amp;gt; in your submission arguments. Do not include any QoS argument other than &amp;lt;code&amp;gt;--qos=scavenger&amp;lt;/code&amp;gt; (optional) or the submission will fail.&lt;br /&gt;
&lt;br /&gt;
You can display these QoSes from the command line using &amp;lt;code&amp;gt;show_qos&amp;lt;/code&amp;gt; command. Other partition, lab-or-group-specific or reserved QoSes may also appear in the listing. The above four QoSes are the ones that everyone can submit to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                    cpu=32,mem=2063238M&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that in the default non-preemption partition (&amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt;), you will be restricted to 32 total cores, 256GB total RAM, and 4 total GPUs at once across all jobs you have running in the QoSes allowed by that partition.  This is codified by the reserved QoS also named &amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt; in the output above. Lab/group-specific partitions may also have similar restrictions across all users in that lab/group that are using the partition (codified by &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; in the output above for the QoS name that matches the lab/group partition).&lt;br /&gt;
&lt;br /&gt;
To find out what accounts and partitions you have access to, use the &amp;lt;code&amp;gt;show_assoc&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
All storage available in Nexus is currently [[NFS]] based.  We will be introducing some changes for Phase 2 to support high performance GPUDirect Storage (GDS).  These storage allocation procedures will be revised and approved by the launch of Phase 2 by a joint UMIACS and CSD faculty committee.&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
Home directories in the Nexus computational infrastructure are available from the Institute&#039;s [[NFShomes]] as &amp;lt;code&amp;gt;/nfshomes/USERNAME&amp;lt;/code&amp;gt; where USERNAME is your username.  These home directories have very limited storage (20GB, cannot be increased) and are intended for your personal files, configuration and source code.  Your home directory is &#039;&#039;&#039;not&#039;&#039;&#039; intended for data sets or other large scale data holdings.  Users are encouraged to utilize our [[GitLab]] infrastructure to host your code repositories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: To check your quota on this directory you will need to use the &amp;lt;code&amp;gt;quota -s&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
Your home directory data is fully protected and has both [[Snapshots | snapshots]] and is [[NightlyBackups | backed up nightly]].&lt;br /&gt;
&lt;br /&gt;
Other standalone compute clusters have begun to fold into partitions in Nexus.  The corresponding home directories used by these clusters (if not &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt;) will be gradually phased out in favor of the &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt; home directories.&lt;br /&gt;
&lt;br /&gt;
== Scratch Directories ==&lt;br /&gt;
Scratch data has no data protection including no snapshots and the data is not backed up. There are two types of scratch directories in the Nexus compute infrastructure:&lt;br /&gt;
* Network scratch directories&lt;br /&gt;
* Local scratch directories&lt;br /&gt;
&lt;br /&gt;
Please note that [[ClassAccounts | class accounts]] do not have network scratch directories.&lt;br /&gt;
&lt;br /&gt;
=== Network Scratch Directories ===&lt;br /&gt;
You are allocated 200GB of scratch space via NFS from &amp;lt;code&amp;gt;/fs/nexus-scratch/$username&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;It is not backed up or protected in any way.&#039;&#039;&#039;  This directory is &#039;&#039;&#039;automounted&#039;&#039;&#039; so you will need to &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the directory or request/specify a fully qualified file path to access this.&lt;br /&gt;
&lt;br /&gt;
You may request a permanent increase of up to 400GB total space without any faculty approval by [[HelpDesk | contacting staff]].  If you need space beyond 400GB, you will need faculty approval and/or a project directory.&lt;br /&gt;
&lt;br /&gt;
This file system is available on all submission, data management, and computational nodes within the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Local Scratch Directories ===&lt;br /&gt;
Each computational node that you can schedule compute jobs on also has one or more local scratch directories.  These are always named &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/scratch1&amp;lt;/code&amp;gt;, etc.  These are almost always more performant than any other storage available to the job.  However, you must stage their data within the confines of your job and stage the data out before the end of your job.&lt;br /&gt;
&lt;br /&gt;
These local scratch directories have a tmpwatch job which will &#039;&#039;&#039;delete unaccessed data after 90 days&#039;&#039;&#039;, scheduled via maintenance jobs to run once a month at 1am.  Different nodes will run the maintenance jobs on different days of the month to ensure the cluster is still highly available at all times.  Please make sure you secure any data you write to these directories at the end of your job.&lt;br /&gt;
&lt;br /&gt;
== Faculty Allocations ==&lt;br /&gt;
Each faculty member can be allocated 1TB of lab space upon request.  We can also support grouping these individual allocations together into larger center, lab, or research group allocations if desired by the faculty.  Please [[HelpDesk | contact staff]] to inquire.&lt;br /&gt;
&lt;br /&gt;
This lab space does not have [[Snapshots | snapshots]] by default (but are available if requested), but is [[NightlyBackups | backed up]].&lt;br /&gt;
&lt;br /&gt;
== Project Allocations ==&lt;br /&gt;
Project allocations are available per user for 270 TB days; you can have a 1TB allocation for up to 270 days, a 3TB allocation for 90 days, etc..  A single faculty member can not have more than 20 TB of sponsored account project allocations active at any point. &lt;br /&gt;
&lt;br /&gt;
The minimum storage space you can request (maximum length) is 500GB (540 days) and the minimum allocation length you can request (maximum storage) is 30 days (9TB).&lt;br /&gt;
&lt;br /&gt;
To request an allocation, please [[HelpDesk | contact staff]] with your account sponsor involved in the conversation.  Please include the following details:&lt;br /&gt;
* Project Name (short)&lt;br /&gt;
* Description&lt;br /&gt;
* Size (1TB, 2TB, etc.)&lt;br /&gt;
* Length in days (270 days, 135 days, etc.)&lt;br /&gt;
* Other user(s) that need to access the allocation, if any&lt;br /&gt;
&lt;br /&gt;
These allocations will be available via &amp;lt;code&amp;gt;/fs/nexus-projects/$project_name&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;Renewal is not guaranteed to be available due to limits on the amount of total storage.&#039;&#039;&#039;  Near the end of the allocation period, staff will contact you and ask if you are still in need of the storage allocation.  If you are no longer in need of the storage allocation, you will need to relocate all desired data within 14 days of the end of the allocation period.  Staff will then remove the allocation.&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
We have read-only dataset storage available at &amp;lt;code&amp;gt;/fs/nexus-datasets&amp;lt;/code&amp;gt;.  If there are datasets that you would like to see curated and available, please see [[Datasets | this page]].&lt;br /&gt;
&lt;br /&gt;
We will have a more formal process to approve datasets by Phase 2 of Nexus.&lt;br /&gt;
&lt;br /&gt;
= Migrations =&lt;br /&gt;
If you are a user of an existing cluster that is the process of being folded into Nexus now or in the near future, your cluster-specific migration information will be listed here.&lt;br /&gt;
* [[Nexus/CLIP | CLIP]]&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10767</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10767"/>
		<updated>2022-11-18T16:11:00Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs and accessing resources like GPUs in other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition=cbcb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account=cbcb&amp;lt;/code&amp;gt; and a specific &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218872 queued and waiting for resources&lt;br /&gt;
srun: job 218872 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218872&lt;br /&gt;
JobId=218872 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:07 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:09:28 EligibleTime=2022-11-18T11:09:28&lt;br /&gt;
   AccrueTime=2022-11-18T11:09:28&lt;br /&gt;
   StartTime=2022-11-18T11:09:28 EndTime=2022-11-19T11:09:28 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:09:28 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:09:28 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=1,mem=2000G,node=1,billing=2251&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10766</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10766"/>
		<updated>2022-11-18T16:10:23Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs and accessing resources like GPUs in other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218872 queued and waiting for resources&lt;br /&gt;
srun: job 218872 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218872&lt;br /&gt;
JobId=218872 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:07 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:09:28 EligibleTime=2022-11-18T11:09:28&lt;br /&gt;
   AccrueTime=2022-11-18T11:09:28&lt;br /&gt;
   StartTime=2022-11-18T11:09:28 EndTime=2022-11-19T11:09:28 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:09:28 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:09:28 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=1,mem=2000G,node=1,billing=2251&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10765</id>
		<title>Nexus/CBCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CBCB&amp;diff=10765"/>
		<updated>2022-11-18T16:09:48Z</updated>

		<summary type="html">&lt;p&gt;Derek: Created page with &amp;quot;The Nexus computational resources and scheduler house the CBCB&amp;#039;s new computational partition.  = Submission Nodes = There are two submission nodes for Nexus exclusively av...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Nexus]] computational resources and scheduler house the CBCB&#039;s new computational partition.&lt;br /&gt;
&lt;br /&gt;
= Submission Nodes =&lt;br /&gt;
There are two submission nodes for Nexus exclusively available for CBCB users.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb00.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nexuscbcb01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Resources = &lt;br /&gt;
The new CBCB partition has 22 new nodes with 32 AMD EPYC-7313 cores and 2000GB of memory each.  CBCB users also has access to submitting jobs into other partitions in [[Nexus]].&lt;br /&gt;
&lt;br /&gt;
= QoS = &lt;br /&gt;
Currently CBCB users have access to all the default QoS in the cbcb partition using the cbcb account however there is one additional QoS called &amp;lt;code&amp;gt;highmem&amp;lt;/code&amp;gt; that allows significantly increased memory to be allocated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=339,mem=2926G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=179,mem=1511G&lt;br /&gt;
         mc2                                                                                      cpu=307,mem=1896G&lt;br /&gt;
        cbcb                                                                                     cpu=913,mem=46931G&lt;br /&gt;
     highmem 21-00:00:00                       cpu=32,mem=2000G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jobs =&lt;br /&gt;
You will need to specify a &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt; when you submit jobs into the CBCB partition..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[derek@nexuscbcb00:~ ] $ srun --pty --mem=2000G --qos=highmem --partition=cbcb --account=cbcb --time 1-00:00:00 bash&lt;br /&gt;
srun: job 218872 queued and waiting for resources&lt;br /&gt;
srun: job 218872 has been allocated resources&lt;br /&gt;
[derek@cbcb00:~ ] $ scontrol show job 218872&lt;br /&gt;
JobId=218872 JobName=bash&lt;br /&gt;
   UserId=derek(2174) GroupId=derek(22174) MCS_label=N/A&lt;br /&gt;
   Priority=897 Nice=0 Account=cbcb QOS=highmem&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0&lt;br /&gt;
   RunTime=00:00:07 TimeLimit=1-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2022-11-18T11:09:28 EligibleTime=2022-11-18T11:09:28&lt;br /&gt;
   AccrueTime=2022-11-18T11:09:28&lt;br /&gt;
   StartTime=2022-11-18T11:09:28 EndTime=2022-11-19T11:09:28 Deadline=N/A&lt;br /&gt;
   PreemptEligibleTime=2022-11-18T11:09:28 PreemptTime=None&lt;br /&gt;
   SuspendTime=None SecsPreSuspend=0 LastSchedEval=2022-11-18T11:09:28 Scheduler=Main&lt;br /&gt;
   Partition=cbcb AllocNode:Sid=nexuscbcb00:25443&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cbcb00&lt;br /&gt;
   BatchHost=cbcb00&lt;br /&gt;
   NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=1,mem=2000G,node=1,billing=2251&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*&lt;br /&gt;
   MinCPUsNode=1 MinMemoryNode=2000G MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)&lt;br /&gt;
   Command=bash&lt;br /&gt;
   WorkDir=/nfshomes/derek&lt;br /&gt;
   Power=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Migration =&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
The [[Nexus]] runs on our [[NFShomes]] home directories and not /cbcbhomes/$USERNAME.  As part of the process of migrating into Nexus you may need or want to copy any shell customization from your existing &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; to your new home directory.  To make this transition easier &amp;lt;code&amp;gt;/cbcbhomes&amp;lt;/code&amp;gt; is available to the CBCB submission nodes.&lt;br /&gt;
&lt;br /&gt;
== Operating System / Software ==&lt;br /&gt;
Previously CBCB&#039;s cluster was running RHEL7.  The [[Nexus]] is running exclusively RHEL8 so any software you may have compiled may need to be re-compiled to work correctly in this new environment.  The CBCB [https://wiki.umiacs.umd.edu/cbcb/index.php/CBCB_Software_Modules module tree] for RHEL8 has just been started (and may not be populated) and if you do not see the modules you need you should reach out to the maintainers.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CLIP&amp;diff=10758</id>
		<title>Nexus/CLIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CLIP&amp;diff=10758"/>
		<updated>2022-11-16T14:57:16Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The [https://wiki.umiacs.umd.edu/clip/index.php/Main_Page CLIP] lab&#039;s cluster compute nodes will be gradually folded into UMIACS&#039; new [[Nexus]] cluster beginning on Monday, July 25th, 2022 at 9am in order to further the goal of consolidating all compute nodes in UMIACS onto one common [[SLURM]] scheduler.&lt;br /&gt;
&lt;br /&gt;
The Nexus cluster already has a large pool of compute resources made possible through leftover funding for the [[Iribe | Brendan Iribe Center]]. Details on common nodes already in the cluster (Tron partition) can be found [[Nexus/Tron | here]].&lt;br /&gt;
&lt;br /&gt;
As part of the transition, compute nodes will be reinstalled with Red Hat Enterprise Linux 8 (RHEL8) as their operating system. The nodes are currently installed with Red Hat Enterprise Linux 7 (RHEL7) as is. GPU compute nodes&#039; names will also change to be just &amp;lt;code&amp;gt;clip##&amp;lt;/code&amp;gt; for consistency with Nexus&#039; naming scheme. CPU-only compute nodes will fold into the &amp;lt;tt&amp;gt;legacy&amp;lt;/tt&amp;gt; partition and will thus be named &amp;lt;code&amp;gt;legacy##&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Data stored on the local scratch drives of compute nodes (/scratch0, /scratch1, etc.) will not persist through the reinstalls. Please secure all data in these local scratch drives to a network attached storage location prior to each nodes&#039; move date as listed below.&lt;br /&gt;
&lt;br /&gt;
You may need to re-compile or re-link your applications due to the changes to the underlying operating system libraries. We have tried to maintain a similar set of software in our GNU [[Modules]] software trees for both operating systems. However, you may need to let us know if there is something missing after the upgrades.&lt;br /&gt;
&lt;br /&gt;
In addition, the general purpose nodes &amp;lt;code&amp;gt;context00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;context01.umiacs.umd.edu&amp;lt;/code&amp;gt; were retired on Tuesday, September 6th, 2022 at 9am. Please use &amp;lt;code&amp;gt;clipsub00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipsub01.umiacs.umd.edu&amp;lt;/code&amp;gt; (or the &amp;lt;code&amp;gt;nexusclip&amp;lt;/code&amp;gt; submission nodes) for any general purpose CLIP compute needs.&lt;br /&gt;
&lt;br /&gt;
Lastly, /cliphomes directories will be deprecated sometime in the coming year. The Nexus cluster uses [[NFShomes | /nfshomes]] directories for home directory storage space. There will be a future announcement about this deprecation that includes a concrete date after the cluster node moves are done or nearly done. /cliphomes will be made read-only once the cluster node moves are done.&lt;br /&gt;
&lt;br /&gt;
Please see the [[#Timeline | Timeline]] section below for concrete dates in chronological order.&lt;br /&gt;
&lt;br /&gt;
Please [[HelpDesk | contact staff]] with any questions or concerns.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The Nexus cluster submission nodes that are allocated to CLIP are &amp;lt;code&amp;gt;nexusclip00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nexusclip01.umiacs.umd.edu&amp;lt;/code&amp;gt;. You will need to log onto one of these submission nodes to use the moved compute nodes. Submission from &amp;lt;code&amp;gt;clipsub00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;clipsub01.umiacs.umd.edu&amp;lt;/code&amp;gt; will not work.&lt;br /&gt;
&lt;br /&gt;
CLIP users (exclusively) can schedule non-interruptible jobs on the moved nodes, both GPU-capable and CPU-only, by including the &amp;lt;code&amp;gt;--partition=clip&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=clip&amp;lt;/code&amp;gt; submission arguments. Please note that the partition has a &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; limit of 100% of the available cores/RAM on clip## nodes plus 50% of the available cores/RAM on legacy## nodes, so your job may need to wait if all available cores/RAM (or GPUs) are in use.&lt;br /&gt;
&lt;br /&gt;
The Quality of Service (QoS) options present on the CLIP SLURM scheduler will not be migrated into the Nexus SLURM scheduler by default. The &amp;lt;code&amp;gt;huge-long&amp;lt;/code&amp;gt; QoS can be used to request resources beyond those available in the universal Nexus QoSes listed [[Nexus#Quality_of_Service_.28QoS.29 | here]]. If you are interested in migrating a QoS from the CLIP scheduler to the Nexus scheduler, please [[HelpDesk | contact staff]] and we will evaluate the request.&lt;br /&gt;
&lt;br /&gt;
==Timeline==&lt;br /&gt;
All events are liable to begin as early as 9am US Eastern time on the dates indicated. Each event will be completed within the business week (i.e. Fridays at 5pm).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Date&lt;br /&gt;
! Event&lt;br /&gt;
|-&lt;br /&gt;
| July 25th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu01&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 1st 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu02&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu03&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip02&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 8th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu04&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu05&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip04&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip05&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 15th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu06&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;materialgpu00&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip06&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip07&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 22nd 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;materialgpu01&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;materialgpu02&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip08&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip09&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| September 6th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;context00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;context01&amp;lt;/code&amp;gt; are taken offline&lt;br /&gt;
|-&lt;br /&gt;
| Fall 2022&lt;br /&gt;
| Announcement is made about the deprecation of &amp;lt;code&amp;gt;/fs/cliphomes&amp;lt;/code&amp;gt; directories&lt;br /&gt;
|- &lt;br /&gt;
| January 2nd 2023&lt;br /&gt;
| &amp;lt;code&amp;gt;chroneme[04,06-07], d[41-46], phoneme[00-09]&amp;lt;/code&amp;gt; will be re-installed as legacy nodes and made available in Nexus&lt;br /&gt;
|-&lt;br /&gt;
| February 1st 2023&lt;br /&gt;
| Retirement of the old clip cluster infrastructure (scheduler and nodes).  Submission nodes will continue to be available and will have a 30 day deprecation notice.&lt;br /&gt;
|-&lt;br /&gt;
| March 1st 2023&lt;br /&gt;
| Retirement of the submission nodes &amp;lt;code&amp;gt;clipsub00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipsub01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CLIP&amp;diff=10757</id>
		<title>Nexus/CLIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/CLIP&amp;diff=10757"/>
		<updated>2022-11-16T14:56:18Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The [https://wiki.umiacs.umd.edu/clip/index.php/Main_Page CLIP] lab&#039;s cluster compute nodes will be gradually folded into UMIACS&#039; new [[Nexus]] cluster beginning on Monday, July 25th, 2022 at 9am in order to further the goal of consolidating all compute nodes in UMIACS onto one common [[SLURM]] scheduler.&lt;br /&gt;
&lt;br /&gt;
The Nexus cluster already has a large pool of compute resources made possible through leftover funding for the [[Iribe | Brendan Iribe Center]]. Details on common nodes already in the cluster (Tron partition) can be found [[Nexus/Tron | here]].&lt;br /&gt;
&lt;br /&gt;
As part of the transition, compute nodes will be reinstalled with Red Hat Enterprise Linux 8 (RHEL8) as their operating system. The nodes are currently installed with Red Hat Enterprise Linux 7 (RHEL7) as is. GPU compute nodes&#039; names will also change to be just &amp;lt;code&amp;gt;clip##&amp;lt;/code&amp;gt; for consistency with Nexus&#039; naming scheme. CPU-only compute nodes will fold into the &amp;lt;tt&amp;gt;legacy&amp;lt;/tt&amp;gt; partition and will thus be named &amp;lt;code&amp;gt;legacy##&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Data stored on the local scratch drives of compute nodes (/scratch0, /scratch1, etc.) will not persist through the reinstalls. Please secure all data in these local scratch drives to a network attached storage location prior to each nodes&#039; move date as listed below.&lt;br /&gt;
&lt;br /&gt;
You may need to re-compile or re-link your applications due to the changes to the underlying operating system libraries. We have tried to maintain a similar set of software in our GNU [[Modules]] software trees for both operating systems. However, you may need to let us know if there is something missing after the upgrades.&lt;br /&gt;
&lt;br /&gt;
In addition, the general purpose nodes &amp;lt;code&amp;gt;context00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;context01.umiacs.umd.edu&amp;lt;/code&amp;gt; were retired on Tuesday, September 6th, 2022 at 9am. Please use &amp;lt;code&amp;gt;clipsub00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipsub01.umiacs.umd.edu&amp;lt;/code&amp;gt; (or the &amp;lt;code&amp;gt;nexusclip&amp;lt;/code&amp;gt; submission nodes) for any general purpose CLIP compute needs.&lt;br /&gt;
&lt;br /&gt;
Lastly, /cliphomes directories will be deprecated sometime in the coming year. The Nexus cluster uses [[NFShomes | /nfshomes]] directories for home directory storage space. There will be a future announcement about this deprecation that includes a concrete date after the cluster node moves are done or nearly done. /cliphomes will be made read-only once the cluster node moves are done.&lt;br /&gt;
&lt;br /&gt;
Please see the [[#Timeline | Timeline]] section below for concrete dates in chronological order.&lt;br /&gt;
&lt;br /&gt;
Please [[HelpDesk | contact staff]] with any questions or concerns.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
The Nexus cluster submission nodes that are allocated to CLIP are &amp;lt;code&amp;gt;nexusclip00.umiacs.umd.edu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nexusclip01.umiacs.umd.edu&amp;lt;/code&amp;gt;. You will need to log onto one of these submission nodes to use the moved compute nodes. Submission from &amp;lt;code&amp;gt;clipsub00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;clipsub01.umiacs.umd.edu&amp;lt;/code&amp;gt; will not work.&lt;br /&gt;
&lt;br /&gt;
CLIP users (exclusively) can schedule non-interruptible jobs on the moved nodes, both GPU-capable and CPU-only, by including the &amp;lt;code&amp;gt;--partition=clip&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=clip&amp;lt;/code&amp;gt; submission arguments. Please note that the partition has a &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; limit of 100% of the available cores/RAM on clip## nodes plus 50% of the available cores/RAM on legacy## nodes, so your job may need to wait if all available cores/RAM (or GPUs) are in use.&lt;br /&gt;
&lt;br /&gt;
The Quality of Service (QoS) options present on the CLIP SLURM scheduler will not be migrated into the Nexus SLURM scheduler by default. The &amp;lt;code&amp;gt;huge-long&amp;lt;/code&amp;gt; QoS can be used to request resources beyond those available in the universal Nexus QoSes listed [[Nexus#Quality_of_Service_.28QoS.29 | here]]. If you are interested in migrating a QoS from the CLIP scheduler to the Nexus scheduler, please [[HelpDesk | contact staff]] and we will evaluate the request.&lt;br /&gt;
&lt;br /&gt;
==Timeline==&lt;br /&gt;
All events are liable to begin as early as 9am US Eastern time on the dates indicated. Each event will be completed within the business week (i.e. Fridays at 5pm).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Date&lt;br /&gt;
! Event&lt;br /&gt;
|-&lt;br /&gt;
| July 25th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu01&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip01&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 1st 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu02&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu03&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip02&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 8th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu04&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clipgpu05&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip04&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip05&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 15th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;clipgpu06&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;materialgpu00&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip06&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip07&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| August 22nd 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;materialgpu01&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;materialgpu02&amp;lt;/code&amp;gt; are moved into Nexus as &amp;lt;code&amp;gt;clip08&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clip09&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| September 6th 2022&lt;br /&gt;
| &amp;lt;code&amp;gt;context00&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;context01&amp;lt;/code&amp;gt; are taken offline&lt;br /&gt;
|-&lt;br /&gt;
| Ongoing&lt;br /&gt;
| CPU-only compute nodes are moved into Nexus as &amp;lt;code&amp;gt;legacy##&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Fall 2022&lt;br /&gt;
| Announcement is made about the deprecation of &amp;lt;code&amp;gt;/fs/cliphomes&amp;lt;/code&amp;gt; directories&lt;br /&gt;
|- &lt;br /&gt;
| January 2nd 2023&lt;br /&gt;
| &amp;lt;code&amp;gt;chroneme[04,06-07], d[41-46], phoneme[00-09]&amp;lt;/code&amp;gt; will be re-installed as legacy nodes and made available in Nexus&lt;br /&gt;
|-&lt;br /&gt;
| February 1st 2023&lt;br /&gt;
| Retirement of the old clip cluster infrastructure (scheduler and nodes).  Submission nodes will continue to be available.&lt;br /&gt;
|-&lt;br /&gt;
| March 1st 2023&lt;br /&gt;
| Retirement of the submission nodes &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10749</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10749"/>
		<updated>2022-11-09T15:00:36Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Quality of Service (QoS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Nexus is the combined scheduler of resources in UMIACS.  Many of our existing computational clusters that have discrete schedulers will be folding into this scheduler in the future (see [[#Migrations | below]]).  The resource manager for Nexus (as with our other existing computational clusters) is [[SLURM]].  Resources are arranged into partitions where users are able to schedule computational jobs.  Users are arranged into a number of SLURM accounts based on faculty, lab, or center investments.&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
All accounts in UMIACS are sponsored.  If you don&#039;t already have a UMIACS account, please see [[Accounts]] for information on getting one.  You need a full UMIACS account (not a [[Accounts/Collaborator | collaborator account]]) in order to access Nexus.&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
The submission nodes for the Nexus computational resources are determined by department, center, or lab affiliation.  You can log into the [https://intranet.umiacs.umd.edu/directory/cr/ UMIACS Directory CR application] and select the Computational Resource (CR) in the list that has the prefix &amp;lt;code&amp;gt;nexus&amp;lt;/code&amp;gt;. The Hosts section lists your available login nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - UMIACS requires multi-factor authentication through our [[Duo]] instance.  This is completely discrete from both UMD&#039;s and CSD&#039;s Duo instances.  You will need to enroll one or more devices to access resources in UMIACS, and will be prompted to enroll when you log into the Directory application for the first time.&lt;br /&gt;
&lt;br /&gt;
Once you have identified your submission nodes, you can [[SSH]] directly into them.  From there, you are able to submit to the cluster via our [[SLURM]] workload manager.  You need to make sure that your submitted jobs have the correct account, partition, and qos.&lt;br /&gt;
&lt;br /&gt;
== Jobs ==&lt;br /&gt;
[[SLURM]] jobs are submitted by either &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sbatch&amp;lt;/code&amp;gt; depending if you are doing an interactive job or batch job, respectively.  You need to provide the where/how/who to run the job and specify the resources you need to run with.&lt;br /&gt;
&lt;br /&gt;
For the where/how/who, you may be required to specify &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; (respectively) to be able to adequately submit jobs to the Nexus.&lt;br /&gt;
&lt;br /&gt;
For resources, you may need to specify &amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt; for time, &amp;lt;code&amp;gt;--tasks&amp;lt;/code&amp;gt; for CPUs, &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; for RAM, and &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt; for GPUs in your submission arguments to meet your requirements.  There are defaults for all four, so if you don&#039;t specify something, you may be scheduled with a very minimal set of time and resources (e.g., by default, NO GPUs are included if you do not specify &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt;).  For more information about submission flags for GPU resources, see [[SLURM/JobSubmission#Requesting_GPUs]].  You can also can run &amp;lt;code&amp;gt;man srun&amp;lt;/code&amp;gt; on your submission node for a complete list of available submission arguments.&lt;br /&gt;
&lt;br /&gt;
=== Interactive ===&lt;br /&gt;
Once logged into a submission node, you can run simple interactive jobs.  If your session is interrupted from the submission node, the job will be killed.  As such, we encourage use of a terminal multiplexer such as [[Tmux]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --ntasks 4 --mem=2gb --gres=gpu:1 nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-ae5dc1f5-c266-5b9f-58d5-7976e62b3ca1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Batch ===&lt;br /&gt;
Batch jobs are scheduled with a script file with an optional ability to embed job scheduling parameters via variables that are defined by &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; lines at the top of the file.  You can find some examples in our [[SLURM/JobSubmission]] documentation.&lt;br /&gt;
&lt;br /&gt;
= Partitions = &lt;br /&gt;
The SLURM resource manager uses partitions to act as job queues which can restrict size, time and user limits.  The Nexus (when fully operational) will have a number of different partitions of resources.  Different Centers, Labs, and Faculty will be able to invest in computational resources that will be restricted to approved users through these partitions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by all non-[[ClassAccounts |class account]] users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/Tron]] - Pool of resources available to all UMIACS and CSD faculty and graduate students.&lt;br /&gt;
* Scavenger - [https://slurm.schedmd.com/preempt.html Preemption] partition that supports nodes from multiple other partitions.  More resources are available to schedule simultaneously than in other partitions, however jobs are subject to preemption rules.  You are responsible for ensuring your jobs handle this preemption correctly.  The SLURM scheduler will simply restart a preempted job with the same submission arguments when it is available to run again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by [[ClassAccounts]]:&#039;&#039;&#039;&lt;br /&gt;
* [[ClassAccounts | Class]] - Pool available for UMIACS/CSD class accounts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by specific lab/center users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/CLIP]] - CLIP lab pool available for CLIP lab members.&lt;br /&gt;
* [[Nexus/Gamma]] - GAMMA lab pool available for GAMMA lab members.&lt;br /&gt;
* [[Nexus/MC2]] - MC2 lab pool available for MC2 lab members.&lt;br /&gt;
&lt;br /&gt;
= Quality of Service (QoS) =&lt;br /&gt;
SLURM uses a QoS to provide limits on job sizes to users.  Note that you should still try to only allocate the minimum resources for your jobs, as resources that each of your jobs schedules are counted against your [https://slurm.schedmd.com/fair_tree.html FairShare priority] in the future.&lt;br /&gt;
* default - Default QoS. Limited to 4 cores, 32GB RAM, and 1 GPU per job.  The maximum wall time per job is 3 days.&lt;br /&gt;
* medium - Limited to 8 cores, 64GB RAM, and 2 GPUs per job.  The maximum wall time per job is 2 days.&lt;br /&gt;
* high - Limited to 16 cores, 128GB RAM, and 4 GPUs per job.  The maximum wall time per job is 1 day.&lt;br /&gt;
* scavenger - Limited to 64 cores, 256GB RAM, and 8 GPUs per job.  The maximum wall time per job is 2 days.  Only 192 total cores, 768GB total RAM, and 24 total GPUs are permitted simultaneously across all of your jobs running in this QoS.  This QoS is both only available in the scavenger partition and the only QoS available in the scavenger partition. To use this QoS, include &amp;lt;code&amp;gt;--partition=scavenger&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=scavenger&amp;lt;/code&amp;gt; in your submission arguments. Do not include any QoS argument other than &amp;lt;code&amp;gt;--qos=scavenger&amp;lt;/code&amp;gt; (optional) or the submission will fail.&lt;br /&gt;
&lt;br /&gt;
You can display these QoSes from the command line using &amp;lt;code&amp;gt;show_qos&amp;lt;/code&amp;gt; command. Other partition, lab-or-group-specific or reserved QoSes may also appear in the listing. The above four QoSes are the ones that everyone can submit to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# show_qos&lt;br /&gt;
        Name     MaxWall MaxJobs                        MaxTRES                      MaxTRESPU              GrpTRES&lt;br /&gt;
------------ ----------- ------- ------------------------------ ------------------------------ --------------------&lt;br /&gt;
      normal&lt;br /&gt;
   scavenger  2-00:00:00             cpu=64,gres/gpu=8,mem=256G   cpu=192,gres/gpu=24,mem=768G&lt;br /&gt;
      medium  2-00:00:00               cpu=8,gres/gpu=2,mem=64G&lt;br /&gt;
        high  1-00:00:00             cpu=16,gres/gpu=4,mem=128G&lt;br /&gt;
     default  3-00:00:00               cpu=4,gres/gpu=1,mem=32G&lt;br /&gt;
        tron                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
   huge-long 10-00:00:00             cpu=32,gres/gpu=8,mem=256G&lt;br /&gt;
        clip                                                                                      cpu=334,mem=2830G&lt;br /&gt;
       class                                                        cpu=32,gres/gpu=4,mem=256G&lt;br /&gt;
       gamma                                                                                      cpu=174,mem=1415G&lt;br /&gt;
         mc2                                                                                      cpu=302,mem=1800G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that in the default non-preemption partition (&amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt;), you will be restricted to 32 total cores, 256GB total RAM, and 4 total GPUs at once across all jobs you have running in the QoSes allowed by that partition.  This is codified by the reserved QoS also named &amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt; in the output above. Lab/group-specific partitions may also have similar restrictions across all users in that lab/group that are using the partition (codified by &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; in the output above for the QoS name that matches the lab/group partition).&lt;br /&gt;
&lt;br /&gt;
To find out what accounts and partitions you have access to, use the &amp;lt;code&amp;gt;show_assoc&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
All storage available in Nexus is currently [[NFS]] based.  We will be introducing some changes for Phase 2 to support high performance GPUDirect Storage (GDS).  These storage allocation procedures will be revised and approved by the launch of Phase 2 by a joint UMIACS and CSD faculty committee.&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
Home directories in the Nexus computational infrastructure are available from the Institute&#039;s [[NFShomes]] as &amp;lt;code&amp;gt;/nfshomes/USERNAME&amp;lt;/code&amp;gt; where USERNAME is your username.  These home directories have very limited storage (20GB, cannot be increased) and are intended for your personal files, configuration and source code.  Your home directory is &#039;&#039;&#039;not&#039;&#039;&#039; intended for data sets or other large scale data holdings.  Users are encouraged to utilize our [[GitLab]] infrastructure to host your code repositories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: To check your quota on this directory you will need to use the &amp;lt;code&amp;gt;quota -s&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
Your home directory data is fully protected and has both [[Snapshots | snapshots]] and is [[NightlyBackups | backed up nightly]].&lt;br /&gt;
&lt;br /&gt;
Other standalone compute clusters have begun to fold into partitions in Nexus.  The corresponding home directories used by these clusters (if not &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt;) will be gradually phased out in favor of the &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt; home directories.&lt;br /&gt;
&lt;br /&gt;
== Scratch Directories ==&lt;br /&gt;
Scratch data has no data protection including no snapshots and the data is not backed up. There are two types of scratch directories in the Nexus compute infrastructure:&lt;br /&gt;
* Network scratch directories&lt;br /&gt;
* Local scratch directories&lt;br /&gt;
&lt;br /&gt;
Please note that [[ClassAccounts | class accounts]] do not have network scratch directories.&lt;br /&gt;
&lt;br /&gt;
=== Network Scratch Directories ===&lt;br /&gt;
You are allocated 200GB of scratch space via NFS from &amp;lt;code&amp;gt;/fs/nexus-scratch/$username&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;It is not backed up or protected in any way.&#039;&#039;&#039;  This directory is &#039;&#039;&#039;automounted&#039;&#039;&#039; so you will need to &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the directory or request/specify a fully qualified file path to access this.&lt;br /&gt;
&lt;br /&gt;
You may request a permanent increase of up to 400GB total space without any faculty approval by [[HelpDesk | contacting staff]].  If you need space beyond 400GB, you will need faculty approval and/or a project directory.&lt;br /&gt;
&lt;br /&gt;
This file system is available on all submission, data management, and computational nodes within the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Local Scratch Directories ===&lt;br /&gt;
Each computational node that you can schedule compute jobs on also has one or more local scratch directories.  These are always named &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/scratch1&amp;lt;/code&amp;gt;, etc.  These are almost always more performant than any other storage available to the job.  However, you must stage their data within the confines of your job and stage the data out before the end of your job.&lt;br /&gt;
&lt;br /&gt;
These local scratch directories have a tmpwatch job which will &#039;&#039;&#039;delete unaccessed data after 90 days&#039;&#039;&#039;, scheduled via maintenance jobs to run once a month at 1am.  Different nodes will run the maintenance jobs on different days of the month to ensure the cluster is still highly available at all times.  Please make sure you secure any data you write to these directories at the end of your job.&lt;br /&gt;
&lt;br /&gt;
== Faculty Allocations ==&lt;br /&gt;
Each faculty member can be allocated 1TB of lab space upon request.  We can also support grouping these individual allocations together into larger center, lab, or research group allocations if desired by the faculty.  Please [[HelpDesk | contact staff]] to inquire.&lt;br /&gt;
&lt;br /&gt;
This lab space does not have [[Snapshots | snapshots]] by default (but are available if requested), but is [[NightlyBackups | backed up]].&lt;br /&gt;
&lt;br /&gt;
== Project Allocations ==&lt;br /&gt;
Project allocations are available per user for 270 TB days; you can have a 1TB allocation for up to 270 days, a 3TB allocation for 90 days, etc..  A single faculty member can not have more than 20 TB of sponsored account project allocations active at any point. &lt;br /&gt;
&lt;br /&gt;
The minimum storage space you can request (maximum length) is 500GB (540 days) and the minimum allocation length you can request (maximum storage) is 30 days (9TB).&lt;br /&gt;
&lt;br /&gt;
To request an allocation, please [[HelpDesk | contact staff]] with your account sponsor involved in the conversation.  Please include the following details:&lt;br /&gt;
* Project Name (short)&lt;br /&gt;
* Description&lt;br /&gt;
* Size (1TB, 2TB, etc.)&lt;br /&gt;
* Length in days (270 days, 135 days, etc.)&lt;br /&gt;
* Other user(s) that need to access the allocation, if any&lt;br /&gt;
&lt;br /&gt;
These allocations will be available via &amp;lt;code&amp;gt;/fs/nexus-projects/$project_name&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;Renewal is not guaranteed to be available due to limits on the amount of total storage.&#039;&#039;&#039;  Near the end of the allocation period, staff will contact you and ask if you are still in need of the storage allocation.  If you are no longer in need of the storage allocation, you will need to relocate all desired data within 14 days of the end of the allocation period.  Staff will then remove the allocation.&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
We have read-only dataset storage available at &amp;lt;code&amp;gt;/fs/nexus-datasets&amp;lt;/code&amp;gt;.  If there are datasets that you would like to see curated and available, please see [[Datasets | this page]].&lt;br /&gt;
&lt;br /&gt;
We will have a more formal process to approve datasets by Phase 2 of Nexus.&lt;br /&gt;
&lt;br /&gt;
= Migrations =&lt;br /&gt;
If you are a user of an existing cluster that is the process of being folded into Nexus now or in the near future, your cluster-specific migration information will be listed here.&lt;br /&gt;
* [[Nexus/CLIP | CLIP]]&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10748</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus&amp;diff=10748"/>
		<updated>2022-11-09T15:00:02Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Quality of Service (QoS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Nexus is the combined scheduler of resources in UMIACS.  Many of our existing computational clusters that have discrete schedulers will be folding into this scheduler in the future (see [[#Migrations | below]]).  The resource manager for Nexus (as with our other existing computational clusters) is [[SLURM]].  Resources are arranged into partitions where users are able to schedule computational jobs.  Users are arranged into a number of SLURM accounts based on faculty, lab, or center investments.&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
All accounts in UMIACS are sponsored.  If you don&#039;t already have a UMIACS account, please see [[Accounts]] for information on getting one.  You need a full UMIACS account (not a [[Accounts/Collaborator | collaborator account]]) in order to access Nexus.&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
The submission nodes for the Nexus computational resources are determined by department, center, or lab affiliation.  You can log into the [https://intranet.umiacs.umd.edu/directory/cr/ UMIACS Directory CR application] and select the Computational Resource (CR) in the list that has the prefix &amp;lt;code&amp;gt;nexus&amp;lt;/code&amp;gt;. The Hosts section lists your available login nodes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; - UMIACS requires multi-factor authentication through our [[Duo]] instance.  This is completely discrete from both UMD&#039;s and CSD&#039;s Duo instances.  You will need to enroll one or more devices to access resources in UMIACS, and will be prompted to enroll when you log into the Directory application for the first time.&lt;br /&gt;
&lt;br /&gt;
Once you have identified your submission nodes, you can [[SSH]] directly into them.  From there, you are able to submit to the cluster via our [[SLURM]] workload manager.  You need to make sure that your submitted jobs have the correct account, partition, and qos.&lt;br /&gt;
&lt;br /&gt;
== Jobs ==&lt;br /&gt;
[[SLURM]] jobs are submitted by either &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sbatch&amp;lt;/code&amp;gt; depending if you are doing an interactive job or batch job, respectively.  You need to provide the where/how/who to run the job and specify the resources you need to run with.&lt;br /&gt;
&lt;br /&gt;
For the where/how/who, you may be required to specify &amp;lt;code&amp;gt;--partition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--qos&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;--account&amp;lt;/code&amp;gt; (respectively) to be able to adequately submit jobs to the Nexus.&lt;br /&gt;
&lt;br /&gt;
For resources, you may need to specify &amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt; for time, &amp;lt;code&amp;gt;--tasks&amp;lt;/code&amp;gt; for CPUs, &amp;lt;code&amp;gt;--mem&amp;lt;/code&amp;gt; for RAM, and &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt; for GPUs in your submission arguments to meet your requirements.  There are defaults for all four, so if you don&#039;t specify something, you may be scheduled with a very minimal set of time and resources (e.g., by default, NO GPUs are included if you do not specify &amp;lt;code&amp;gt;--gres=gpu&amp;lt;/code&amp;gt;).  For more information about submission flags for GPU resources, see [[SLURM/JobSubmission#Requesting_GPUs]].  You can also can run &amp;lt;code&amp;gt;man srun&amp;lt;/code&amp;gt; on your submission node for a complete list of available submission arguments.&lt;br /&gt;
&lt;br /&gt;
=== Interactive ===&lt;br /&gt;
Once logged into a submission node, you can run simple interactive jobs.  If your session is interrupted from the submission node, the job will be killed.  As such, we encourage use of a terminal multiplexer such as [[Tmux]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --ntasks 4 --mem=2gb --gres=gpu:1 nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-ae5dc1f5-c266-5b9f-58d5-7976e62b3ca1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Batch ===&lt;br /&gt;
Batch jobs are scheduled with a script file with an optional ability to embed job scheduling parameters via variables that are defined by &amp;lt;code&amp;gt;#SBATCH&amp;lt;/code&amp;gt; lines at the top of the file.  You can find some examples in our [[SLURM/JobSubmission]] documentation.&lt;br /&gt;
&lt;br /&gt;
= Partitions = &lt;br /&gt;
The SLURM resource manager uses partitions to act as job queues which can restrict size, time and user limits.  The Nexus (when fully operational) will have a number of different partitions of resources.  Different Centers, Labs, and Faculty will be able to invest in computational resources that will be restricted to approved users through these partitions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by all non-[[ClassAccounts |class account]] users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/Tron]] - Pool of resources available to all UMIACS and CSD faculty and graduate students.&lt;br /&gt;
* Scavenger - [https://slurm.schedmd.com/preempt.html Preemption] partition that supports nodes from multiple other partitions.  More resources are available to schedule simultaneously than in other partitions, however jobs are subject to preemption rules.  You are responsible for ensuring your jobs handle this preemption correctly.  The SLURM scheduler will simply restart a preempted job with the same submission arguments when it is available to run again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by [[ClassAccounts]]:&#039;&#039;&#039;&lt;br /&gt;
* [[ClassAccounts | Class]] - Pool available for UMIACS/CSD class accounts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partitions usable by specific lab/center users:&#039;&#039;&#039;&lt;br /&gt;
* [[Nexus/CLIP]] - CLIP lab pool available for CLIP lab members.&lt;br /&gt;
* [[Nexus/Gamma]] - GAMMA lab pool available for GAMMA lab members.&lt;br /&gt;
* [[Nexus/MC2]] - MC2 lab pool available for MC2 lab members.&lt;br /&gt;
&lt;br /&gt;
= Quality of Service (QoS) =&lt;br /&gt;
SLURM uses a QoS to provide limits on job sizes to users.  Note that you should still try to only allocate the minimum resources for your jobs, as resources that each of your jobs schedules are counted against your [https://slurm.schedmd.com/fair_tree.html FairShare priority] in the future.&lt;br /&gt;
* default - Default QoS. Limited to 4 cores, 32GB RAM, and 1 GPU per job.  The maximum wall time per job is 3 days.&lt;br /&gt;
* medium - Limited to 8 cores, 64GB RAM, and 2 GPUs per job.  The maximum wall time per job is 2 days.&lt;br /&gt;
* high - Limited to 16 cores, 128GB RAM, and 4 GPUs per job.  The maximum wall time per job is 1 day.&lt;br /&gt;
* scavenger - Limited to 64 cores, 256GB RAM, and 8 GPUs per job.  The maximum wall time per job is 2 days.  Only 192 total cores, 768GB total RAM, and 24 total GPUs are permitted simultaneously across all of your jobs running in this QoS.  This QoS is both only available in the scavenger partition and the only QoS available in the scavenger partition. To use this QoS, include &amp;lt;code&amp;gt;--partition=scavenger&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--account=scavenger&amp;lt;/code&amp;gt; in your submission arguments. Do not include any QoS argument other than &amp;lt;code&amp;gt;--qos=scavenger&amp;lt;/code&amp;gt; (optional) or the submission will fail.&lt;br /&gt;
&lt;br /&gt;
You can display these QoSes from the command line using &amp;lt;code&amp;gt;show_qos&amp;lt;/code&amp;gt; command. Other partition, lab-or-group-specific or reserved QoSes may also appear in the listing. The above four QoSes are the ones that everyone can submit to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# show_qos&lt;br /&gt;
            Name     MaxWall MaxJobs                       MaxTRES                     MaxTRESPU                       GrpTRES Priority&lt;br /&gt;
---------------- ----------- ------- ----------------------------- ----------------------------- ----------------------------- --------&lt;br /&gt;
          normal                                                                                                                      0&lt;br /&gt;
       scavenger  2-00:00:00            cpu=64,gres/gpu=8,mem=256G  cpu=192,gres/gpu=24,mem=768G                                      0&lt;br /&gt;
          medium  2-00:00:00              cpu=8,gres/gpu=2,mem=64G                                                                    0&lt;br /&gt;
            high  1-00:00:00            cpu=16,gres/gpu=4,mem=128G                                                                    0&lt;br /&gt;
         default  3-00:00:00              cpu=4,gres/gpu=1,mem=32G                                                                    0&lt;br /&gt;
            tron                                                      cpu=32,gres/gpu=4,mem=256G                                      0&lt;br /&gt;
       huge-long 10-00:00:00            cpu=32,gres/gpu=8,mem=256G                                                                    0&lt;br /&gt;
            clip                                                                                          cpu=334,mem=2829447M        0&lt;br /&gt;
           class                                                      cpu=32,gres/gpu=4,mem=256G                                      0&lt;br /&gt;
           gamma                                                                                          cpu=174,mem=1414709M        0&lt;br /&gt;
             mc2                                                                                          cpu=302,mem=1799956M        0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that in the default non-preemption partition (&amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt;), you will be restricted to 32 total cores, 256GB total RAM, and 4 total GPUs at once across all jobs you have running in the QoSes allowed by that partition.  This is codified by the reserved QoS also named &amp;lt;code&amp;gt;tron&amp;lt;/code&amp;gt; in the output above. Lab/group-specific partitions may also have similar restrictions across all users in that lab/group that are using the partition (codified by &amp;lt;code&amp;gt;GrpTRES&amp;lt;/code&amp;gt; in the output above for the QoS name that matches the lab/group partition).&lt;br /&gt;
&lt;br /&gt;
To find out what accounts and partitions you have access to, use the &amp;lt;code&amp;gt;show_assoc&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
All storage available in Nexus is currently [[NFS]] based.  We will be introducing some changes for Phase 2 to support high performance GPUDirect Storage (GDS).  These storage allocation procedures will be revised and approved by the launch of Phase 2 by a joint UMIACS and CSD faculty committee.&lt;br /&gt;
&lt;br /&gt;
== Home Directories ==&lt;br /&gt;
Home directories in the Nexus computational infrastructure are available from the Institute&#039;s [[NFShomes]] as &amp;lt;code&amp;gt;/nfshomes/USERNAME&amp;lt;/code&amp;gt; where USERNAME is your username.  These home directories have very limited storage (20GB, cannot be increased) and are intended for your personal files, configuration and source code.  Your home directory is &#039;&#039;&#039;not&#039;&#039;&#039; intended for data sets or other large scale data holdings.  Users are encouraged to utilize our [[GitLab]] infrastructure to host your code repositories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: To check your quota on this directory you will need to use the &amp;lt;code&amp;gt;quota -s&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
Your home directory data is fully protected and has both [[Snapshots | snapshots]] and is [[NightlyBackups | backed up nightly]].&lt;br /&gt;
&lt;br /&gt;
Other standalone compute clusters have begun to fold into partitions in Nexus.  The corresponding home directories used by these clusters (if not &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt;) will be gradually phased out in favor of the &amp;lt;code&amp;gt;/nfshomes&amp;lt;/code&amp;gt; home directories.&lt;br /&gt;
&lt;br /&gt;
== Scratch Directories ==&lt;br /&gt;
Scratch data has no data protection including no snapshots and the data is not backed up. There are two types of scratch directories in the Nexus compute infrastructure:&lt;br /&gt;
* Network scratch directories&lt;br /&gt;
* Local scratch directories&lt;br /&gt;
&lt;br /&gt;
Please note that [[ClassAccounts | class accounts]] do not have network scratch directories.&lt;br /&gt;
&lt;br /&gt;
=== Network Scratch Directories ===&lt;br /&gt;
You are allocated 200GB of scratch space via NFS from &amp;lt;code&amp;gt;/fs/nexus-scratch/$username&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;It is not backed up or protected in any way.&#039;&#039;&#039;  This directory is &#039;&#039;&#039;automounted&#039;&#039;&#039; so you will need to &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the directory or request/specify a fully qualified file path to access this.&lt;br /&gt;
&lt;br /&gt;
You may request a permanent increase of up to 400GB total space without any faculty approval by [[HelpDesk | contacting staff]].  If you need space beyond 400GB, you will need faculty approval and/or a project directory.&lt;br /&gt;
&lt;br /&gt;
This file system is available on all submission, data management, and computational nodes within the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Local Scratch Directories ===&lt;br /&gt;
Each computational node that you can schedule compute jobs on also has one or more local scratch directories.  These are always named &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/scratch1&amp;lt;/code&amp;gt;, etc.  These are almost always more performant than any other storage available to the job.  However, you must stage their data within the confines of your job and stage the data out before the end of your job.&lt;br /&gt;
&lt;br /&gt;
These local scratch directories have a tmpwatch job which will &#039;&#039;&#039;delete unaccessed data after 90 days&#039;&#039;&#039;, scheduled via maintenance jobs to run once a month at 1am.  Different nodes will run the maintenance jobs on different days of the month to ensure the cluster is still highly available at all times.  Please make sure you secure any data you write to these directories at the end of your job.&lt;br /&gt;
&lt;br /&gt;
== Faculty Allocations ==&lt;br /&gt;
Each faculty member can be allocated 1TB of lab space upon request.  We can also support grouping these individual allocations together into larger center, lab, or research group allocations if desired by the faculty.  Please [[HelpDesk | contact staff]] to inquire.&lt;br /&gt;
&lt;br /&gt;
This lab space does not have [[Snapshots | snapshots]] by default (but are available if requested), but is [[NightlyBackups | backed up]].&lt;br /&gt;
&lt;br /&gt;
== Project Allocations ==&lt;br /&gt;
Project allocations are available per user for 270 TB days; you can have a 1TB allocation for up to 270 days, a 3TB allocation for 90 days, etc..  A single faculty member can not have more than 20 TB of sponsored account project allocations active at any point. &lt;br /&gt;
&lt;br /&gt;
The minimum storage space you can request (maximum length) is 500GB (540 days) and the minimum allocation length you can request (maximum storage) is 30 days (9TB).&lt;br /&gt;
&lt;br /&gt;
To request an allocation, please [[HelpDesk | contact staff]] with your account sponsor involved in the conversation.  Please include the following details:&lt;br /&gt;
* Project Name (short)&lt;br /&gt;
* Description&lt;br /&gt;
* Size (1TB, 2TB, etc.)&lt;br /&gt;
* Length in days (270 days, 135 days, etc.)&lt;br /&gt;
* Other user(s) that need to access the allocation, if any&lt;br /&gt;
&lt;br /&gt;
These allocations will be available via &amp;lt;code&amp;gt;/fs/nexus-projects/$project_name&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;Renewal is not guaranteed to be available due to limits on the amount of total storage.&#039;&#039;&#039;  Near the end of the allocation period, staff will contact you and ask if you are still in need of the storage allocation.  If you are no longer in need of the storage allocation, you will need to relocate all desired data within 14 days of the end of the allocation period.  Staff will then remove the allocation.&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
We have read-only dataset storage available at &amp;lt;code&amp;gt;/fs/nexus-datasets&amp;lt;/code&amp;gt;.  If there are datasets that you would like to see curated and available, please see [[Datasets | this page]].&lt;br /&gt;
&lt;br /&gt;
We will have a more formal process to approve datasets by Phase 2 of Nexus.&lt;br /&gt;
&lt;br /&gt;
= Migrations =&lt;br /&gt;
If you are a user of an existing cluster that is the process of being folded into Nexus now or in the near future, your cluster-specific migration information will be listed here.&lt;br /&gt;
* [[Nexus/CLIP | CLIP]]&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10733</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10733"/>
		<updated>2022-11-01T16:30:45Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Nexus Containers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.  We are using &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt; but you can substitute any large enough network scratch or project directory you would like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/$USER&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-8e040d17-402e-cc86-4e83-eb2b1d501f1e)&lt;br /&gt;
GPU 1: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-d681a21a-8cdd-e624-6bf8-5b0234584ba2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Nexus Containers==&lt;br /&gt;
In our [[Nexus]] environment we have some example containers based on our [https://gitlab.umiacs.umd.edu/derek/pytorch_docker pytorch_docker] project.  These can be found in &amp;lt;code&amp;gt;/fs/nexus-containers/pytorch&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can just run one of the example images by doing the following (you should have already allocated a interactive job with a GPU in [[Nexus]]).  It will use the default [https://gitlab.umiacs.umd.edu/derek/pytorch_docker/-/blob/master/tensor.py script] found at &amp;lt;code&amp;gt;/srv/tensor.py&amp;lt;/code&amp;gt; within the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname &amp;amp;&amp;amp; nvidia-smi -L&lt;br /&gt;
tron38.umiacs.umd.edu&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-4a0a5644-9fc8-84b4-5d22-65d45ca36506)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv /fs/nexus-containers/pytorch/pytorch_1.13.0+cu117.sif&lt;br /&gt;
99 984.5538940429688&lt;br /&gt;
199 654.1710815429688&lt;br /&gt;
299 435.662353515625&lt;br /&gt;
399 291.1429138183594&lt;br /&gt;
499 195.5575714111328&lt;br /&gt;
599 132.3363037109375&lt;br /&gt;
699 90.5206069946289&lt;br /&gt;
799 62.86213684082031&lt;br /&gt;
899 44.56754684448242&lt;br /&gt;
999 32.466392517089844&lt;br /&gt;
1099 24.461835861206055&lt;br /&gt;
1199 19.166893005371094&lt;br /&gt;
1299 15.6642427444458&lt;br /&gt;
1399 13.347112655639648&lt;br /&gt;
1499 11.814264297485352&lt;br /&gt;
1599 10.800163269042969&lt;br /&gt;
1699 10.129261016845703&lt;br /&gt;
1799 9.685370445251465&lt;br /&gt;
1899 9.391674041748047&lt;br /&gt;
1999 9.19735336303711&lt;br /&gt;
Result: y = 0.0022362577728927135 + 0.837898313999176 x + -0.0003857926349155605 x^2 + -0.09065020829439163 x^3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get data into the container you need to pass some [https://apptainer.org/docs/user/main/bind_paths_and_mounts.html bind mounts] (your home directory is done by default).  In this example we will exec an interactive session binding our [[Nexus]] scratch directory which allows us to specify the command we want to run inside the container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apptainer exec --nv --bind /fs/nexus-scratch/derek:/fs/nexus-scratch/derek /fs/nexus-containers/pytorch/pytorch_1.13.0+cu117.sif bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now write/run your own pytorch python code interactively within the container or just make a python script that you can call directly from the apptainer exec command for batch processing.&lt;br /&gt;
&lt;br /&gt;
==Docker Workflow Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/pytorch_docker pytorch_docker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to your repository (this can be any docker registry)&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull pytorch_docker.sif docker://registry.umiacs.umd.edu/derek/pytorch_docker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob 85386706b020 done&lt;br /&gt;
...&lt;br /&gt;
2022/10/14 10:58:36  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2022/10/14 10:58:43  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer exec --nv pytorch_docker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.3273, 0.7174, 0.3587],&lt;br /&gt;
        [0.2250, 0.3896, 0.4136],&lt;br /&gt;
        [0.3626, 0.0383, 0.6274],&lt;br /&gt;
        [0.6241, 0.8079, 0.2950],&lt;br /&gt;
        [0.0804, 0.9705, 0.0030]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10732</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10732"/>
		<updated>2022-11-01T16:30:32Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.  We are using &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt; but you can substitute any large enough network scratch or project directory you would like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/$USER&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-8e040d17-402e-cc86-4e83-eb2b1d501f1e)&lt;br /&gt;
GPU 1: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-d681a21a-8cdd-e624-6bf8-5b0234584ba2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Nexus Containers==&lt;br /&gt;
In our [[Nexus]] environment we have some example containers based on our [https://gitlab.umiacs.umd.edu/derek/pytorch_docker pytorch_docker] project.  These can be found in &amp;lt;code&amp;gt;/fs/nexus-containers/pytorch&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can just run one of the example images by doing the following (you should have already allocated a interactive job with a GPU in [[Nexus]]).  It will use the default [https://gitlab.umiacs.umd.edu/derek/pytorch_docker/-/blob/master/tensor.py script] found at &amp;lt;code&amp;gt;/srv/tensor.py&amp;lt;/code&amp;gt; within the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname &amp;amp;&amp;amp; nvidia-smi -L&lt;br /&gt;
tron38.umiacs.umd.edu&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-4a0a5644-9fc8-84b4-5d22-65d45ca36506)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv /fs/nexus-containers/pytorch/pytorch_1.13.0+cu117.sif&lt;br /&gt;
99 984.5538940429688&lt;br /&gt;
199 654.1710815429688&lt;br /&gt;
299 435.662353515625&lt;br /&gt;
399 291.1429138183594&lt;br /&gt;
499 195.5575714111328&lt;br /&gt;
599 132.3363037109375&lt;br /&gt;
699 90.5206069946289&lt;br /&gt;
799 62.86213684082031&lt;br /&gt;
899 44.56754684448242&lt;br /&gt;
999 32.466392517089844&lt;br /&gt;
1099 24.461835861206055&lt;br /&gt;
1199 19.166893005371094&lt;br /&gt;
1299 15.6642427444458&lt;br /&gt;
1399 13.347112655639648&lt;br /&gt;
1499 11.814264297485352&lt;br /&gt;
1599 10.800163269042969&lt;br /&gt;
1699 10.129261016845703&lt;br /&gt;
1799 9.685370445251465&lt;br /&gt;
1899 9.391674041748047&lt;br /&gt;
1999 9.19735336303711&lt;br /&gt;
Result: y = 0.0022362577728927135 + 0.837898313999176 x + -0.0003857926349155605 x^2 + -0.09065020829439163 x^3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get data into the container you need to pass some [https://apptainer.org/docs/user/main/bind_paths_and_mounts.html bind mounts] (your home directory is done by default).  In this example we will exec an interactive session binding our [[Nexus]] scratch directory which allows us to specify the command we want to run inside the container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apptainer exec --nv --bind /fs/nexus-scratch/derek:/fs/nexus-scratch/derek /fs/nexus-containers/pytorch/pytorch_1.13.0+cu117.sif bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now write/run your own pytorch python code interactively within the container or just make a python script that you can call directly from the apptainer exec command for batch processing. &lt;br /&gt;
 &lt;br /&gt;
==Docker Workflow Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/pytorch_docker pytorch_docker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to your repository (this can be any docker registry)&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull pytorch_docker.sif docker://registry.umiacs.umd.edu/derek/pytorch_docker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob 85386706b020 done&lt;br /&gt;
...&lt;br /&gt;
2022/10/14 10:58:36  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2022/10/14 10:58:43  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer exec --nv pytorch_docker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.3273, 0.7174, 0.3587],&lt;br /&gt;
        [0.2250, 0.3896, 0.4136],&lt;br /&gt;
        [0.3626, 0.0383, 0.6274],&lt;br /&gt;
        [0.6241, 0.8079, 0.2950],&lt;br /&gt;
        [0.0804, 0.9705, 0.0030]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Singularity&amp;diff=10691</id>
		<title>Singularity</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Singularity&amp;diff=10691"/>
		<updated>2022-10-14T16:57:53Z</updated>

		<summary type="html">&lt;p&gt;Derek: Redirected page to Apptainer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Apptainer]]&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10690</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10690"/>
		<updated>2022-10-14T15:20:29Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.  We are using &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt; but you can substitute any large enough network scratch or project directory you would like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/$USER&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-8e040d17-402e-cc86-4e83-eb2b1d501f1e)&lt;br /&gt;
GPU 1: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-d681a21a-8cdd-e624-6bf8-5b0234584ba2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob 85386706b020 done&lt;br /&gt;
Copying blob 45d437916d57 done&lt;br /&gt;
Copying blob c1bbdc448b72 done&lt;br /&gt;
Copying blob d8f1569ddae6 done&lt;br /&gt;
Copying blob 7ddbc47eeb70 done&lt;br /&gt;
Copying blob 8c3b70e39044 done&lt;br /&gt;
Copying blob ee9b457b77d0 done&lt;br /&gt;
Copying blob be4f3343ecd3 done&lt;br /&gt;
Copying blob 30b4effda4fd done&lt;br /&gt;
Copying blob b6f46848806c done&lt;br /&gt;
Copying blob 44845dc671f7 done&lt;br /&gt;
Copying config 1b2e5b7b99 done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:57:04  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2022/10/14 10:57:06  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2022/10/14 10:57:06  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2022/10/14 10:57:06  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2022/10/14 10:57:06  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2022/10/14 10:57:06  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2022/10/14 10:57:07  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2022/10/14 10:57:07  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2022/10/14 10:57:44  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2022/10/14 10:58:36  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2022/10/14 10:58:43  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.9762, 0.9717, 0.1510],&lt;br /&gt;
        [0.0995, 0.8492, 0.9194],&lt;br /&gt;
        [0.2057, 0.7201, 0.1342],&lt;br /&gt;
        [0.4137, 0.8130, 0.6911],&lt;br /&gt;
        [0.7236, 0.1144, 0.0854]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10689</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10689"/>
		<updated>2022-10-14T14:40:52Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.  We are using &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt; but you can substitute any large enough network scratch or project directory you would like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/$USER&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-8e040d17-402e-cc86-4e83-eb2b1d501f1e)&lt;br /&gt;
GPU 1: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-d681a21a-8cdd-e624-6bf8-5b0234584ba2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10688</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10688"/>
		<updated>2022-10-14T14:39:14Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.  We are using &amp;lt;code&amp;gt;/scratch0&amp;lt;/code&amp;gt; but you can substitute any large enough network scratch or project directory you would like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/$USER&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: GeForce GTX 1080 Ti (UUID: GPU-9ee980c3-8746-08dd-8e14-82fbaf88367e)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10687</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10687"/>
		<updated>2022-10-14T14:38:18Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with &amp;lt;code&amp;gt;singularity&amp;lt;/code&amp;gt; however should should start migrating to using the &amp;lt;code&amp;gt;apptainer&amp;lt;/code&amp;gt; command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/username&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: GeForce GTX 1080 Ti (UUID: GPU-9ee980c3-8746-08dd-8e14-82fbaf88367e)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10686</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10686"/>
		<updated>2022-10-14T14:37:52Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with singularity however should should start migrating to using the apptainer command.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/username&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: GeForce GTX 1080 Ti (UUID: GPU-9ee980c3-8746-08dd-8e14-82fbaf88367e)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10685</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10685"/>
		<updated>2022-10-14T14:37:29Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Note&#039;&#039;&#039; Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with singularity however should should start migrating to using the apptainer command.  All other functionality is the same other than the command name&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/username&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: GeForce GTX 1080 Ti (UUID: GPU-9ee980c3-8746-08dd-8e14-82fbaf88367e)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10684</id>
		<title>Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Apptainer&amp;diff=10684"/>
		<updated>2022-10-14T14:37:15Z</updated>

		<summary type="html">&lt;p&gt;Derek: Created page with &amp;quot;***Note*** Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with singularity however should should start migrating to using the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;***Note*** Singularity was rebranded as Apptainer.  You should still be able to run commands on the system with singularity however should should start migrating to using the apptainer command.  All other functionality is the same other than the command name&lt;br /&gt;
&lt;br /&gt;
[https://apptainer.org Apptainer] is a container platform that doesn&#039;t elevate the privileges of a user running the container.  This is important as UMIACS runs many multi-tenant hosts and doesn&#039;t provide administrative control to users on them.&lt;br /&gt;
&lt;br /&gt;
You can find out what the current version is that we provide by running the &#039;&#039;&#039;apptainer --version&#039;&#039;&#039; command.  If this instead says &amp;lt;code&amp;gt;apptainer: command not found&amp;lt;/code&amp;gt; please contact staff and we will ensure that the software is available on the host you are looking for it on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apptainer --version&lt;br /&gt;
apptainer version 1.1.0-1.el7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apptainer can run a variety of images including its own format and [https://apptainer.org/docs/user/1.1/docker_and_oci.html Docker images].  To create images, you need to have administrative rights. Therefore, you will need to do this on a host that you have administrative access to (laptop or personal desktop) rather than a UMIACS-supported host.&lt;br /&gt;
&lt;br /&gt;
If you are going to pull large images, you may run out of space in your home directory. We suggest you run the following commands to setup a alternate cache directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export WORKDIR=/scratch0/username&lt;br /&gt;
export APPTAINER_CACHEDIR=${WORKDIR}/.cache&lt;br /&gt;
mkdir -p $APPTAINER_CACHEDIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We do suggest you pull images down into an intermediate file (&#039;&#039;&#039;SIF&#039;&#039;&#039; file) as you then do not have to worry about re-caching the image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer pull cuda10.2.sif docker://nvidia/cuda:10.2-devel&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob d5d706ce7b29 done&lt;br /&gt;
Copying blob b4dc78aeafca done&lt;br /&gt;
Copying blob 24a22c1b7260 done&lt;br /&gt;
Copying blob 8dea37be3176 done&lt;br /&gt;
Copying blob 25fa05cd42bd done&lt;br /&gt;
Copying blob a57130ec8de1 done&lt;br /&gt;
Copying blob 880a66924cf5 done&lt;br /&gt;
Copying config db554d658b done&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2022/10/14 10:31:17  info unpack layer: sha256:25fa05cd42bd8fabb25d2a6f3f8c9f7ab34637903d00fd2ed1c1d0fa980427dd&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:24a22c1b72605a4dbcec13b743ef60a6cbb43185fe46fd8a35941f9af7c11153&lt;br /&gt;
2022/10/14 10:31:19  info unpack layer: sha256:8dea37be3176a88fae41c265562d5fb438d9281c356dcb4edeaa51451dbdfdb2&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:b4dc78aeafca6321025300e9d3050c5ba3fb2ac743ae547c6e1efa3f9284ce0b&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:a57130ec8de1e44163e965620d5aed2abe6cddf48b48272964bfd8bca101df38&lt;br /&gt;
2022/10/14 10:31:20  info unpack layer: sha256:d5d706ce7b293ffb369d3bf0e3f58f959977903b82eb26433fe58645f79b778b&lt;br /&gt;
2022/10/14 10:31:49  info unpack layer: sha256:880a66924cf5e11df601a4f531f3741c6867a3e05238bc9b7cebb2a68d479204&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer inspect cuda10.2.sif&lt;br /&gt;
maintainer: NVIDIA CORPORATION &amp;lt;cudatools@nvidia.com&amp;gt;&lt;br /&gt;
org.label-schema.build-arch: amd64&lt;br /&gt;
org.label-schema.build-date: Friday_14_October_2022_10:32:42_EDT&lt;br /&gt;
org.label-schema.schema-version: 1.0&lt;br /&gt;
org.label-schema.usage.apptainer.version: 1.1.0-1.el7&lt;br /&gt;
org.label-schema.usage.singularity.deffile.bootstrap: docker&lt;br /&gt;
org.label-schema.usage.singularity.deffile.from: nvidia/cuda:10.2-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can run the local image with the &#039;&#039;&#039;run&#039;&#039;&#039; command or start a shell with the &#039;&#039;&#039;shell&#039;&#039;&#039; command.  Please note that if you are in an environment with GPUs and you want to access them inside the container you need to specify the &#039;&#039;&#039;--nv&#039;&#039;&#039; flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apptainer run --nv cuda10.2.sif nvidia-smi -L&lt;br /&gt;
GPU 0: GeForce GTX 1080 Ti (UUID: GPU-9ee980c3-8746-08dd-8e14-82fbaf88367e)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
We have a [https://gitlab.umiacs.umd.edu/derek/gpudocker gpudocker] example workflow using our [[GitLab]] as a Docker registry.  You can clone the repository and further customize this to your needs. The workflow is:&lt;br /&gt;
# Run Docker on a laptop or personal desktop on to create the image.&lt;br /&gt;
# Tag the image and and push it to the repository.&lt;br /&gt;
# Pull the image down onto one of our workstations/clusters and run it with your data. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity pull gpudocker.sif docker://registry.umiacs.umd.edu/derek/gpudocker&lt;br /&gt;
INFO:    Converting OCI blobs to SIF format&lt;br /&gt;
INFO:    Starting build...&lt;br /&gt;
Getting image source signatures&lt;br /&gt;
Copying blob sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
 25.45 MiB / 25.45 MiB [====================================================] 2s&lt;br /&gt;
Copying blob sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
 34.53 KiB / 34.53 KiB [====================================================] 0s&lt;br /&gt;
Copying blob sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
 845 B / 845 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
 162 B / 162 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
 6.88 MiB / 6.88 MiB [======================================================] 0s&lt;br /&gt;
Copying blob sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
 8.05 MiB / 8.05 MiB [======================================================] 1s&lt;br /&gt;
Copying blob sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
 184 B / 184 B [============================================================] 0s&lt;br /&gt;
Copying blob sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
 656.83 MiB / 656.83 MiB [=================================================] 28s&lt;br /&gt;
Copying blob sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
 782.81 MiB / 782.81 MiB [=================================================] 37s&lt;br /&gt;
Copying blob sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
 100.58 MiB / 100.58 MiB [==================================================] 5s&lt;br /&gt;
Copying blob sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
 1.47 GiB / 1.47 GiB [====================================================] 1m4s&lt;br /&gt;
Copying config sha256:1b2e5b7b99af9d797ef6fbd091a6a2c6a30e519e31a74f5e9cacb4c8c462d6ed&lt;br /&gt;
 7.56 KiB / 7.56 KiB [======================================================] 0s&lt;br /&gt;
Writing manifest to image destination&lt;br /&gt;
Storing signatures&lt;br /&gt;
2020/04/14 12:21:17  info unpack layer: sha256:7ddbc47eeb70dc7f08e410a6667948b87ff3883024eb41478b44ef9a81bf400c&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:c1bbdc448b7263673926b8fe2e88491e5083a8b4b06ddfabf311f2fc5f27e2ff&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:8c3b70e3904492c753652606df4726430426f42ea56e06ea924d6fea7ae162a1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:45d437916d5781043432f2d72608049dcf74ddbd27daa01a25fa63c8f1b9adc4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:d8f1569ddae616589c5a2dabf668fadd250ee9d89253ef16f0cb0c8a9459b322&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:85386706b02069c58ffaea9de66c360f9d59890e56f58485d05c1a532ca30db1&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:ee9b457b77d047ff322858e2de025e266ff5908aec569560e77e2e4451fc23f4&lt;br /&gt;
2020/04/14 12:21:18  info unpack layer: sha256:be4f3343ecd31ebf7ec8809f61b1d36c2c2f98fc4e63582401d9108575bc443a&lt;br /&gt;
2020/04/14 12:21:35  info unpack layer: sha256:30b4effda4fdab95ec4eba8873f86e7574c2edddf4dc5df8212e3eda1545aafa&lt;br /&gt;
2020/04/14 12:21:55  info unpack layer: sha256:b6f46848806c8750a68edc4463bf146ed6c3c4af18f5d3f23281dcdfb1c65055&lt;br /&gt;
2020/04/14 12:21:58  info unpack layer: sha256:44845dc671f759820baac0376198141ca683f554bb16a177a3cfe262c9e368ff&lt;br /&gt;
INFO:    Creating SIF file...&lt;br /&gt;
INFO:    Build complete: gpudocker.sif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity run --nv gpudocker.sif python3 -c &#039;from __future__ import print_function; import torch; print(torch.cuda.current_device()); x = torch.rand(5, 3); print(x)&#039;&lt;br /&gt;
0&lt;br /&gt;
tensor([[0.5299, 0.9827, 0.7858],&lt;br /&gt;
        [0.2044, 0.6783, 0.2606],&lt;br /&gt;
        [0.0538, 0.4272, 0.9361],&lt;br /&gt;
        [0.1980, 0.2654, 0.4160],&lt;br /&gt;
        [0.1680, 0.8407, 0.0509]])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10636</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10636"/>
		<updated>2022-08-25T20:45:44Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please contact your TA to have it renewed.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you see the following error in your SSH client you have not yet enrolled/registered in Duo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Access is not allowed because you are not enrolled in Duo. Please contact your organization&#039;s IT help desk.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and your chosen password:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;high&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Here is a basic example to schedule a interactive job running bash with a single GPU in the partition &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; with the account &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; running with the QoS of &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --partition=class --account=class --qos=default --gres=gpu:1 bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash-4.4$ hostname&lt;br /&gt;
tron14.umiacs.umd.edu&lt;br /&gt;
bash-4.4$ nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-55f2d3b7-9162-8b02-50de-476a012c626c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Available Nodes===&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                             STATE      PARTITION&lt;br /&gt;
tron06               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron07               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron08               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron09               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron10               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron11               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron12               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron13               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron14               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron15               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron16               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron17               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron18               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron19               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron20               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron21               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron22               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron23               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron24               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron25               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron26               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron27               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron28               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron29               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron30               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron31               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron32               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron33               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron34               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron35               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron36               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron37               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron38               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron39               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron40               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron41               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron42               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron43               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron44               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron45               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node tron27&lt;br /&gt;
NodeName=tron27 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=16 CPULoad=0.00&lt;br /&gt;
   AvailableFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   ActiveFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   Gres=gpu:rtxa4000:4&lt;br /&gt;
   NodeAddr=tron27 NodeHostName=tron27 Version=21.08.8-2&lt;br /&gt;
   OS=Linux 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Mon Jul 18 11:14:02 EDT 2022&lt;br /&gt;
   RealMemory=128521 AllocMem=0 FreeMem=125650 Sockets=1 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=10 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger,tron&lt;br /&gt;
   BootTime=2022-08-18T17:34:44 SlurmdStartTime=2022-08-19T13:10:47&lt;br /&gt;
   LastBusyTime=2022-08-22T11:20:18&lt;br /&gt;
   CfgTRES=cpu=16,mem=128521M,billing=173,gres/gpu=4,gres/gpu:rtxa4000=4&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10635</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10635"/>
		<updated>2022-08-25T20:44:39Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Management of Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  Please refer to the [[ClassAccounts]] document for public facing information.&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu] to create a ticket.  Please list or cc your TA(s) and what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
** Note that class accounts also need to setup [[Duo]] multi-factor authentication before getting access to the cluster.  They may see a message when trying to SSH &amp;lt;code&amp;gt;Access is not allowed because you are not enrolled in Duo. Please contact your organization&#039;s IT help desk.&amp;lt;/code&amp;gt;.  They will need to follow the instructions in [[ClassAccounts#Registering_for_Duo]].&lt;br /&gt;
** If users do not provide a phone number when they redeem their account we can not reset their password automatically.  In this case the TA will need make a request to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu] and will advise on the steps.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10634</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10634"/>
		<updated>2022-08-25T20:41:37Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Management of Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  Please refer to the [[ClassAccounts]] document for public facing information.&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu] to create a ticket.  Please list or cc your TA(s) and what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
** Note that class accounts also need to setup [[Duo]] multi-factor authentication.&lt;br /&gt;
** If users do not provide a phone number when they redeem their account we can not reset their password automatically.  In this case the TA will need make a request to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu] and will advise on the steps.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10633</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10633"/>
		<updated>2022-08-25T20:37:50Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Request New Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  Please refer to the [[ClassAccounts]] document for public facing information.&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu] to create a ticket.  Please list or cc your TA(s) and what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10632</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10632"/>
		<updated>2022-08-25T20:37:06Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  Please refer to the [[ClassAccounts]] document for public facing information.&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s) and what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10631</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10631"/>
		<updated>2022-08-25T20:35:55Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Request New Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  The user facing documentation on how to use your &lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s) and what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10630</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10630"/>
		<updated>2022-08-25T20:35:29Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].  The user facing documentation on how to use your &lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
Once the class is created Faculty/TAs may want to create class accounts for themselves (which is allowed).  This ensures you see the steps that other students will see when getting their account(s) and give you the ability to test and manage any local resources for the class.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10629</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10629"/>
		<updated>2022-08-25T20:32:55Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;br /&gt;
&lt;br /&gt;
=Deletion of Class=&lt;br /&gt;
We will notify and clean up all class account holder(s) tri-annually after the semester.&lt;br /&gt;
&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10628</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10628"/>
		<updated>2022-08-25T20:29:57Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Request New Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
Please include in your request any special storage allocation(s) you may need.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10627</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10627"/>
		<updated>2022-08-25T20:28:05Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Accounts/Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10626</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10626"/>
		<updated>2022-08-25T20:27:40Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [https://intranet.umiacs.umd.edu/requests/accounts/class/ Requests] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10625</id>
		<title>ClassAccounts/Manage</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts/Manage&amp;diff=10625"/>
		<updated>2022-08-25T20:26:31Z</updated>

		<summary type="html">&lt;p&gt;Derek: Created page with &amp;quot;Class Accounts are provided through our Nexus infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Class Accounts are provided through our [[Nexus]] infrastructure with a specific partition of nodes.  Each class will need to have the faculty member or TA(s) as the point of contacts for the class.  All students within the class will need to raise issues or questions through these points of contact who can relay or request support through our [[HelpDesk]].&lt;br /&gt;
&lt;br /&gt;
=Request New Class=&lt;br /&gt;
&lt;br /&gt;
All classes will need to be requested the faculty teaching by sending email to [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].  Please list or cc your TA(s), what course you are teaching.  UMIACS staff will confirm the course through UMD Testudo and create the class within our [[Requests]] application.  We will associate the faculty member and TA(s) to be able to manage the class through this application as long as they have a UMIACS account.  If they don&#039;t we can advise through this ticket the faculty member how to create and sponsor a [[Collaborator]] account in UMIACS.&lt;br /&gt;
&lt;br /&gt;
=Management of Users=&lt;br /&gt;
Once the class is created users go through the following lifecycle.&lt;br /&gt;
&lt;br /&gt;
* Faculty/TAs will create requests in our [[Requests]] application with the class dashboard.  This is done by entering a form with one or more email addresses.  We only support creating accounts for @umd.edu and @terpmail.umd.edu addresses.&lt;br /&gt;
* Once a request for a student has been created from this email address they will receive an email with a URL including a token that is only good for 7 days.  They would click this URL which will take them to a page to redeem their account by entering some information about themselves and select a password for their account. &lt;br /&gt;
** If the student does not redeem their account the Faculty/TAs can go into their class account request in the app and renew their token which will invalidate the old token and issue a new token then send a new email for account redemption.&lt;br /&gt;
* Accounts that are redeemed will show up as pending in the Accounts Installed section of the class dashboard.  UMIACS Technical Staff will install class accounts that have been redeemed once a day (business day).  Once the account(s) are installed they are listed as installed and the student will receive an email with information on getting started with their class accounts.&lt;br /&gt;
* Faculty/TAs will need to communicate any special instructions or information with their students on how to use the computational resources.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/Apptainer&amp;diff=10602</id>
		<title>Nexus/Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/Apptainer&amp;diff=10602"/>
		<updated>2022-08-24T14:15:05Z</updated>

		<summary type="html">&lt;p&gt;Derek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Running containers in a multi-tenant environment has a number of security considerations.  While Docker is popular the most typical setups require a daemon that has administrative level privileges that makes it not tenable.  There has been a lot of work in this area but ultimately for HPC environments Singularity or as it is now known Apptainer is a solution that enables the capabilities of container workloads in multi-tenant environments.&lt;br /&gt;
&lt;br /&gt;
The one consideration is that to create an image you need to have administrative rights on the machine.  For this reason you can&#039;t directly create Apptainer images on our supported systems.  You can download or pull images from other repositories including the Docker repositories.&lt;br /&gt;
&lt;br /&gt;
=Bind Mounts=&lt;br /&gt;
Apptainer containers will not automatically mount data from the outside operating system other than your home directory.  Users need to manually bind mounts for other file paths.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--bind /fs/nexus-scratch/derek/project1:/mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this scenario we are binding the directory outside the container &amp;lt;code&amp;gt;/fs/nexus-scratch/derek/project1&amp;lt;/code&amp;gt; to exist in the path &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; inside the container.&lt;br /&gt;
&lt;br /&gt;
=Shared Containers=&lt;br /&gt;
&lt;br /&gt;
Portable images called Singularity Image Format or .sif files can be copied and shared.  Nexus maintains some shared containers in &amp;lt;code&amp;gt;/fs/nexus-containers&amp;lt;/code&amp;gt;.  These are arranged by the application(s) that are installed.&lt;br /&gt;
&lt;br /&gt;
=GPUs=&lt;br /&gt;
&lt;br /&gt;
Nvidia has a very specific driver and libraries that are required to run CUDA programs.  To ensure that all appropriate devices are created inside the container and that these libraries are made available in the container users need to use the &amp;lt;code&amp;gt;--nv&amp;lt;/code&amp;gt; flag when instantiating their container(s).&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
&lt;br /&gt;
If you have the following example file in &amp;lt;code&amp;gt;/fs/nexus-scratch/derek/singularity&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
import torch;&lt;br /&gt;
&lt;br /&gt;
print(f&#039;Torch cuda is available: {torch.cuda.is_available()}&#039;)&lt;br /&gt;
print(f&#039;Torch cuda number of devices: {torch.cuda.device_count()}&#039;)&lt;br /&gt;
for g in range(torch.cuda.device_count()):&lt;br /&gt;
    print(f&#039;Torch cuda device {g}: {torch.cuda.get_device_name(0)}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ singularity exec --bind /fs/nexus-scratch/derek/singularity:/mnt --nv /fs/nexus-containers/pytorch/pytorch_1.10.2+cu113.sif python3 /mnt/test.py&lt;br /&gt;
Torch cuda is available: True&lt;br /&gt;
Torch cuda number of devices: 1&lt;br /&gt;
Torch cuda device 0: NVIDIA RTX A4000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/Apptainer&amp;diff=10601</id>
		<title>Nexus/Apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=Nexus/Apptainer&amp;diff=10601"/>
		<updated>2022-08-24T14:09:01Z</updated>

		<summary type="html">&lt;p&gt;Derek: Created page with &amp;quot;Running containers in a multi-tenant environment has a number of security considerations.  While Docker is popular the most typical setups require a daemon that has administra...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Running containers in a multi-tenant environment has a number of security considerations.  While Docker is popular the most typical setups require a daemon that has administrative level privileges that makes it not tenable.  There has been a lot of work in this area but ultimately for HPC environments Singularity or as it is now known Apptainer is a solution that enables the capabilities of container workloads in multi-tenant environments.&lt;br /&gt;
&lt;br /&gt;
The one consideration is that to create an image you need to have administrative rights on the machine.  For this reason you can&#039;t directly create Apptainer images on our supported systems.  You can download or pull images from other repositories including the Docker repositories.&lt;br /&gt;
&lt;br /&gt;
=Bind Mounts=&lt;br /&gt;
Apptainer containers will not automatically mount data from the outside operating system other than your home directory.  Users need to manually bind mounts for other file paths.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--bind /fs/nexus-scratch/derek/project1:/mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this scenario we are binding the directory outside the container &amp;lt;code&amp;gt;/fs/nexus-scratch/derek/project1&amp;lt;/code&amp;gt; to exist in the path &amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt; inside the container.&lt;br /&gt;
&lt;br /&gt;
=Shared Containers=&lt;br /&gt;
&lt;br /&gt;
Portable images called Singularity Image Format or .sif files can be copied and shared.  Nexus maintains some shared containers in &amp;lt;code&amp;gt;/fs/nexus-containers&amp;lt;/code&amp;gt;.  These are arranged by the application(s) that are installed.&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10600</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10600"/>
		<updated>2022-08-23T20:13:38Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please contact your TA to have it renewed.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and your chosen password:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;high&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Here is a basic example to schedule a interactive job running bash with a single GPU in the partition &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; with the account &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; running with the QoS of &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --partition=class --account=class --qos=default --gres=gpu:1 bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash-4.4$ hostname&lt;br /&gt;
tron14.umiacs.umd.edu&lt;br /&gt;
bash-4.4$ nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-55f2d3b7-9162-8b02-50de-476a012c626c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Available Nodes===&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                             STATE      PARTITION&lt;br /&gt;
tron06               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron07               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron08               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron09               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron10               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron11               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron12               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron13               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron14               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron15               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron16               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron17               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron18               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron19               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron20               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron21               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron22               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron23               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron24               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron25               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron26               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron27               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron28               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron29               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron30               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron31               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron32               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron33               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron34               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron35               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron36               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron37               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron38               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron39               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron40               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron41               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron42               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron43               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron44               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron45               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node tron27&lt;br /&gt;
NodeName=tron27 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=16 CPULoad=0.00&lt;br /&gt;
   AvailableFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   ActiveFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   Gres=gpu:rtxa4000:4&lt;br /&gt;
   NodeAddr=tron27 NodeHostName=tron27 Version=21.08.8-2&lt;br /&gt;
   OS=Linux 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Mon Jul 18 11:14:02 EDT 2022&lt;br /&gt;
   RealMemory=128521 AllocMem=0 FreeMem=125650 Sockets=1 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=10 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger,tron&lt;br /&gt;
   BootTime=2022-08-18T17:34:44 SlurmdStartTime=2022-08-19T13:10:47&lt;br /&gt;
   LastBusyTime=2022-08-22T11:20:18&lt;br /&gt;
   CfgTRES=cpu=16,mem=128521M,billing=173,gres/gpu=4,gres/gpu:rtxa4000=4&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10599</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10599"/>
		<updated>2022-08-23T20:13:28Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please contact your TA to have it renewed.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and your chosen password:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;high&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Here is a basic example to schedule a interactive job running bash with a single GPU in the partition &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; with the account &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; running with the QoS of &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --partition=class --account=class --qos=default --gres=gpu:1 bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
bash-4.4$ hostname&lt;br /&gt;
tron14.umiacs.umd.edu&lt;br /&gt;
bash-4.4$ nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-55f2d3b7-9162-8b02-50de-476a012c626c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Available Nodes===&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                             STATE      PARTITION&lt;br /&gt;
tron06               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron07               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron08               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron09               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron10               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron11               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron12               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron13               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron14               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron15               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron16               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron17               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron18               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron19               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron20               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron21               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron22               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron23               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron24               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron25               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron26               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron27               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron28               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron29               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron30               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron31               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron32               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron33               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron34               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron35               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron36               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron37               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron38               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron39               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron40               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron41               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron42               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron43               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron44               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron45               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node tron27&lt;br /&gt;
NodeName=tron27 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=16 CPULoad=0.00&lt;br /&gt;
   AvailableFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   ActiveFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   Gres=gpu:rtxa4000:4&lt;br /&gt;
   NodeAddr=tron27 NodeHostName=tron27 Version=21.08.8-2&lt;br /&gt;
   OS=Linux 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Mon Jul 18 11:14:02 EDT 2022&lt;br /&gt;
   RealMemory=128521 AllocMem=0 FreeMem=125650 Sockets=1 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=10 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger,tron&lt;br /&gt;
   BootTime=2022-08-18T17:34:44 SlurmdStartTime=2022-08-19T13:10:47&lt;br /&gt;
   LastBusyTime=2022-08-22T11:20:18&lt;br /&gt;
   CfgTRES=cpu=16,mem=128521M,billing=173,gres/gpu=4,gres/gpu:rtxa4000=4&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10598</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10598"/>
		<updated>2022-08-23T15:32:13Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Cluster Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please contact your TA to have it renewed.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and your chosen password:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;high&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Here is a basic example to schedule a interactive job running bash with a single GPU in the partition &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; with the account &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; running with the QoS of &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ srun --pty --partition=class --account=class --qos=default --gres=gpu:1 bash&lt;br /&gt;
bash-4.4$ hostname&lt;br /&gt;
tron14.umiacs.umd.edu&lt;br /&gt;
bash-4.4$ nvidia-smi -L&lt;br /&gt;
GPU 0: NVIDIA RTX A4000 (UUID: GPU-55f2d3b7-9162-8b02-50de-476a012c626c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Available Nodes===&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                             STATE      PARTITION&lt;br /&gt;
tron06               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron07               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron08               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron09               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron10               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron11               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron12               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron13               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron14               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron15               16         128520     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron16               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron17               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron18               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron19               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron20               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron21               16         128525     rhel8,AMD,EPYC-7302P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron22               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron23               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron24               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron25               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron26               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron27               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron28               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron29               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron30               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron31               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron32               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron33               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron34               16         128524     rhel8,Zen,EPYC-7313P      gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron35               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron36               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron37               16         128521     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron38               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron39               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron40               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron41               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron42               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron43               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron44               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
tron45               16         128525     rhel8,AMD,EPYC-7302       gpu:rtxa4000:4                   idle       class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node tron27&lt;br /&gt;
NodeName=tron27 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=16 CPULoad=0.00&lt;br /&gt;
   AvailableFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   ActiveFeatures=rhel8,AMD,EPYC-7302&lt;br /&gt;
   Gres=gpu:rtxa4000:4&lt;br /&gt;
   NodeAddr=tron27 NodeHostName=tron27 Version=21.08.8-2&lt;br /&gt;
   OS=Linux 4.18.0-372.19.1.el8_6.x86_64 #1 SMP Mon Jul 18 11:14:02 EDT 2022&lt;br /&gt;
   RealMemory=128521 AllocMem=0 FreeMem=125650 Sockets=1 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=10 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger,tron&lt;br /&gt;
   BootTime=2022-08-18T17:34:44 SlurmdStartTime=2022-08-19T13:10:47&lt;br /&gt;
   LastBusyTime=2022-08-22T11:20:18&lt;br /&gt;
   CfgTRES=cpu=16,mem=128521M,billing=173,gres/gpu=4,gres/gpu:rtxa4000=4&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10592</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10592"/>
		<updated>2022-08-22T14:32:20Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Getting an account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, you will be able contact your TA to have it renewed.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and the password you provided depending on the unit sponsoring the class:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===CML===&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Available Nodes====&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                      STATE      PARTITION&lt;br /&gt;
cmlgrad00            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad01            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad02            32         385421     Xeon,4216                 gpu:rtx2080ti:7,gpu:rtx30 idle       class&lt;br /&gt;
cmlgrad03            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad04            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad05            32         385421     Xeon,4216                 gpu:rtx3070:1,gpu:rtx2080 idle       class&lt;br /&gt;
cmlgrad06            32         385422     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad07            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node cmlgrad02&lt;br /&gt;
NodeName=cmlgrad02 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=32 CPULoad=0.07&lt;br /&gt;
   AvailableFeatures=Xeon,4216&lt;br /&gt;
   ActiveFeatures=Xeon,4216&lt;br /&gt;
   Gres=gpu:rtx2080ti:7,gpu:rtx3070:1&lt;br /&gt;
   NodeAddr=cmlgrad02 NodeHostName=cmlgrad02 Version=20.11.8&lt;br /&gt;
   OS=Linux 3.10.0-1160.45.1.el7.x86_64 #1 SMP Fri Sep 24 10:17:16 UTC 2021&lt;br /&gt;
   RealMemory=385421 AllocMem=0 FreeMem=376637 Sockets=2 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger&lt;br /&gt;
   BootTime=2021-11-18T17:39:23 SlurmdStartTime=2021-11-29T12:42:36&lt;br /&gt;
   CfgTRES=cpu=32,mem=385421M,billing=487,gres/gpu=8&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
   Comment=(null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nexus===&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10591</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10591"/>
		<updated>2022-08-22T14:26:30Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto:staff@umiacs.umd.edu staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please have your TA [[HelpDesk | contact staff]] to have it renewed.  Staff will not renew any redemption tokens without TA approval.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and the password you provided depending on the unit sponsoring the class:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===CML===&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Available Nodes====&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                      STATE      PARTITION&lt;br /&gt;
cmlgrad00            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad01            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad02            32         385421     Xeon,4216                 gpu:rtx2080ti:7,gpu:rtx30 idle       class&lt;br /&gt;
cmlgrad03            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad04            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad05            32         385421     Xeon,4216                 gpu:rtx3070:1,gpu:rtx2080 idle       class&lt;br /&gt;
cmlgrad06            32         385422     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad07            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node cmlgrad02&lt;br /&gt;
NodeName=cmlgrad02 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=32 CPULoad=0.07&lt;br /&gt;
   AvailableFeatures=Xeon,4216&lt;br /&gt;
   ActiveFeatures=Xeon,4216&lt;br /&gt;
   Gres=gpu:rtx2080ti:7,gpu:rtx3070:1&lt;br /&gt;
   NodeAddr=cmlgrad02 NodeHostName=cmlgrad02 Version=20.11.8&lt;br /&gt;
   OS=Linux 3.10.0-1160.45.1.el7.x86_64 #1 SMP Fri Sep 24 10:17:16 UTC 2021&lt;br /&gt;
   RealMemory=385421 AllocMem=0 FreeMem=376637 Sockets=2 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger&lt;br /&gt;
   BootTime=2021-11-18T17:39:23 SlurmdStartTime=2021-11-29T12:42:36&lt;br /&gt;
   CfgTRES=cpu=32,mem=385421M,billing=487,gres/gpu=8&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
   Comment=(null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nexus===&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10590</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10590"/>
		<updated>2022-08-22T14:25:40Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting [mailto: staff@umiacs.umd.edu].&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please have your TA [[HelpDesk | contact staff]] to have it renewed.  Staff will not renew any redemption tokens without TA approval.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and the password you provided depending on the unit sponsoring the class:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===CML===&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Available Nodes====&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                      STATE      PARTITION&lt;br /&gt;
cmlgrad00            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad01            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad02            32         385421     Xeon,4216                 gpu:rtx2080ti:7,gpu:rtx30 idle       class&lt;br /&gt;
cmlgrad03            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad04            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad05            32         385421     Xeon,4216                 gpu:rtx3070:1,gpu:rtx2080 idle       class&lt;br /&gt;
cmlgrad06            32         385422     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad07            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node cmlgrad02&lt;br /&gt;
NodeName=cmlgrad02 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=32 CPULoad=0.07&lt;br /&gt;
   AvailableFeatures=Xeon,4216&lt;br /&gt;
   ActiveFeatures=Xeon,4216&lt;br /&gt;
   Gres=gpu:rtx2080ti:7,gpu:rtx3070:1&lt;br /&gt;
   NodeAddr=cmlgrad02 NodeHostName=cmlgrad02 Version=20.11.8&lt;br /&gt;
   OS=Linux 3.10.0-1160.45.1.el7.x86_64 #1 SMP Fri Sep 24 10:17:16 UTC 2021&lt;br /&gt;
   RealMemory=385421 AllocMem=0 FreeMem=376637 Sockets=2 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger&lt;br /&gt;
   BootTime=2021-11-18T17:39:23 SlurmdStartTime=2021-11-29T12:42:36&lt;br /&gt;
   CfgTRES=cpu=32,mem=385421M,billing=487,gres/gpu=8&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
   Comment=(null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nexus===&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10589</id>
		<title>ClassAccounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/umiacs/index.php?title=ClassAccounts&amp;diff=10589"/>
		<updated>2022-08-22T14:24:28Z</updated>

		<summary type="html">&lt;p&gt;Derek: /* Registering for Duo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
UMIACS Class Accounts are currently intended to support classes for all of UMIACS/CSD via the [[Nexus]] cluster. All new class accounts will be serviced solely through this cluster.  Faculty may request that a class be supported by contacting staff@umiacs.umd.edu.&lt;br /&gt;
&lt;br /&gt;
==Getting an account==&lt;br /&gt;
Your TA will request an account for you. Once this is done, you will be notified by email that you have an account to redeem.  If you have not received an email, please contact your TA. &#039;&#039;&#039;You must redeem the account within 7 days or else the redemption token will expire.&#039;&#039;&#039;  If your redemption token does expire, please have your TA [[HelpDesk | contact staff]] to have it renewed.  Staff will not renew any redemption tokens without TA approval.&lt;br /&gt;
&lt;br /&gt;
Once you do redeem your account, you will need to wait until you get a confirmation email that your account has been installed.  This is typically done once a day on days that the University is open for business.&lt;br /&gt;
&lt;br /&gt;
===Registering for Duo===&lt;br /&gt;
UMIACS requires that all Class accounts be registered for MFA (multi-factor authentication) under our [[Duo]] instance (note that this is different than UMD&#039;s general Duo instance). &#039;&#039;&#039;You will not be able to log onto the class submission host until you register.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to register, [https://intranet.umiacs.umd.edu/directory visit our directory app] and log in with your Class username and password. You will then receive a prompt to enroll in Duo. For assistance in enrollment, you can visit our [[Duo | Duo help page]].&lt;br /&gt;
&lt;br /&gt;
Once notified that your account has been installed and you have registered in our Duo instance, you can access the following class submission host(s) using [[SSH]] with your assigned username and the password you provided depending on the unit sponsoring the class:&lt;br /&gt;
* &amp;lt;code&amp;gt;nexusclass00.umiacs.umd.edu&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nexusclass01.umiacs.umd.edu&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cleaning up your account before the end of the semester==&lt;br /&gt;
Class accounts for a given semester will be archived and deleted after that semester&#039;s completion as early as the following:&lt;br /&gt;
* Spring semesters: June 1st of same year&lt;br /&gt;
* Summer semesters: September 1st of same year&lt;br /&gt;
* Fall semesters: January 1st of next year&lt;br /&gt;
&lt;br /&gt;
It is your responsibility to ensure you have backed up anything you want to keep from your class account&#039;s personal or group storage (below sections) prior to the relevant date.&lt;br /&gt;
&lt;br /&gt;
==Personal Storage==&lt;br /&gt;
Your home directory has a quota of 20GB and is located at:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/classhomes/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;semester&amp;gt;&amp;lt;/code&amp;gt; is either &amp;quot;spring&amp;quot;, &amp;quot;summer&amp;quot;, &amp;quot;fall&amp;quot;, or &amp;quot;winter&amp;quot;, &amp;lt;code&amp;gt;&amp;lt;year&amp;gt;&amp;lt;/code&amp;gt; is the current year e.g., &amp;quot;2021&amp;quot;,  &amp;lt;coursecode&amp;gt; is the class&#039; course code as listed in UMD&#039;s [https://app.testudo.umd.edu/soc/ Schedule of Classes] in all lowercase e.g., &amp;quot;cmsc999z&amp;quot;, and &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; is the username mentioned in the email you received to redeem the account e.g., &amp;quot;c999z000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can request up to another 100GB of personal storage if you would like by having your TA [[HelpDesk | contact staff]]. This storage will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Group Storage==&lt;br /&gt;
You can also request group storage if you would like by having your TA [[HelpDesk | contact staff]] to specify the usernames of the accounts that should be in the group. Only other class accounts in the same class can be added to the group. The quota will be 100GB multiplied by the number of accounts in the group and will be located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/fs/class-projects/&amp;lt;semester&amp;gt;&amp;lt;year&amp;gt;/&amp;lt;coursecode&amp;gt;/&amp;lt;groupname&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;&amp;lt;groupname&amp;gt;&amp;lt;/code&amp;gt; is composed of:&lt;br /&gt;
* the abbreviated course code as used in the username e.g., &amp;quot;c999z&amp;quot;&lt;br /&gt;
* the character &amp;quot;g&amp;quot;&lt;br /&gt;
* the number of the group (starting at 0 for the first group for the class requested to us) prepended with 0s to make the total group name 8 characters long&lt;br /&gt;
&lt;br /&gt;
e.g., &amp;quot;c999zg00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Cluster Usage==&lt;br /&gt;
&#039;&#039;&#039;You may not run computational jobs on any submission host.&#039;&#039;&#039;  You must schedule your jobs with the [[SLURM]] workload manager.  You can also find out more with the public documentation for the [https://slurm.schedmd.com/quickstart.html SLURM Workload Manager].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any questions or issues with the cluster must be first made through your TA.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===CML===&lt;br /&gt;
Class accounts only have access to the following submission parameters in SLURM.  You may be required to explicitly set each of these in your submission parameters.&lt;br /&gt;
&lt;br /&gt;
* Partition - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Account - &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* QoS - &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Available Nodes====&lt;br /&gt;
You can list the available nodes and their current state with the &amp;lt;code&amp;gt;show_nodes -p class&amp;lt;/code&amp;gt; command.  This list of nodes is not completely static as nodes may be pulled out of service to repair/replace GPUs or other components.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show_nodes -p class&lt;br /&gt;
NODELIST             CPUS       MEMORY     AVAIL_FEATURES            GRES                      STATE      PARTITION&lt;br /&gt;
cmlgrad00            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad01            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad02            32         385421     Xeon,4216                 gpu:rtx2080ti:7,gpu:rtx30 idle       class&lt;br /&gt;
cmlgrad03            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
cmlgrad04            32         385421     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad05            32         385421     Xeon,4216                 gpu:rtx3070:1,gpu:rtx2080 idle       class&lt;br /&gt;
cmlgrad06            32         385422     Xeon,4216                 gpu:rtx2080ti:8           alloc      class&lt;br /&gt;
cmlgrad07            32         385421     Xeon,4216                 gpu:rtx2080ti:8           mix        class&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also find more granular information about an individual node with the &amp;lt;code&amp;gt;scontrol show node&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show node cmlgrad02&lt;br /&gt;
NodeName=cmlgrad02 Arch=x86_64 CoresPerSocket=16&lt;br /&gt;
   CPUAlloc=0 CPUTot=32 CPULoad=0.07&lt;br /&gt;
   AvailableFeatures=Xeon,4216&lt;br /&gt;
   ActiveFeatures=Xeon,4216&lt;br /&gt;
   Gres=gpu:rtx2080ti:7,gpu:rtx3070:1&lt;br /&gt;
   NodeAddr=cmlgrad02 NodeHostName=cmlgrad02 Version=20.11.8&lt;br /&gt;
   OS=Linux 3.10.0-1160.45.1.el7.x86_64 #1 SMP Fri Sep 24 10:17:16 UTC 2021&lt;br /&gt;
   RealMemory=385421 AllocMem=0 FreeMem=376637 Sockets=2 Boards=1&lt;br /&gt;
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A&lt;br /&gt;
   Partitions=class,scavenger&lt;br /&gt;
   BootTime=2021-11-18T17:39:23 SlurmdStartTime=2021-11-29T12:42:36&lt;br /&gt;
   CfgTRES=cpu=32,mem=385421M,billing=487,gres/gpu=8&lt;br /&gt;
   AllocTRES=&lt;br /&gt;
   CapWatts=n/a&lt;br /&gt;
   CurrentWatts=0 AveWatts=0&lt;br /&gt;
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s&lt;br /&gt;
   Comment=(null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Nexus===&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Derek</name></author>
	</entry>
</feed>