NOTE: This tutorial page is set up for the Benasque TDDFT school 2018.
- Your instructors: David Strubbe and Adriel González.
- Test your knowledge with a quiz!
Interacting with Cori
- To log in, run
ssh trainXXX@cori.nersc.govin your terminal, substituting the actual name of your training account for
- Be aware that since this machine is far away, running X-Windows programs will be very slow.
- For visualization with XCrySDen or other tools, installing and running on your laptop is recommended.
- We submit jobs using the SLURM queue manager, using a "reservation" for Aug 22 (benasque2018_1), 23 (benasque2018_2), and 24 (benasque2018_3). The reservations are usable from 15:00 to 19:00 each day. If you want to run outside of these times, use the debug queue. The tutorials are designed to be run using an "interactive job", in which you have a node continually available for your use and then executables launched from the command line are run immediately. Start an interactive job like this (do not submit more than one):
salloc -N 1 -q regular --reservation=benasque2018_2 -t 03:00:00 -C haswell
If you are using the debug queue rather than a reservation, use this:
salloc -N 1 -q debug -t 00:30:00 -C haswell
- Here is an example script using 32 cores. If you are using an interactive job, don't use this.
#!/bin/bash #SBATCH -J test_pulpo #SBATCH -N 1 #SBATCH -C haswell #SBATCH -p debug #SBATCH -t 00:30:00 #SBATCH --export=ALL module load octopus/8.2 srun -n 32 octopus &> output
- To copy files from Cori to your local machine, in a terminal on your local machine, write
scp trainXXX@cori.nersc.gov:FULL_PATH_TO_YOUR_FILE .(filling in the username and filename) and enter your password when prompted. For very small ASCII files, you may find cut and paste more convenient.
- To see if you have jobs running, do
squeue -u trainXXX. You should not have more than one in the queue; if you do, cancel them with
scancel JOBID, filling in the number for JOBID from the output of
- Accounts will expire on September 11. Feel free to copy the files off the machine before that to somewhere else for your future reference.
Documentation and resources
- Octopus variable reference
- BerkeleyGW manual for version 1.2.0
- Lecture: Practical calculations with the GW approximation and Bethe-Salpeter equation in BerkeleyGW
- Lecture: Practical BSE Calculations with BerkeleyGW + Octopus
- BerkeleyGW implementation paper on arxiv
- More extensive lecture slides and other examples from a longer tutorial devoted solely to BerkeleyGW in January 2018
- slides on developing an interface for a new DFT code
The first time you log in, execute these lines which will help you see color-coding for what is a link, executable, or directory:
echo 'alias ls="ls --color"' >> ~/.bashrc.ext . ~/.bashrc
Each time you log in, you should do this:
# Load modules module load berkeleygw/1.2
# Go to the scratch directory, where all runs should happen. cd $SCRATCH
To begin with the examples,
# List all examples available ls /project/projectdirs/mp149/Benasque2018
# Copy 1-boron_nitride example to your directory cp -R /project/projectdirs/mp149/Benasque2018/1-boron_nitride .
# Go to your local folder and follow instructions cd 1-boron_nitride less README
- Day 1
- 1-boron_nitride, GW
- 2-benzene, GW
- Day 2
- 2-benzene, Bethe-Salpeter
- 3-xct_LiCl, exciton visualization (download here or from Cori, unpack the archive with "unzip", and follow README)
- 4-silicon, Bethe-Salpeter
- Day 3 (optional)
- Stretch goals from 2-benzene
- Any of the plane-wave BerkeleyGW examples, on Cori at
/project/projectdirs/mp149/BGW-2018/: silicon with PARATEC; boron nitride sheet, benzene, or sodium with Quantum ESPRESSO.
1-boron_nitride/1-mf/2.1-epsilon, the reference to
./02-calculate_wfn.qsub, and you should run
01-get_kgrid.shfirst and look at the input and output files.
- In the output of
kgrid.x, in the
KPointsGridblock, the value for a small q-shift is not quite right, and should be divided by the number of k-points in that direction. The value given in the Octopus input files is the correct one.
1-boron_nitride/2-bgw/1-epsilon, the script
./01-run_epsilon.qsubshould have "32" rather than "48" in the execution line, or you will get some OMP errors.
1-boron_nitride/2-bgw/2-sigma, the script
./01-run_sigma.qsubshould have "32" rather than "48" in the execution line, or you will get some OMP errors.