[gpaw-users] What to use spectral parallelization instead of over the kpoints when calculating the response function

Anders Hellman ahell at chalmers.se
Wed Nov 9 19:15:53 CET 2011


Dear GPAW-users,

I am trying to calculate the response function, however, I think I am hitting some memory limit and would like to parallelice over the spectral function. I introduce the kcommsize, but when ever the kcommsize is set to a number below the number of cores I get the following error massage;

  File "run.py", line 42, in ?
    df.get_macroscopic_dielectric_constant()
  File "/lap/gpaw/0.8.0.8092/lib64/python2.4/site-packages/gpaw/response/df.py", line 281, in get_macroscopic_dielectric_constant
    df1, df2 = self.get_dielectric_function(xc=xc)
  File "/lap/gpaw/0.8.0.8092/lib64/python2.4/site-packages/gpaw/response/df.py", line 134, in get_dielectric_function
    dm_wGG = self.get_dielectric_matrix(xc=xc)
  File "/lap/gpaw/0.8.0.8092/lib64/python2.4/site-packages/gpaw/response/df.py", line 47, in get_dielectric_matrix
    self.initialize()
  File "/lap/gpaw/0.8.0.8092/lib64/python2.4/site-packages/gpaw/response/chi.py", line 119, in initialize
    self.parallel_init()
  File "/lap/gpaw/0.8.0.8092/lib64/python2.4/site-packages/gpaw/response/chi.py", line 447, in parallel_init
    assert self.Nw % (size / self.kcomm.size) == 0
 

When kcommsize is above number of cores the calculation runs but now it is parallel over the kpoint, and I hit the memory limit. 

My response function object looks like;

df = DF(calc='out.gpw', q=q, w=w, eta=0.0001, 
        hilbert_trans=False, txt='df_1.out',
        ecut=150, optical_limit=True, kcommsize=1)

What am I doing wrong? Please, any help is very much appreciated. 

Cheers,
Anders
 


More information about the gpaw-users mailing list