Skip to content
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

libint2 compiler broken on windows #235

Open
loriab opened this issue Feb 4, 2022 · 0 comments
Open

libint2 compiler broken on windows #235

loriab opened this issue Feb 4, 2022 · 0 comments

Comments

@loriab
Copy link
Collaborator

loriab commented Feb 4, 2022

To be clear: Linux-generated Libint2 library source compiled and run on Windows (or Linux or Mac) works fine. This issue is about Windows-generated Libint2 library source compiled and run on Windows (or Linux).

The libint2 compiler generates faulty library code when compiler is built and run on windows. A few characteristics:

  • correct number of sources files and identical header contents (copied and generated)
  • some library tests pass, some tests fail
The following tests passed:
	libint2/eritest/build
	libint2/eritest/run2
	libint2/unit/build
	libint2/hf/build
	libint2/hf++/build
	libint2/fortran_example/build
	libint2/fortran_example/run
	libint2/fortran_test/build
	libint2/fortran_test/run

64% tests passed, 5 tests failed out of 14

Total Test time (real) = 281.11 sec

The following tests FAILED:
	  2 - libint2/eritest/run0 (Failed)
	  3 - libint2/eritest/run1 (Failed)
	  6 - libint2/unit/run (Failed)
	  8 - libint2/hf/run (Failed)
	 10 - libint2/hf++/run (Failed)
  • eri subtests with sum(am) < 3 pass
2: Test command: /psi/gits/libint2-efv/tarballs/genWbldL/build-103/tests/eritest-libint2 "0" "2"
2: Test timeout computed to be: 10000000
2: Testing  (ss|ss) : ok
2: Testing  (ss|ps) : ok
2: Testing  (ss|pp) : ok
2: Testing  (ss|ds) : ok
2: Testing  (ss|dp) : Elem 0 di= 0 v=0 : ref = 17.0323 libint = 4.11286 relabs_error = 0.758525 abs_error = 12.9194
2: Elem 10 di= 0 v=0 : ref = -5.11289 libint = 3.81277 relabs_error = 1.74572 abs_error = 8.92566
2: Elem 17 di= 0 v=0 : ref = -4.99392 libint = 14.3628 relabs_error = 3.87606 abs_error = 19.3567
2: failed
2: Testing  (ss|dd) : Elem 0 di= 0 v=0 : ref = 11.2114 libint = 9.69592 relabs_error = 0.13517 abs_error = 1.51543
  • in test 8, the Kinetic energy matrix is wrong by a factor of 2
8: 	Overlap Integrals: OK
8: 	Kinetic-Energy Integrals: 2x too big
8:      58.0064    -0.336022            0  3.20409e-17            0   -0.0168328   -0.0168328
8:    -0.336022      1.61626            0 -1.55656e-17            0     0.141035     0.141035
8:            0            0      2.02298            0            0     0.155231    -0.155231
8:  3.20409e-17 -1.55656e-17            0      2.02298            0      0.12128      0.12128
8:            0            0            0            0      2.02298            0            0
8:   -0.0168328     0.141035     0.155231      0.12128            0      1.52006  -0.00795947
8:   -0.0168328     0.141035    -0.155231      0.12128            0  -0.00795947      1.52006
8: 
8: 	Nuclear Attraction Integrals: OK
  • one can see the same errors whether Windows-generated library source is built on Windows or Linux
  • kinetic ints source files have different numbers of flops and missing lines
> grep flops L/src/_kinetic_D_P_prereq.cc  
/** Number of flops = 334 */
> grep flops W/src/_kinetic_D_P_prereq.cc  
/** Number of flops = 331 */
> grep inteval L/src/_kinetic_D_P_prereq.cc  | grep alpha
fp93 = 5.0000000000000000e-01 * inteval->two_alpha0_bra[vi];
fp92 = fp93 * inteval->two_alpha0_ket[vi];
fp90 = 1.0000000000000000e+00 * inteval->two_alpha0_ket[vi];
fp79 = 5.0000000000000000e-01 * inteval->two_alpha0_ket[vi];
> grep inteval W/src/_kinetic_D_P_prereq.cc  | grep alpha
fp92 = 5.0000000000000000e-01 * inteval->two_alpha0_bra[vi];
fp89 = 1.0000000000000000e+00 * inteval->two_alpha0_ket[vi];
fp91 = fp92 * inteval->two_alpha0_ket[vi];

Granted, fixing this isn't high priority, since, afaik, (number of ppl wanting ERI) * (fraction of those building the library) * (fraction of those needing to generate the library from compiler src) * (fraction of those needing to do it on Windows) = 0. So this issue is for the record, and in case a solution is apparent to EFV. If anyone wants to play with Windows generated library source tarballs, they are downloadable from the GH Actions tab run for #233 (diff -Z for comparison against linux, or run the src through dos2unix).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant