-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Shared softwares are installed on the workstation under /nfs/polizzi/shared
and on o2 under /n/data1/hms/bcmp/polizzi/lab
. Click the side bar --> to view softwares in each category.
If you install a new piece of software, please:
- Put it on the workstation and/or O2 under the corresponding category.
- Add an entry to the wiki page of that software category (hit "edit" in the upper right)
- Add your name and update the date
- Consider including example scripts or a tutorial for how to use the software.
- Ping the other group members on the
#computation
slack channel
Did you know! We have collected helpful tips and tricks for how to effectively work with computers on the Tips and Tricks page.
The lab has the following computer resources:
- For small/simple tasks
- For medium-sized tasks and development
- VPN access is required to log in to the workstation from outside networks.
- Your home directory is at
/nfs/polizzi/$USER
and your username is (first initial) + (last name). - You have read access to others' home directories.
- You have read + write access to the shared directory at
/nfs/polizzi/shared
. - Tasks can be run directly from the command line. Please be conscious this is a shared resource, so make sure to leave computational resources for others to use!
- If you are running a task on multiple cores, you can specify how many cores to use; e.g. with GNU parallel you can specify with the
-P
flag:parallel -P 32 'python pdb2fasta.py {} > fastas_protassign/{/}' ::: /nfs/polizzi/npolizzi/Combs2/database/pdb_protassign_2p5_0p3_c/*
- If you are running a task on multiple cores, you can specify how many cores to use; e.g. with GNU parallel you can specify with the
o2 cluster: o2.hms.harvard.edu
- For larger-scale or repetetive tasks
- Your home directory is at
/home/$USER
and your username is (first two letters of first name) + (first letter of last name) + (4 numbers). - You do not have read access to your labmates home directories by default!
- If you want to give your labmates access to your home directory, you can change the group of your home directory to
polizzi
withchgrp -R polizzi ~
, and then give everyone in the polizzi access to your home dir withchmod -R g-w ~
.
- If you want to give your labmates access to your home directory, you can change the group of your home directory to
- You have write and read access to the shared lab resources at
/n/data1/hms/bcmp/polizzi/lab
. - When you log in, you are taken to a login node; you are not allowed to run compute-intensive jobs on this. Rather, jobs are sent through the SLURM software, which schedules and manages jobs for the hundreds (thousands)? of users of the shared resources.
Slurm is a workload manager that has been installed on our workstations. It helps manage compute resources by allowing users to submit jobs while requesting a certain amount of resources (such as CPU cores or GPUs). Allowing Slurm to schedule these jobs allows us allocate resources more efficiently and reduce manual management of jobs, i.e. checking when jobs to finish before starting new ones. Read more here: https://slurm.schedmd.com/quickstart.html
Currently Slurm is installed for 3 workstations (aka partitions): np-cpu-1
, np-gpu-1
, and np-gpu-2
. Our main workstation npl1.in.hwlab
is NOT accessible via Slurm right now. Even though it is possible to submit jobs without Slurm on these 3 partitions, it is not recommended because this may interfere with existing Slurm jobs. Therefore, everything submitted to np-cpu-1
, np-gpu-1
, and np-gpu-2
should be through Slurm. npl1.in.hwlab
can be used 'interactively' for general development, prototyping, and shorter runs. Ideally, VScode should be run through npl1.in.hwlab
as well.
On slurm we have two partitions:
-
np-cpu
submits tonp-cpu-1
-
np-gpu
submits tonp-gpu-1
ornp-gpu-2
depending on which one has more available resources
Here is a commented Slurm bash script. All comments starting with #SBATCH
are interpreted by Slurm, the order does not matter.
#!/bin/bash
#SBATCH -p np-cpu # either np-gpu or np-cpu
#SBATCH -c 2 # number of cores
#SBATCH -J job_name # job name
#SBATCH -o slurm.%x.%A.out # standard out will be printed to this file. %A is the job ID number and %x is the job name
#SBATCH -e slurm.%x.%A.err # standard error will be printed to this file
#SBATCH [email protected] # email for updates
#SBATCH --mail-type=ALL # include all types of updates - when the job starts, if it fails, when it finishes
#OPTIONAL commands:
#SBATCH -w np-gpu-1 # ONLY if using np-gpu - you can specify whether you want np-gpu-1 or np-gpu-2 here
#SBATCH --mem=20G # memory requested - OPTIONAL for now since it's difficult to predict and your run will stop if you exceed this
#SBATCH --array=0-8 # submit an array of jobs. In this case the commands below will be run 9 times, each time the variable `${SLURM_ARRAY_TASK_ID}` will be different.
#SCRIPT below: everything below is what you would typically type on the command line to submit a job.
python run_combs.py
Other important commands:
- to submit the above script, save it as
slurm_script.sh
andsbatch slurm_script.sh
-
sacct
to view currently running jobs - `scancel to cancel a running or pending job