TPA stops at the NL Start

Questions and doubts about features of non linear optic in Yambo (yamb_nl)

Moderators: Davide Sangalli, claudio, myrta gruning

Post Reply
User avatar
jasonhan0710
Posts: 63
Joined: Wed Dec 23, 2020 6:48 am
Location: China

TPA stops at the NL Start

Post by jasonhan0710 » Sun Dec 08, 2024 4:55 am

Dear Yambo developers,

I have calculated the two photon absorption in the monoclinic semiconductors. However, the calculation stops at the [06] NL Start and Restart and there is no error information. Can you please help me figure this problem out?

The LOG file reports

Code: Select all

 <02m-47s> P1-c1: [PARALLEL Non_Linear for Freqs on 16 CPU] Loaded/Total (Percentual):13/200(7%)
 <02m-47s> P1-c1: [PARALLEL Non_Linear for H(ibz) on 4 CPU] Loaded/Total (Percentual):96/385(25%)
 <02m-47s> P1-c1: [PARALLEL Non_Linear for QPs] Loaded/Total(Percentual):3456/1647030(0%)
 
 (END)
and the REPORT file says

Code: Select all


  The total polarization has module 1 !!
  
(END)
The input file is

Code: Select all

#
nloptics                         # [R] Non-linear spectroscopy
NLogCPUs=1                       # [PARALLEL] Live-timing CPU`s (0 for all)
PAR_def_mode= "balanced"         # [PARALLEL] Default distribution mode ("balanced"/"memory"/"workload"/"KQmemory")
NL_CPU= "16 4"                       # [PARALLEL] CPUs for each role
NL_ROLEs= "w k"                     # [PARALLEL] CPUs roles (w,k)
DIP_CPU= "4 4 4"                      # [PARALLEL] CPUs for each role
DIP_ROLEs= "k c v"                    # [PARALLEL] CPUs roles (k,c,v)
DIP_Threads=16                    # [OPENMP/X] Number of threads for dipoles
NL_Threads=16                     # [OPENMP/NL] Number of threads for nl-optics
FFTGvecs= 8003            RL    # [FFT] Plane-waves
% NLBands
   85 | 92 |                         # [NL] Bands range
%
NLverbosity= "high"              # [NL] Verbosity level (low | high)
NLtime=60.000000           fs    # [NL] Simulation Time
NLstep= 0.00100           fs    # [NL] Time step length
NLintegrator= "INVINT"           # [NL] Integrator ("EULEREXP/RK2/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
NLCorrelation= "IPA"             # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/LRW/JGM/SEX")
NLLrcAlpha= 0.000000             # [NL] Long Range Correction
% NLEnRange
1.000000 |9.000000 |         eV    # [NL] Energy range
%
NLEnSteps= 200                     # [NL] Energy steps
NLDamping= 0.100000        eV    # [NL] Damping (or dephasing)
RADLifeTime=-1.000000      fs    # [RT] Radiative life-time (if negative Yambo sets it equal to Phase_LifeTime in NL)
#EvalCurrent                   # [NL] Evaluate the current
#FrPolPerdic                   # [DIP] Force periodicity of polarization respect to the external field
HARRLvcs= 1000           mRy    # [HA] Hartree     RL components
EXXRLvcs= 1000           mRy    # [XX] Exchange    RL components
GfnQPdb= "E < ./GW/ndb.QP"                  # [EXTQP G] Database action
GfnQP_INTERP_NN= 1               # [EXTQP G] Interpolation neighbours (NN mode)
GfnQP_INTERP_shells= 50.00000    # [EXTQP G] Interpolation shells (BOLTZ mode)
GfnQP_DbGd_INTERP_mode= "BOLTZ"     # [EXTQP G] Interpolation DbGd mode
% GfnQP_E
 0.000000 | 1.000000 | 1.000000 |        # [EXTQP G] E parameters  (c/v) eV|adim|adim
%
GfnQP_Z= ( 1.000000 , 0.000000 )         # [EXTQP G] Z factor  (c/v)
GfnQP_Wv_E= 0.000000       eV    # [EXTQP G] W Energy reference  (valence)
% GfnQP_Wv
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP G] W parameters  (valence) eV| 1|eV^-1
%
GfnQP_Wv_dos= 0.000000     eV    # [EXTQP G] W dos pre-factor  (valence)
GfnQP_Wc_E= 0.000000       eV    # [EXTQP G] W Energy reference  (conduction)
% GfnQP_Wc
 0.000000 | 0.000000 | 0.000000 |        # [EXTQP G] W parameters  (conduction) eV| 1 |eV^-1
%
GfnQP_Wc_dos= 0.000000     eV    # [EXTQP G] W dos pre-factor  (conduction)
% Field1_Freq
 0.100000 | 0.100000 |         eV    # [RT Field1] Frequency
%
Field1_NFreqs= 1                 # [RT Field1] Frequency
Field1_Int=  5.0E+4       kWLm2 # [RT Field1] Intensity
Field1_Width= 0.000000     fs    # [RT Field1] Width
Field1_kind= "SIN"           # [RT Field1] Kind(SIN|COS|RES|ANTIRES|GAUSS|DELTA|QSSIN)
Field1_pol= "linear"             # [RT Field1] Pol(linear|circular)
% Field1_Dir
 1.000000 | 1.000000 | 0.000000 |        # [RT Field1] Versor
%
Field1_Tstart= 0.001000    fs    # [RT Field1] Initial Time
Best,
Jason
Jason Han

Assistant Professor
Department of Physics
National University of Defense Technology
Hunan, China

User avatar
claudio
Posts: 526
Joined: Tue Mar 31, 2009 11:33 pm
Location: Marseille
Contact:

Re: TPA stops at the NL Start

Post by claudio » Tue Dec 10, 2024 10:09 am

Dear Jason

how big is your system?
try to put all parallelization on frequencies, and reduce threads
something like

DIP_Threads=1 # [OPENMP/X] Number of threads for dipoles
NL_Threads=1 # [OPENMP/NL] Number of threads for nl-optics
NL_CPU= "64 1" # [PARALLEL] CPUs for each role
NL_ROLEs= "w k" # [PARALLEL] CPUs roles (w,k)
...
NLEnSteps= 192 # [NL] Energy steps

to be more efficient you can make NLEnSteps a a multiple number of the parallelization on frequencies 192=64*3

best
Claudio
Claudio Attaccalite
[CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
Campus de Luminy – Case 913
13288 MARSEILLE Cedex 09
web site: http://www.attaccalite.com

User avatar
jasonhan0710
Posts: 63
Joined: Wed Dec 23, 2020 6:48 am
Location: China

Re: TPA stops at the NL Start

Post by jasonhan0710 » Thu Dec 12, 2024 4:24 am

Dear Claudio,

Thank you for your quick reply! The code runs well after the "threads" are reduced to 1.

When I checked the memory I found that one yambo_nl process only uses approximately 1.5GB, which takes only 0.6% of the total memory of one node. It seems that it is not the memory issue. I used to treat "threads" as the OpenMP threads. But I am not sure why OpenMP did not work at this place. Would you please tell me what is the meaning of the "threads"?

Best,
Jason
Jason Han

Assistant Professor
Department of Physics
National University of Defense Technology
Hunan, China

User avatar
claudio
Posts: 526
Joined: Tue Mar 31, 2009 11:33 pm
Location: Marseille
Contact:

Re: TPA stops at the NL Start

Post by claudio » Thu Dec 12, 2024 9:54 am

Dear Jason

in general the parallelization on threads is quite inefficient, you can use them
but just 2 or 4 not more.
If you use too many the code get stuck.
In general I use threads when I need more memory

best
Claudio
Claudio Attaccalite
[CNRS/ Aix-Marseille Université/ CINaM laborarory / TSN department
Campus de Luminy – Case 913
13288 MARSEILLE Cedex 09
web site: http://www.attaccalite.com

Post Reply