GW PARALLEL

Run-time issues concerning Yambo that are not covered in the above forums.

Moderators: myrta gruning, andrea marini, Daniele Varsano, Conor Hogan

Post Reply
xjxiao
Posts: 47
Joined: Sat Jan 11, 2025 6:30 pm

GW PARALLEL

Post by xjxiao » Mon Feb 24, 2025 11:20 am

Dear all,
I am very confused about how to set the parallel parameters in GW calculations and would greatly appreciate your help! I am using a CPU account on the supercomputer, with each node having 64 cores and 256 GB of memory, and I can call multiple nodes simultaneously. The run script is as follows:

#!/bin/bash
#SBATCH -p amd_256
#SBATCH -N 1
module purge
module load mpi/intel/17.0.7-thc
mpirun -np 48 /public1/home/scb3034/soft/yambo/yambo-5.1.1-2/yambo-5.1.1/bin/yambo -F gw.in -J gw

How should I set the following parameters?

DIP_CPU= "1 $ngpu 1" # [PARALLEL] CPUs for each role
DIP_ROLEs= "k c v" # [PARALLEL] CPUs roles (k,c,v)
DIP_Threads= 0 # [OPENMP/X] Number of threads for dipoles
X_and_IO_CPU= "1 1 1 $ngpu 1" # [PARALLEL] CPUs for each role
X_and_IO_ROLEs= "q g k c v" # [PARALLEL] CPUs roles (q,g,k,c,v)
X_and_IO_nCPU_LinAlg_INV=1 # [PARALLEL] CPUs for Linear Algebra (if -1 it is automatically set)
X_Threads= 0 # [OPENMP/X] Number of threads for response functions
SE_CPU= "1 $ngpu 1" # [PARALLEL] CPUs for each role
SE_ROLEs= "q qp b" # [PARALLEL] CPUs roles (q,qp,b)
SE_Threads= 0 # [OPENMP/GW] Number of threads for self-energy

I have made some initial settings . Are they reasonable?

Thanks!

Yours,
Xiao
Last edited by xjxiao on Mon Feb 24, 2025 11:57 am, edited 1 time in total.
Xiangjun Xiao
Institute of Semiconductors, Chinese Academy of Sciences

User avatar
Daniele Varsano
Posts: 4198
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: GW PARALLEL

Post by Daniele Varsano » Mon Feb 24, 2025 11:30 am

Dear Xiao,

you can follow this tutorial to familiarize with the parallel variable.

https://wiki.yambo-code.eu/wiki/index.p ... n_parallel

If you are using 48 tasks:

Code: Select all

X_and_IO_CPU= "1 1 48 1"                 # [PARALLEL] CPUs for each role
X_and_IO_ROLEs= "q k c v"    

SE_CPU= "1 1 48"                       # [PARALLEL] CPUs for each role
SE_ROLEs= "q qp b"         
this is a reasonable choice, or you can also assign:

Code: Select all

X_and_IO_CPU= "1 1 24 2"                 # [PARALLEL] CPUs for each role
X_and_IO_ROLEs= "q k c v"    

SE_CPU= "1 2 24"                       # [PARALLEL] CPUs for each role
SE_ROLEs= "q qp b"         
The product of the CPUs should match the number of used mpi tasks.

Please note that the assignment below is not reasonable. You are asking for calculating 3864 gw corrections: this will take a lot of time and resources, and it is not useful as generally you want to look at few bands across the gap.

Code: Select all

%QPkrange                        # [GW] QP generalized Kpoint/Band indices
1|84|1|46|
%
Best,

Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

Post Reply