Open hongyi-zhao opened 3 months ago
I haven't tried to reproduce this (and the other issue you raised). There seem to be a lot of buggy versions of the intel compilers. I have heard good reports about Intel oneAPI 2024.0.2 (ifort 2021.11.0). So you may wish to switch your compiler.
To summarise, I think this is likely to be a compiler issue - and not the fault of the code. I will leave this issue open for a while, in case there are further reports.
Thank you for pointing this out.
werner@x13dai-t:~/wannier90-3.1.0$ module spider oneapi |& grep '^[ ]*oneapi/'
oneapi/2022.3.0
oneapi/2023.0.0
oneapi/2023.1.0
oneapi/2023.2.0
oneapi/2024.0.1
oneapi/2024.1.0
oneapi/2024.2.0
werner@x13dai-t:~/wannier90-3.1.0$ module load oneapi/2024.2.0
werner@x13dai-t:~/wannier90-3.1.0$ module list
Currently Loaded Modules:
1) lmod 2) oneapi/2024.2.0
werner@x13dai-t:~/wannier90-3.1.0$ ln -s config/make.inc.ifort make.inc
werner@x13dai-t:~/wannier90-3.1.0$ LIBDIR=$MKLROOT/lib/intel64 make F90=ifx MPIF90=mpiifx all -j
werner@x13dai-t:~/wannier90-3.1.0$ LIBDIR=$MKLROOT/lib/intel64 make F90=ifx MPIF90=mpiifx all test-parallel
(cd ./src/obj && make -f ../Makefile.2 serialobjs)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/obj'
make[1]: Nothing to be done for 'serialobjs'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/obj'
(cd ./src/obj && make -f ../Makefile.2 wannier)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/obj'
make[1]: Nothing to be done for 'wannier'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/obj'
(cd ./src/obj && make -f ../Makefile.2 libs)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/obj'
make[1]: Nothing to be done for 'libs'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/obj'
(cd ./src/objp && make -f ../Makefile.2 post)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/objp'
make[1]: Nothing to be done for 'post'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/objp'
(cd ./src/obj && make -f ../Makefile.2 w90chk2chk)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/obj'
make[1]: Nothing to be done for 'w90chk2chk'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/obj'
(cd ./utility/w90pov && make )
make[1]: Entering directory '/home/werner/wannier90-3.1.0/utility/w90pov'
make[1]: 'w90pov' is up to date.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/utility/w90pov'
(cd ./utility/w90vdw && make )
make[1]: Entering directory '/home/werner/wannier90-3.1.0/utility/w90vdw'
make[1]: 'w90vdw.x' is up to date.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/utility/w90vdw'
(cd ./src/obj && make -f ../Makefile.2 w90spn2spn)
make[1]: Entering directory '/home/werner/wannier90-3.1.0/src/obj'
make[1]: Nothing to be done for 'w90spn2spn'.
make[1]: Leaving directory '/home/werner/wannier90-3.1.0/src/obj'
(cd ./test-suite && ./run_tests --category=default --numprocs=4 )
Using executable: /home/werner/wannier90-3.1.0/test-suite/tests/../../postw90.x.
Using executable: /home/werner/wannier90-3.1.0/test-suite/tests/../../wannier90.x.
Test id: 04082024.
Benchmark: default.
tests/partestw90_mpierr - wannier.win: Passed.
tests/testpostw90_boltzwann - silicon.win: Passed.
tests/testpostw90_example04_dos - copper.win: Passed.
tests/testpostw90_example04_pdos - copper.win: Passed.
tests/testpostw90_fe_ahc - Fe.win: Passed.
tests/testpostw90_fe_ahc_adaptandfermi - Fe.win: Passed.
tests/testpostw90_fe_dos_spin - Fe.win: Passed.
tests/testpostw90_fe_kpathcurv - Fe.win: **FAILED**.
bandcurvz
ERROR: relative error 1.22e+02 greater than 1.00e+02. (Test: 5.8531949e-20. Benchmark: 4.7482879e-22.)
tests/testpostw90_fe_kpathmorbcurv - Fe.win: Passed.
tests/testpostw90_fe_kpathmorbcurv_ws - Fe.win: Passed.
tests/testpostw90_fe_kslicecurv - Fe.win: **FAILED**.
bandcurvz
ERROR: relative error 1.22e+02 greater than 1.00e+02. (Test: 5.8531949e-20. Benchmark: 4.7482879e-22.)
bandcurvz
ERROR: relative error 1.15e+02 greater than 1.00e+02. (Test: 5.7252683e-20. Benchmark: 4.914996e-22.)
tests/testpostw90_fe_kslicemorb - Fe.win: Passed.
tests/testpostw90_fe_kubo_Axy - Fe.win: Passed.
tests/testpostw90_fe_kubo_Szz - Fe.win: Passed.
tests/testpostw90_fe_kubo_jdos - Fe.win: Passed.
tests/testpostw90_fe_morb - Fe.win: Passed.
tests/testpostw90_fe_morbandahc - Fe.win: Passed.
tests/testpostw90_fe_spin - Fe.win: Passed.
tests/testpostw90_gaas_kdotp - gaas.win: Passed.
tests/testpostw90_gaas_sc_eta_corr - gaas.win: Passed.
tests/testpostw90_gaas_sc_xyz - gaas.win: Passed.
tests/testpostw90_gaas_sc_xyz_scphase2 - gaas.win: Passed.
tests/testpostw90_gaas_sc_xyz_scphase2_ws - gaas.win: Passed.
tests/testpostw90_gaas_sc_xyz_ws - gaas.win: Passed.
tests/testpostw90_gaas_shc - GaAs.win: Passed.
tests/testpostw90_pt_kpathbandsshc - Pt.win: Passed.
tests/testpostw90_pt_kpathshc - Pt.win: Passed.
tests/testpostw90_pt_ksliceshc - Pt.win: Passed.
tests/testpostw90_pt_shc - Pt.win: Passed.
tests/testpostw90_pt_shc_higher - Pt.win: Passed.
tests/testpostw90_pt_shc_ryoo - Pt.win: Passed.
tests/testpostw90_si_geninterp - silicon.win: Passed.
tests/testpostw90_si_geninterp_wsdistance - silicon.win: Passed.
tests/testpostw90_te_gyrotropic - Te.win: Passed.
tests/testpostw90_te_gyrotropic_C - Te.win: Passed.
tests/testpostw90_te_gyrotropic_D0 - Te.win: Passed.
tests/testpostw90_te_gyrotropic_Dw - Te.win: Passed.
tests/testpostw90_te_gyrotropic_K - Te.win: Passed.
tests/testpostw90_te_gyrotropic_NOA - Te.win: Passed.
tests/testpostw90_te_gyrotropic_dos - Te.win: Passed.
tests/testw90_basic1 - wannier.win: Passed.
tests/testw90_basic2 - wannier.win: Passed.
tests/testw90_benzene_gamma_val - benzene.win: Passed.
tests/testw90_benzene_gamma_val_hexcell - benzene.win: Passed.
tests/testw90_benzene_gamma_valcond - benzene.win: Passed.
tests/testw90_bvec - lead.win: Passed.
tests/testw90_cube_format - gaas.win: Passed.
tests/testw90_disentanglement_sawfs - H3S.win: Passed.
tests/testw90_example01 - gaas.win: Passed.
tests/testw90_example02 - lead.win: Passed.
tests/testw90_example02_restart - lead.win: Passed.
tests/testw90_example03 - silicon.win: Passed.
tests/testw90_example03_bands_plot - silicon.win: Passed.
tests/testw90_example03_labelinfo - silicon.win: Passed.
tests/testw90_example03_optmem - silicon.win: Passed.
tests/testw90_example04 - copper.win: Passed.
tests/testw90_example05 - diamond.win: Passed.
tests/testw90_example07 - silane.win: Passed.
tests/testw90_example11_1 - silicon.win: Passed.
tests/testw90_example11_2 - silicon.win: Passed.
tests/testw90_example21_As_sp - GaAs.win: Passed.
tests/testw90_example26 - gaas.win: Passed.
tests/testw90_gaas_disentanglement_issue192 - gaas.win: Passed.
tests/testw90_graphene_pdwf - graphene.win: Passed.
tests/testw90_knbo3_higher - knbo3.win: Passed.
tests/testw90_lavo3_dissphere - LaVO3.win: Passed.
tests/testw90_na_chain_gamma - Na_chain.win: Passed.
tests/testw90_nnkpt1 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt2 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt3 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt4 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt5 - wannier.win: Passed.
tests/testw90_nnkpt6 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt7 - wannier.win (arg(s): -pp): Passed.
tests/testw90_precond_1 - gaas1.win: Passed.
tests/testw90_precond_2 - gaas2.win: Passed.
tests/testw90_write_u_matrices - gaas.win: Passed.
tests/testw90_write_u_matrices_disent - wannier.win: Passed.
All done. ERROR: only 76 out of 78 tests passed.
Failed tests in:
/home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/testpostw90_fe_kpathcurv/
/home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/testpostw90_fe_kslicecurv/
make: *** [Makefile:203: test-parallel] Error 1
For the v3.1.0 release, the relative errors are even larger:
make[1]: Leaving directory '/home/werner/Public/repo/github.com/wannier-developers/wannier90.git/src/objp'
(cd ./test-suite && ./run_tests --category=default --numprocs=4 )
Using executable: /home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/../../wannier90.x.
Using executable: /home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/../../postw90.x.
Test id: 06082024.
Benchmark: default.
tests/testpostw90_boltzwann - silicon.win: Passed.
tests/testpostw90_example04_dos - copper.win: Passed.
tests/testpostw90_example04_pdos - copper.win: Passed.
tests/testpostw90_fe_ahc - Fe.win: Passed.
tests/testpostw90_fe_ahc_adaptandfermi - Fe.win: Passed.
tests/testpostw90_fe_kpathcurv - Fe.win: **FAILED**.
bandcurvz
ERROR: relative error 1.46e+02 greater than 1.00e+02. (Test: 6.9857961e-20. Benchmark: 4.7482879e-22.)
tests/testpostw90_fe_kpathmorbcurv - Fe.win: Passed.
tests/testpostw90_fe_kslicecurv - Fe.win: **FAILED**.
bandcurvz
ERROR: relative error 1.46e+02 greater than 1.00e+02. (Test: 6.9857961e-20. Benchmark: 4.7482879e-22.)
bandcurvz
ERROR: relative error 1.29e+02 greater than 1.00e+02. (Test: 1.8299959e-19. Benchmark: -1.428806e-21.)
bandcurvz
ERROR: relative error 1.45e+02 greater than 1.00e+02. (Test: 7.1524548e-20. Benchmark: 4.914996e-22.)
tests/testpostw90_fe_kslicemorb - Fe.win: Passed.
tests/testpostw90_fe_kubo_Axy - Fe.win: Passed.
tests/testpostw90_fe_kubo_Szz - Fe.win: Passed.
tests/testpostw90_fe_kubo_jdos - Fe.win: Passed.
tests/testpostw90_fe_morb - Fe.win: Passed.
tests/testpostw90_fe_morbandahc - Fe.win: Passed.
tests/testpostw90_fe_spin - Fe.win: Passed.
tests/testpostw90_gaas_sc_xyz - gaas.win: Passed.
tests/testpostw90_gaas_shc - GaAs.win: Passed.
tests/testpostw90_pt_kpathbandsshc - Pt.win: Passed.
tests/testpostw90_pt_kpathshc - Pt.win: Passed.
tests/testpostw90_pt_ksliceshc - Pt.win: Passed.
tests/testpostw90_pt_shc - Pt.win: Passed.
tests/testpostw90_si_geninterp - silicon.win: Passed.
tests/testpostw90_si_geninterp_wsdistance - silicon.win: Passed.
tests/testpostw90_te_gyrotropic - Te.win: Passed.
tests/testpostw90_te_gyrotropic_C - Te.win: Passed.
tests/testpostw90_te_gyrotropic_D0 - Te.win: Passed.
tests/testpostw90_te_gyrotropic_Dw - Te.win: Passed.
tests/testpostw90_te_gyrotropic_K - Te.win: Passed.
tests/testpostw90_te_gyrotropic_NOA - Te.win: Passed.
tests/testpostw90_te_gyrotropic_dos - Te.win: Passed.
tests/testw90_basic1 - wannier.win: Passed.
tests/testw90_basic2 - wannier.win: Passed.
tests/testw90_benzene_gamma_val - benzene.win: Passed.
tests/testw90_benzene_gamma_val_hexcell - benzene.win: Passed.
tests/testw90_benzene_gamma_valcond - benzene.win: Passed.
tests/testw90_bvec - lead.win: Passed.
tests/testw90_cube_format - gaas.win: Passed.
tests/testw90_disentanglement_sawfs - H3S.win: Passed.
tests/testw90_example01 - gaas.win: Passed.
tests/testw90_example02 - lead.win: Passed.
tests/testw90_example02_restart - lead.win: Passed.
tests/testw90_example03 - silicon.win: Passed.
tests/testw90_example03_labelinfo - silicon.win: Passed.
tests/testw90_example03_optmem - silicon.win: Passed.
tests/testw90_example04 - copper.win: Passed.
tests/testw90_example05 - diamond.win: Passed.
tests/testw90_example07 - silane.win: Passed.
tests/testw90_example11_1 - silicon.win: Passed.
tests/testw90_example11_2 - silicon.win: Passed.
tests/testw90_example21_As_sp - GaAs.win: Passed.
tests/testw90_example26 - gaas.win: Passed.
tests/testw90_gaas_disentanglement_issue192 - gaas.win: Passed.
tests/testw90_lavo3_dissphere - LaVO3.win: Passed.
tests/testw90_na_chain_gamma - Na_chain.win: Passed.
tests/testw90_nnkpt1 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt2 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt3 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt4 - wannier.win (arg(s): -pp): Passed.
tests/testw90_nnkpt5 - wannier.win: Passed.
tests/testw90_precond_1 - gaas1.win: Passed.
tests/testw90_precond_2 - gaas2.win: Passed.
tests/testw90_write_u_matrices - gaas.win: Passed.
All done. ERROR: only 60 out of 62 tests passed.
Failed tests in:
/home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/testpostw90_fe_kpathcurv/
/home/werner/Public/repo/github.com/wannier-developers/wannier90.git/test-suite/tests/testpostw90_fe_kslicecurv/
make: *** [Makefile:189: test-parallel] Error 1
Regards, Zhao
In the failing output, the results are actually all zeros. So I think the code is working fine. The fix would be to update the testing routine to not check relative errors if the value is very small (e.g. <1e-16).
bandcurvz
ERROR: relative error 1.22e+02 greater than 1.00e+02. (Test: **5.8531949e-20**. Benchmark: **4.7482879e-22**.)
What about changing the following code snippet: https://github.com/wannier-developers/wannier90/blob/dd450c62a0cfd64c34739605a93bfbcdfb0411e0/test-suite/testcode/lib/testcode2/validation.py#L196-L199
into the following:
if abs(benchmark_val) < 1e-16 and abs(test_val) < 1e-16:
err = 0
elif abs(benchmark_val) < 1e-16:
err = float("Inf")
On Ubuntu 22.04.4 LTS, I tried to compile the wannier90
v3.1.0
release with intel oneapi 2023.2.0 and I noticed that there are most parallel benchmark tests failed, as shown below:Any hints/comments on this issue will be helpful.
See https://github.com/wannier-developers/wannier90/issues/512 for the related discussion.
Regards, Zhao