-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pw2qmcpack.x gives segmentation error for converting DFT+U+V wavefunctions #5244
Comments
This is a very strange problem because the converter pw2qmcpack does not know anything about the functional that is being used. It merely collects the already computed wavefunctions and writes them out in our format. I was not able to reproduce this problem on a 2x24 core server with a GCC14 build of QE7.4 using the U=2 V=4 inputs. Other than reducing the scf convergence threshold in the scf run for speed, I kept the other files the same. pw.x was run with 48 MPI tasks and OMP_NUM_THREADS=1. pw2qmcpack.x worked successfully with 1, 48 or even 128 tasks, generating a 13GiB pwscf.pwscf.h5 file. Note that the 1 task runs were actually the fastest (17 seconds). Interestingly your conv.out has some text from routine gamma_only, that I do not get:
Suggestions for things to try:
In all cases double check the directories are appropriately clean. If this doesn't work we might try different compilers and libraries. I do wonder if there is an "off by 1" kind of memory error associated with (say) HDF5 usage that has been lurking. However this would not explain why your DFT runs are OK but DFT+U+V are not. |
Thank you Paul, for rerunning my issue and your detailed response. With your suggestion, I built the OpenMP version of QE 7.4 and it seems that the problem is resolved with it. I tested it on ORNL-Baseline using the same scripts and modules used in the files I shared. I noticed that in the SCF calculations, using the non-OpenMPI version, when DFT+U+V calculations are ran, the wavefunctions and the charge densities are written with the .dat format, whereas for the DFT+U calculations, they are written in the .hdf5 format. pw2qmcpack requires the HDF5 library enabled in QE, so I don't understand why the DFT+U+V wavefunctions are written in .dat format with the non-OpenMPI build. If pw2qmcpack terminates because of the missing h5 files, it would be better if it could report it to the user rather than giving segmentation error.
|
Good news, but strange! |
I moved all the
|
On my system, hiding either the charge-density.hdf5 or some of the wfc files results in an appropriate error. I think we can close this issue and re-evaluate if anyone else runs into troubles. |
Describe the bug
Using QE 7.4, pw2qmcpack.x executable gives segmentation error when it tries to convert DFT+U+V wavefunctions. Using the identical procedure and settings (SCF, NSCF, pw2qmcpack.x) DFT+U wave functions are converted with no issues.
pw2qmcpack.x is part of QE right now, but I guess @ye-luo is the only person maintaining it, so I am posting it here.
To Reproduce
Steps to reproduce the behavior:
I tested it on two computers. Please see the attached files for reproducing the issue. If you like to have the wavefunctions, please contact me I will transfer them to a suitable location for you.
dft_uv_io.zip
ORNL-Baseline:
NERSC Perlmutter (using compilation script that @aannabe provided):
module load cray-hdf5-parallel/1.12.2.9
module load cray-fftw
module load cmake
module list
export HDF5_ROOT=$HDF5_DIR
export HDF5_LIBRARIES=$HDF5_DIR/lib
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
3. cmake -DCMAKE_C_COMPILER=cc -DCMAKE_Fortran_COMPILER=ftn -DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment -DQE_ENABLE_PLUGINS=pw2qmcpack -DQE_ENABLE_HDF5=ON ..
Expected behavior
Execution of pw2qmcpack.x should not depend on the functional used in QE.
System:
The text was updated successfully, but these errors were encountered: