New Major BerkeleyGW-4.0 Release

275 views
Skip to first unread message

Mauro Del Ben

unread,
Mar 19, 2024, 8:12:56 PM3/19/24
to BerkeleyGW Help

Dear All, 

 

We are happy to announce the major 4.0 release of the BerkeleyGW software package using the GW and GW plus Bethe-Salpeter equation (GW-BSE) approaches and beyond for the ab-initio computation of quasiparticle excitations and optical responses of materials. BerkeleyGW is a versatile, massively parallel, GPU-enabled, modular software package based on quantum many-body perturbation theory. Whether you are investigating bulk crystals, clusters, or 2D/1D materials, BerkeleyGW caters to your needs, adapting to different dimensionalities and to insulating, metallic, and semi-metallic systems. 

 

Our latest release includes new methods and algorithms to significantly speed up calculations, supports a wider range of GPUs, implements novel approaches to study new physical phenomena, and interfaces with more external tools to increase researcher usability and productivity. 


The source code is available at https://berkeleygw.org/download/ and distributed under a permissive free software license. 


Below are some highlights of the new features included in the 4.0 release: 

  • Full GPU acceleration for the entire GW and GW-BSE workflow using portable programming models, supporting NVIDIA, AMD, and Intel GPUs. 
  • Stochastic pseudoband methods and tools to accelerate convergence with respect to empty states. Efficient implementation in the parabands code. 
  • Portable GPU implementation of the epsilon full-frequency static subspace approximation, including the capability to evaluate the RPA correlation energy. 
  • New implementation in the epsilon code to overcome the cubic scaling memory bottleneck (NV-block algorithm). 
  • Implementation of the partial occupations for efficient treatment of metallic systems. 
  • Patched sampling method to accelerate the convergence of exciton binding energies and wavefunctions with respect to k-point sampling. 
  • Capability to include external screening (such as those from a substrate or liquid environment) to that of the intrinsic material electronic one calculated by BerkeleyGW. 
  • Interface to the PRIMME library including GPU offload of the BSE's matvec driver for efficient iterative diagonalization. 
  • New tools, such as interfacing to the Wannier90 code, analyzing circularly polarized optical properties, exciton-phonon coupling, and performing wavefunction self-consistent calculations. 
  • Improved documentation (http://manual.berkeleygw.org/4.0/) and testing for new and existing features, as well as expanded set of examples (https://github.com/BerkeleyGW/BerkeleyGW-examples).

Sincerely, 

The BerkeleyGW Development Team  

Amos Afugu

unread,
Mar 24, 2024, 6:32:02 PM3/24/24
to BerkeleyGW Help, mde...@lbl.gov

I have compiled its on NERCS using GPU modules but i still get an error when I am running epsilon calculations.
I have added my make file and the error AND NEEDS HELP.


srun: error: nid001829: task 0: floating point exception berkeley gw

# arch.mk for BerkeleyGW codes

#

# suitable for Cori-GPU

#

# MDB

# 2021, NERSC

# PGI compiler

#

# Do:

# module purge ; module load cgpu ;  module load nvhpc/21.3 ; module load cuda/11.2.2 ; module load openmpi/4.0.3

#

COMPFLAG  = -DPGI

PARAFLAG  = -DMPI  -DOMP

MATHFLAG  = -DUSESCALAPACK -DUNPACKED -DUSEFFTW3 -DHDF5 -DOPENACC


FCPP    = /usr/bin/cpp  -P -ansi  -nostdinc  -C  -E  -std=c11

F90free = ftn -Mfree -acc -mp -target-accel=nvidia80 -gpu=cc80 -Mcuda=cuda11.7 -Mcudalib=cublas,cufft -Mcuda=lineinfo -traceback -Minfo=mp

LINK    = ftn        -acc -mp -target-accel=nvidia80 -gpu=cc80 -Mcuda=cuda11.7 -Mcudalib=cublas,cufft -Minfo=mp

FOPTS   = -fast -Mfree -Mlarge_arrays

FNOOPTS = $(FOPTS)

#MOD_OPT =  -J

MOD_OPT = -module

INCFLAG = -I


C_PARAFLAG  = -DPARA -DMPICH_IGNORE_CXX_SEEK

CC_COMP = CC

C_COMP  = cc

C_LINK  = CC

C_OPTS  = -fast -mp

C_DEBUGFLAG =


REMOVE  = /bin/rm -f


MKLLIB = /global/homes/a/aafugu/BGW-all-files/intel/oneapi/mkl/2021.4.0/lib/intel64

MKLINC = /global/homes/a/aafugu/BGW-all-files/intel/oneapi/mkl/2021.4.0/include

FFTWLIB      = $(MKLLIB)/libmkl_scalapack_lp64.a -Wl,--start-group $(MKLLIB)/libmkl_cdft_core.a $(MKLLIB)/libmkl_intel_lp64.a $(MKLLIB)/libmkl_pgi_thread.a $(MKLLIB)/libmkl_core.a $(MKLLIB)/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group -pgf90libs -mp -lpthread -lm -ldl

FFTWINCLUDE  = $(MKLINC)/fftw $(MKLINC) $(MKLINC)/intel64

PERFORMANCE  =


HDF5_LDIR    = /global/homes/a/aafugu/BGW-all-files/hdf5-1.10.7-GPU/build/lib

HDF5INCLUDE  = /global/homes/a/aafugu/BGW-all-files/hdf5-1.10.7-GPU/build/include

HDF5LIB      =  $(HDF5_LDIR)/libhdf5hl_fortran.a \

                $(HDF5_LDIR)/libhdf5_hl.a \

                $(HDF5_LDIR)/libhdf5_fortran.a \

                $(HDF5_LDIR)/libhdf5.a -lz -ldl





Mauro Del Ben

unread,
Mar 25, 2024, 4:47:04 PM3/25/24
to Amos Afugu, BerkeleyGW Help
Hi Amos,

You are using an old arch.mk, use for example the one in config/perlmutter.nvhpc.gpu.nersc.gov.mk 

Best

-M

Reply all
Reply to author
Forward
0 new messages