- Spring School on Computational Chemistry 17-19 April 2024
- Nino Runeberg, CSC - IT center for Science Ltd, based on the earlier work of Atte Sillanpää
- We have downloaded from PubChem a set of molecules having the same molecular formula C11H14O2N2 .
- From the original set of about 14700 molecules we have selected 31 structures.
Their corresponding SMILES strings are given in the table https://siili.rahtiapp.fi/Duf0GbqtRVGrz2dZbPi5qg - Pick any of the free structures in that table and mark your name on the row (click on side-by-side icon at top left to edit )
- Set up a calculation to get the minimum energy conformation according to the same recipe we used for formaldehyde
- Tabulate the total energy of the corresponding optimized structure
- Can you explain why some isomers are lower in energy than others?
- Bonus Would the order change if you'd change the model? Improve basis set? Add an implicit solvent model? Include entropy estimate?
- Launch TmoleX and create a new project in a suitable directory.
- If you use the Puhti desktop then use something like
/scratch/project_2006657/<your-username>/qc_tutorial2
. Remember to replaceyour-username
with your actual username in order to make it a unique and not interfering with other participants projects. - If you use a locally installed TmoleX then define the new project under your home directory, e.g.
~/qc_tutorial2
.
- A new job is initiated within your new TmoleX project.
- Rename the first job in this project according to the
cid
identifier you picked from the list - In the first
Geometry
subsection paste your SMILES string into the slotSMILES to 3D
. Pushing the buttons should launch the TmoleX viewer showing the 3D structure of the molecule corresponding to your SMILES string. - Since the conversion from
SMILES
toxyz
is quite rough it's often a good idea to do a preoptimization. - Continue in a similar way as we did with formaldehyde and optimize the structure. Do a SMP parallel calculation and request for 8 cores.
- Once the structure optimization has (hopefully) converged, fill in the total energy of that structure into the table.
When a job has finished, all output files are transferred to your local job and deleted from Puhti's work directory.
Amoung the result files yous should have a file called slurm-XXXXXXXXXX.out
where XXXXXXXXXX
is replaced with a
number that corresponds to the JOBID
the job had in Puhti's queuing system.
If you would like to have a closer look at the details of that job you should login to Puhti
ssh your-username@puhti.csc.fi
Once logged into Puhti you can use the command sacct
to collect various data related to the job. Give the command (replace JOBID with the actual number)
sacct -X -j JOBID -o state,start,alloc,elapsed,cputime
State Start AllocCPUS Elapsed CPUTime
---------- ------------------- ---------- ---------- ----------
COMPLETED 2024-04-15T15:11:06 4 00:10:51 00:43:24
Here the Elapsed
time is the wall time the job took to finish.
Use the optimized structure and define a new job, Start new job with current data
, where you change the basis set (Atomic Attributes
) to def2-TZVP
and define the job as a
Single Point-> Energy (ground state)
. Repeat this calculation using 1,2,4 and 8 cores.
Tabulate the values into a table. You can calculate the "speedup" by
dividing the 1 core time with N core time. Linear speedup would equal
the number of cores used. A speedup above 1.5 when doubling the number of cores is often considered as reasonable.
cores | walltime | speedup |
---|---|---|
1 | ||
2 | ||
4 | ||
8 |
- Why do the numbers differ?
- Why do these number matter?
- Are these numbers accurate?
- How to get more accurate information?
- What else affects the performance?
Occationally you would like to apply the same model/workflow on a bunch of different structures. An example was the preoptimization followed by an optimization at a higher level that we used for formaldehyde. Such batch jobs can be easily done with TmoleX.
- Create a new project and select
Templates -> New/Edit Template
- Define two job steps corresponding to an AM1 geometry optimization followed by a dft/bp86/sv(p) optimization.
-
Create a batch
New Batch Job
and hitAdd List of SMILES
. In that window add some of the our SMILES strings followed by a name (here the cid number) -
For the batch of molecules
Choose Job Template
->Charge: Use from input
->Apply Job Template
This ends the tutorial.