You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to build the current QCDLoop git master (2.0.4 as of 2020.01.07 20:27 UTC) on three different machines.
On a Ubuntu 14.04 / x86_64 with g++ 4.8.4, I needed to apply one of:
sed -i -e 's/-fstack-protector-strong/-fstack-protector-all/' CMakeLists.txt
sed -i -e 's/-fstack-protector-strong/-fstack-protector/' CMakeLists.txt
On a CentOS 7 / x86_64 with g++ 4.8.5, I needed to apply:
sed -i -e 's#/usr/lib/gcc/x86_64-linux-gnu/\*#& /usr/lib/gcc/x86_64-redhat-linux/\*#' CMakeLists.txt
Maybe you could add the "/usr/lib/gcc/x86_64-redhat-linux/*" entry to the "PATHS" in the "QUADMATH_LIBRARY" search (in "CMakeLists.txt").
On both above machines, I also needed to apply:
sed -i -e 's/-march=nocona/-march=native/' CMakeLists.txt
sed -i -e 's/-mtune=haswell/-mtune=native/' CMakeLists.txt
No fixes were needed on a Ubuntu 18.04 / x86_64 with g++ 7.4.0.
On all three systems, I used "-DENABLE_FORTRAN_WRAPPER=ON -DENABLE_EXAMPLES=ON" and the available "examples/fortran_test.f" was NOT compiled (only the "examples/*.cc" were compiled).
Maybe you could add building of this Fortran example (when "-DENABLE_FORTRAN_WRAPPER=ON").
While comparing the outputs of all examples, I noticed three differences which seem to be related to the compiler versions.
In the output from "cmass_test", g++ 4.8.4 and g++ 4.8.5 give:
====== Direct Tadpole Integral - complex masses ======
(...)
eps0 (2.25909294845120189876297445152886e+00,0.00000000000000000000000000000000e+00)
while g++ 7.4.0 and g++ 8.3.0 give:
====== Direct Tadpole Integral - complex masses ======
(...)
eps0 (2.25909294845120234285218430159148e+00,0.00000000000000000000000000000000e+00)
In the output from "trigger_test", g++ 4.8.4 and g++ 4.8.5 give:
====== Direct Triangle Integral ======
(...)
eps0 (-1.89593062676125773124979900785547e-01,2.93737402297610280763816206634375e-16)
(...)
====== Auto-Trigger Triangle ======
(...)
eps0 (-1.89593062676125773124979900785547e-01,2.93737402297610280763816206634375e-16)
while g++ 7.4.0 and g++ 8.3.0 give:
====== Direct Triangle Integral ======
(...)
eps0 (-1.89593062676125606591526207012066e-01,3.14718645318868140352729301282103e-16)
(...)
====== Auto-Trigger Triangle ======
(...)
eps0 (-1.89593062676125606591526207012066e-01,3.14718645318868140352729301282103e-16)
The outputs from g++ 7.4.0 and g++ 8.3.0 (these are two different machines with different CPUs) are exactly the same for "-march=nocona -mtune=haswell" and "-march=native -mtune=native" (only the latter can be used for g++ 4.8.4 and g++ 4.8.5). The same machine (and CPU) which runs g++ 4.8.5 runs also g++ 8.3.0.
I do not know which of these values are "correct" and which are not (note that the "real parts" of the above numbers agree up to some 16 decimal digits, so the standard C / C++ "double", while the non-zero "imaginary parts" agree only in the first most significant decimal digit).
Maybe you could add some text files with the expected output for all examples so that one could easily verify all obtained results.
The text was updated successfully, but these errors were encountered:
JacekHoleczek
changed the title
experience with building the current QcdLoop git master (2.0.4)
experience with building the current QCDLoop git master (2.0.4)
Jan 9, 2020
JacekHoleczek
changed the title
experience with building the current QCDLoop git master (2.0.4)
experience with building the current QCDLoop git master (2.0.4 as of 2020.01.07 20:27 UTC)
Jan 9, 2020
Thanks for opening this issue. Concerning the compiler issues, that's correct, the library supports g++ >= 5.
Concerning the correctness of the results, both version are acceptable, I believe the main different are the overloading operators for complex/qcomplex numbers implemented in gcc.
I tried to build the current QCDLoop git master (2.0.4 as of 2020.01.07 20:27 UTC) on three different machines.
On a Ubuntu 14.04 / x86_64 with g++ 4.8.4, I needed to apply one of:
On a CentOS 7 / x86_64 with g++ 4.8.5, I needed to apply:
sed -i -e 's#/usr/lib/gcc/x86_64-linux-gnu/\*#& /usr/lib/gcc/x86_64-redhat-linux/\*#' CMakeLists.txt
Maybe you could add the "
/usr/lib/gcc/x86_64-redhat-linux/*
" entry to the "PATHS" in the "QUADMATH_LIBRARY" search (in "CMakeLists.txt").On both above machines, I also needed to apply:
No fixes were needed on a Ubuntu 18.04 / x86_64 with g++ 7.4.0.
On all three systems, I used "
-DENABLE_FORTRAN_WRAPPER=ON -DENABLE_EXAMPLES=ON
" and the available "examples/fortran_test.f
" was NOT compiled (only the "examples/*.cc
" were compiled).Maybe you could add building of this Fortran example (when "
-DENABLE_FORTRAN_WRAPPER=ON
").While comparing the outputs of all examples, I noticed three differences which seem to be related to the compiler versions.
In the output from "cmass_test", g++ 4.8.4 and g++ 4.8.5 give:
while g++ 7.4.0 and g++ 8.3.0 give:
In the output from "trigger_test", g++ 4.8.4 and g++ 4.8.5 give:
while g++ 7.4.0 and g++ 8.3.0 give:
The outputs from g++ 7.4.0 and g++ 8.3.0 (these are two different machines with different CPUs) are exactly the same for "
-march=nocona -mtune=haswell
" and "-march=native -mtune=native
" (only the latter can be used for g++ 4.8.4 and g++ 4.8.5). The same machine (and CPU) which runs g++ 4.8.5 runs also g++ 8.3.0.I do not know which of these values are "correct" and which are not (note that the "real parts" of the above numbers agree up to some 16 decimal digits, so the standard C / C++ "double", while the non-zero "imaginary parts" agree only in the first most significant decimal digit).
Maybe you could add some text files with the expected output for all examples so that one could easily verify all obtained results.
The text was updated successfully, but these errors were encountered: