Gaussian: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
Line 15: Line 15:


==Running Gaussian on Graham==
==Running Gaussian on Graham==
Gaussian g09.e01 and g16.a03 are installed on the newest cluster Graham with modules.  
Gaussian g09.e01 and g16.a03 are installed on the newest cluster Graham with modules. You can load them using either of


===User Environment Setup===
{{Command|module load gaussian/g16.a03}}
Each research group has a default account with your supervisor's userid (PI'sid) named def-PI'sid (type 'groups' on Graham will show the groups you are in).  


If this is your first time to use Graham, you can add the following line to your .bash_profile file:
{{Command|module load gaussian/g09.a01}}
export SBATCH_ACCOUNT=def-PI'sid
 
To use Gaussian 16, add the following module load line to your .bash_profile file:
#for Gaussian 16
module load gaussian/g16.a03
 
To use Gaussian 09, add the following module load line to your .bash_profile file:
#for Gaussian 09
module load gaussian/g09.e01
 
exit and login again, the setup should be good for you.


===Job Submission===
===Job Submission===
Graham uses Slurm scheduler, which is different from the sq command used on other Sharcnet clusters.
Graham uses Slurm scheduler. For details about submitting jobs, see [[Running jobs]].


Besides your input name.com file, you have to prepare a job script in the same input file directory to define the compute resources for the job.  
Besides your input name.com file, you have to prepare a job script in the same input file directory to define the compute resources for the job.  
Line 47: Line 34:
Example g16 job script, e.g., name.sh is like (simply change g16 to g09 for a g09 job):  
Example g16 job script, e.g., name.sh is like (simply change g16 to g09 for a g09 job):  


#!/bin/bash
{{File
#SBATCH --mem=16G            # memory, roughly 2 times %mem defined in the input name.com file
|name=mysub.sh
#SBATCH --time=02-00:00      # expect run time (DD-HH:MM)
|lang="bash"
#SBATCH --cpus-per-task=16    # No. of cpus for the job as defined by %nprocs in the name.com file
|contents=
g16 < name.com >& name.log &  # g16 command, input: name.com, output: name.log
#!/bin/bash
#SBATCH --mem=16G            # memory, roughly 2 times %mem defined in the input name.com file
#SBATCH --time=02-00:00      # expect run time (DD-HH:MM)
#SBATCH --cpus-per-task=16    # No. of cpus for the job as defined by %nprocs in the name.com file
module load gaussian/g16.a03
g16 < name.com >& name.log &  # g16 command, input: name.com, output: name.log
}}
 
You can modify the script to fit your job's reqirements for compute resources.
You can modify the script to fit your job's reqirements for compute resources.


Line 61: Line 55:


Example G16 job script, name.sh is like (simply change G16 to G09 for a g09 job):
Example G16 job script, name.sh is like (simply change G16 to G09 for a g09 job):
#!/bin/bash
{{File
#SBATCH --mem=16G           # memory, roughly 2 times %mem defined in the input name.com file
|name=mysub.sh
#SBATCH --time=02-00:00     # expect run time (DD-HH:MM)
|lang="bash"
#SBATCH --cpus-per-task=16 # No. of cpus for the job as defined by %nprocs in the name.com file
|contents=
#!/bin/bash
#SBATCH --mem=16G             # memory, roughly 2 times %mem defined in the input name.com file
#SBATCH --time=02-00:00       # expect run time (DD-HH:MM)
#SBATCH --cpus-per-task=16   # No. of cpus for the job as defined by %nprocs in the name.com file
module load gaussian/g16.a03
  G16 name.com                # G16 command, input: name.com, output: name.log by default
  G16 name.com                # G16 command, input: name.com, output: name.log by default
 
}}
====Examples====
Sample *.sh and *.com files can be found on Graham in
/home/jemmyhu/tests/test_Gaussian/g16
or
/home/jemmyhu/tests/test_Gaussian/g09
 
Change name.sh file permission to be executable, i.e.,
chmod 750 name.sh
 
Submit the job using sbatch
sbatch name.sh
 
For a different job, you just need to copy name.sh to a different filename, i.e., name1.sh paired with name1.com and name1.log in order to run input file name1.com.
 
Chechk for job status
squeue -u userid  #check your own jobs in the queue
or
sacct  #your job history
 
===Interactive jobs===
You can run interactive Gaussian job for testing purpose on Graham. It's not a good practice to run interactive Gaussian jobs on a login node. You can start an interactive session on a compute node with salloc, the example for an hour, 8 cpus and 10G memory Gaussian job is like
 
Goto the input file directory first, then use salloc command:
[jemmyhu@gra-login2 tests]$ salloc --time=1:0:0 --cpus-per-task=8 --mem=10g  # allocate on a compute node with jobid
salloc: Granted job allocation 93288
[jemmyhu@gra798 tests]$ G16 g16_test2.com    # G16 saves runtime file (.rwf etc.) to /scratch/yourid/93288/
or
[jemmyhu@gra798 tests]$ g16 < g16_test2.com >& g16_test2.log &  # g16 saves runtime file to /localscratch/yourid/
when it's done, or looks ok for the input test, terminate the session.
[jemmyhu@gra798 tests]$ exit
exit
salloc: Relinquishing job allocation 93288
[jemmyhu@gra-login2 tests]$

Revision as of 18:47, 31 July 2017

Gaussian is a computational chemistry application produced by Gaussian, Inc.

License limitations

Compute Canada currently supports Gaussian only on Graham and certain legacy systems.

In order to use Gaussian you must agree to the following:

  1. You are not a member of a research group developing software competitive to Gaussian.
  2. You will not copy the Gaussian software, nor make it available to anyone else.
  3. You will properly acknowledge Gaussian Inc. and Compute Canada in publications.
  4. You will notify us of any change in the above acknowledgement.

If you do, please send an email with a copy of those conditions, saying that you agree to them, to support@computecanada.ca. We will then grant you access to Gaussian.

Running Gaussian on Graham

Gaussian g09.e01 and g16.a03 are installed on the newest cluster Graham with modules. You can load them using either of

Question.png
[name@server ~]$ module load gaussian/g16.a03
Question.png
[name@server ~]$ module load gaussian/g09.a01

Job Submission

Graham uses Slurm scheduler. For details about submitting jobs, see Running jobs.

Besides your input name.com file, you have to prepare a job script in the same input file directory to define the compute resources for the job.

There are Two Options to run your Gaussian job on Graham based on the size of your job files.

g16 (or g09) for regular size jobs

This option will save the unnamed runtime files (.rwf, .inp, .d2e, .int, .skr) to localscratch /localscratch/yourid/ on the compute node where the job was scheduled to. The files on localscratch will be deleted by the scheduler afterwards, usually users do not track the computer node number, those files could be lost easily. If you do not expect to use the .rwf file for restart in a later time, this is the option to go

Example g16 job script, e.g., name.sh is like (simply change g16 to g09 for a g09 job):


File : mysub.sh

#!/bin/bash
#SBATCH --mem=16G             # memory, roughly 2 times %mem defined in the input name.com file
#SBATCH --time=02-00:00       # expect run time (DD-HH:MM)
#SBATCH --cpus-per-task=16    # No. of cpus for the job as defined by %nprocs in the name.com file
module load gaussian/g16.a03
g16 < name.com >& name.log &  # g16 command, input: name.com, output: name.log


You can modify the script to fit your job's reqirements for compute resources.

G16 (or G09) for large size jobs

localscratch is ~800G shared by any jobs running on the node. If your job files would be bigger than or close to that size range, you would instead use this option to save files to your /scratch. However it's hard for us to define what size of job would be considered as a large job because we could not predict how many jobs will be running on a node at certain time, how many jobs may save files and the size of the files to /localscratch. It's possible to have multiple Gaussian jobs running on the same node sharing the ~800G space.

G16 provides a better way to manage your files as files are within the jobid directory: /scratch/youris/jobid/, and it's easier to locate the .rwf file to restart a job in a later time.

Example G16 job script, name.sh is like (simply change G16 to G09 for a g09 job):

File : mysub.sh

#!/bin/bash
#SBATCH --mem=16G             # memory, roughly 2 times %mem defined in the input name.com file
#SBATCH --time=02-00:00       # expect run time (DD-HH:MM)
#SBATCH --cpus-per-task=16    # No. of cpus for the job as defined by %nprocs in the name.com file
module load gaussian/g16.a03
 G16 name.com                # G16 command, input: name.com, output: name.log by default