Jump to content

Best-Practices: Difference between revisions

From HPCwiki
mNo edit summary
No edit summary
Line 2: Line 2:


- Environment  
- Environment  
* Do not modify your ~/.bashrc or ~/.bash_profile
* If you need to create aliases or environment variables either setup your own module or edit your ~/.bash_aliases
* Setup environment variables with your lustre folder locations ( see [[HPC Advanced/Preparation Exercise]] part 1)
- Login node
- Login node


Line 24: Line 29:


- jobs - general good practices about submitting jobs
- jobs - general good practices about submitting jobs
* Be mindful when running array jobs that write to lustre. thousands of job are likely going to slow down lustre and consequently your jobs. Limit the number of active jobs to a couple of hundred
* Control where the log and error  output locations of your job and make sure they do not point to your home folder


- Education Courses
- Education Courses
Line 29: Line 37:
Request assistantance for your course a soon as possible, at least with a month in advance, this leaves room for customization and testing
Request assistantance for your course a soon as possible, at least with a month in advance, this leaves room for customization and testing


Do not modify your student's ~/.bashrc or ~/.bash_profile file, any environment modifications should be done via modules.
Do not modify your student's ~/.bashrc or ~/.bash_profile file, any environment modifications should be done via modules
 
== Login Node ==
 
* Do not run analyses or jobs in the login node.
 
== Home folder  ($HOME, ~) ==
 
* Do not store datasets or large files in your home directory. You have a quota of 200 GB.
* Do not install software that you intend to run in jobs in your $HOME . Install your software in lustre.
* Do not point the logs of your jobs into your $HOME, specially when running array jobs. If not defined slurm will point them to the location you run the sbatch command.
* Do not edit or let software edit your ~/.bashrc or ~/.bash_profile. If something goes wrong you will be locked out.
 
== Jobs ==
 
*If you have jobs that are very much alike, please use [[Array Jobs]]. This will make your life a lot easier.

Revision as of 08:00, 31 August 2026


- Environment

  • Do not modify your ~/.bashrc or ~/.bash_profile
  • If you need to create aliases or environment variables either setup your own module or edit your ~/.bash_aliases
  • Setup environment variables with your lustre folder locations ( see HPC Advanced/Preparation Exercise part 1)

- Login node

The login node is meant to be a staging area for your computations, whatever work outside of editing files should be done in a job in the compute node.

- shared filesystems (/home)

You have a quota of 200GB in you home directory,

  • Do not store datasets or large files in your home directory. You have a quota of 200 GB
  • Do not install software that you intend to run in jobs in your $HOME . Install your software in lustre.
  • Do not point the logs of your jobs into your $HOME, specially when running array jobs.
  • Do not edit or let software edit your ~/.bashrc or ~/.bash_profile. If something goes wrong you will be locked out.

- shared filesystems (/lustre)

Lustre is a parallel filesystem that excels are high read and write speeds but it is limited at handling metadata operations

- Avoid folder with lots of small files

- Use the compute node's /tmp directory or /dev/shm for metadata heavy operations

- jobs - general good practices about submitting jobs

  • Be mindful when running array jobs that write to lustre. thousands of job are likely going to slow down lustre and consequently your jobs. Limit the number of active jobs to a couple of hundred
  • Control where the log and error output locations of your job and make sure they do not point to your home folder

- Education Courses

Request assistantance for your course a soon as possible, at least with a month in advance, this leaves room for customization and testing

Do not modify your student's ~/.bashrc or ~/.bash_profile file, any environment modifications should be done via modules