You can easily access Rockfish by SSH-ing onto Halibut and navigating to the /mnt/HexonVast/Rockfish folder. This will bring you to Chen/Honey Rockfish home folder.
ssh (Your_JHED)@halibut.pbs.jhu.edu
cd /mnt/HexonVast/rockfish/
In most cases, it will be more practical to connect to Rockfish through Halibut since this will allow you to process files that are stored on Halibut. However, it is possible to connect directly to the Rockfish folder which may be easy if your files are already there.
ssh (Your_JHED)@login.rockfish.jhu.edu
Once logged in, you will find yourself in your home directory
# Your home directory
$ pwd
> /home/rockfishID
The groups directory is in /data/choney1.
Everyone has their own folder with rockfishID in it:
# Honeylab data folder
$ cd /data/choney1
$ ls -lah
rockfishID1
rockfishID2
# Create a symlink to make life a bit easier
$ ln -s /data/choney1 ~/data
If you want to make your life easy, you add halibut and rockfish to your ssh config (highly recommended).
Open up ~/.ssh/config with the text editor of your choice (e.g. nano ~/.ssh/config) and add following at the end (replace rockfishID):
Host halibut
HostName halibut.pbs.jhu.edu
User JHED
Host rockfish
HostName login.rockfish.jhu.edu
User rockfishID
Now you can access halibut and rockfish with:
$ ssh halibut
$ ssh rockfish
~/.ssh directory. For example, here we see that id_ecdsa key is present:(base) [kriarm@login03 lm-ecog]$ ls ~/.ssh
authorized_keys id_ecdsa id_ecdsa.pub known_hosts
If the key isn't there or ~/.ssh doesn't exist, see here: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys
There is some rudimentary informaiton at the ARCH docs about creating conda environments: https://www.arch.jhu.edu/python-virtual-environments/). In these guides, they show how to use pre-installed anaconda to create an environment.
In general (via ARCH helpdesk team 08/07/2024), you want to install conda environments to the /data/honey1/your_username partition (as opposed to /home/your_username) to avoid running into storage requirements.
module load anaconda3/2024.02-1 # or whichever version is most recent
envs and pkgs to /data/pi_ID/user_ID/your_folderIn this way, installing conda packages will not use the space in your home folder. In your ~/.condarc config file add envs_dirs and pkgs_dirs fields:
envs_dirs:
- /data/pi_ID/user_ID/your_envs_folder
pkgs_dirs:
- /data/pi_ID/user_ID/your_pkgs_folder
your_envs_folder location.To install to a location of your choosing, use the --prefix argument in conda env create, For example:
conda env create -n my_env --prefix /data/PI_id/user_ID/your_envs_folder python=3.11
Should you want to install your own miniconda3 distribution, rather than using those available on cluster, you can follow these steps below (note that this will take storage space). In 99% of cases, you can just use the pre-installed anaconda (see above) and use it to create a conda environment you need.*
*These steps are documented only because somebody went down this rabbit hole and thought it's worth documenting it.
mkdir ~/miniconda3 # create the directory to install into
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda3.sh # download installer
bash ~/miniconda3/miniconda3.sh -b -u -p ~/miniconda3. # run the installer
rm -rf ~/miniconda3/miniconda.sh # remove the installer
conda command is used.~/.bashrc file:export PATH="/home/kriarm/miniconda3/condabin:$PATH"
Otherwise, it will default to invoking the pre-installed conda.
conda init (this will make sure to activate base environment when a bash session is started)After doing this, your .bashrc file should look sth like this
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
module load gcc
export PATH="/home/kriarm/miniconda3/condabin:$PATH"
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/kriarm/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/kriarm/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/kriarm/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/kriarm/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda init, check that the conda is the right version by typing conda --version.TBA
module guide, life becomes easier after understading this.Example run.sh file for python with conda env llm.
#!/bin/bash
#SBATCH --partition=defq
#SBATCH --output=logs/slurm-%j.out
#SBATCH -t 00-04:30:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4
#SBATCH --mem-per-cpu=20GB
#SBATCH --export=ALL
ml purge # unload all other modules
ml anaconda3/2022.05 # load conda
ml cuda/11.6.0 # load cuda
conda activate llm # activate conda env
python rate_incontext.py # run python script
Submit your job with the command sbatch run.sh.