Quick Start¶
Accessing Muscadine¶
Method One: Titan¶
First log into Titan at titan.hpc.msstate.edu. Use the following template if needed:
ssh <NetID>@titan.hpc.msstate.edu
After entering your HPC password and doing the 2FA push, you can proceed to logging into Muscadine. Muscadine only has one node facing the HPCC network which is muscadine-node-1, so that is the one we’ll want to ssh into. Use the following template if needed:
ssh <NetID>@muscadine-node-1.hpc.msstate.edu
Repeat the authentication process from logging into Titan and you’ll be set.
Method Two: HPC VPN¶
Method Two involves logging into the HPC2 VPN. Go to https://servicedesk.its.msstate.edu and download the Cisco AnyConnect VPN by following ITS’s guide. Once that is completed, launch the VPN and connect to vpn.hpc.msstate.edu. It will then ask for your Group (HPC2), Username (your NetID), Password (your HPC Password), and Duo 2FA Passcode (get from duo app or enter ‘push’ to recieve a push challenge notification). Once you are connected, you can ssh directly into muscadine’s head node muscadine-node-1. Use the following template if needed:
ssh <NetID>@muscadine-node-1.hpc.msstate.edu
Muscadine’s Storage¶
You are provided a decently fast and shared home directory. This is the location you start after connecting into Muscadine. You are welcome to keep stuff in your home directory, but there are also /scratch and /work that you can use.
/scratch is build off of the BeeGFS and is the most performant storage solution for Muscadine. The downside is that there is limited storage, thus there will be wipes of old files every now and then whenever it gets near capacity.
/work and /home are based on the same storage solution so they have the same speed. The difference is that /work is intended for project data such as datasets, AI models, output files, etc. If your program intakes data or outputs data, that data should be stored in /work.
Mount |
Total Capacity |
Speed |
Quota |
Description |
|---|---|---|---|---|
|
2.2TB |
FAST |
None |
Scratch is to be used for active data or programs that are not vital. SCRATCH WILL BE PERIODILY WIPED |
|
20TB |
quick |
10GB |
Home is where your and other user’s personal directories live. Only put binaries, scripts, or small things in here. Capacity shared with |
|
20TB |
quick |
500GB |
Work is where datasets and large quantities of input/output data is to be stored. Capacity shared with |
Note
The speeds are intentionally vague. Feel free to benchmark them yourself
Warning
Do not put anything you want to keep for longer than a day in /scratch as all files are subject to deletion to preserve free space.
Using an HPC System¶
Getting a node allocation¶
Say you want to build a given program. You could build it on the head, but that can interfere with other people doing the same or running a program on the head. An alternative to that is submitting a Slurm request to get a node for building purposes. Run the following command to reserve a node for a bash terminal.
srun -c16 --pty bash
Available modules¶
Modules are software stacks such as GCC, Python, OpenBLAS, or ROCM that we provide that are optimized for the cluster its on. A list of all available modules can be seen by running ml avail. Here is a table of all the modules provided by default. A few more modules can be made available after loading a compiler like aocc or gcc.
-------------------- /apps/spack-zen4-v1.0/modulefiles/Core -----------------
amdblis/5.0 hip/6.2.4 python/3.12.5 rust/1.81.0
aocc/5.0.0 hipblas/6.2.4 rocblas/6.2.4 sqlite/3.34.1
apptainer/1.3.4 miopen-hip/6.2.4 rocm-cmake/6.2.4
contrib/0.1 openmpi/5.0.5 rocm-device-libs/6.2.4
gcc/14.2.0 python/3.11.9 rocsolver/6.2.4
Note
This may not be an accurate list of currently avaliable modules, run ml avail to get the system specific module list.
In order to load a module, you can run ml load <moduleName>. Tab complete does work with ml and we encourage you use tab complete as it can also list several different versions we provide for each module, most will only have one though.
What do I do if there is a program I want?¶
The simple answer is to build it from their source repository. The complex answer is to build it from their source repository. We do not install tools or programs for users. That is the user’s job of using the cluster. After building a program, you should get a binary executable. If you want to make binaries you make accessible by you anywhere on the system, complete the following steps.
After building your binary, create a
.binin your home directory by runningmkdir ~/.bin.Now move that binary into the
.bindirectory.Lastly, you’ll need to add the path of that directory to your environment.
Edit
~/.zshrcaddingexport PATH="$PATH:$(HOME)/.binto the end.
Note
NOTE: You only need edit .zshrc once.
Users can submit a request to add something they have built to /apps/contrib for other users to use as well.