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

Errors with Vc 1.4.4 in FairSoft jan24 #533

Closed
fuhlig1 opened this issue Mar 8, 2024 · 16 comments
Closed

Errors with Vc 1.4.4 in FairSoft jan24 #533

fuhlig1 opened this issue Mar 8, 2024 · 16 comments

Comments

@fuhlig1
Copy link
Member

fuhlig1 commented Mar 8, 2024

When running the CbmRoot test suite I get the errors with FairSoft jan24. The errors are slightly different for different OSs (see examples below for Debian10 and macosx 13) but the problems are related to tzhe usage of Vc in the CbmRoot code.

Errors on Debian 10

Root > 22/69 Test #11: run_s100h_reco_ts_eb_ideal ............***Failed  Error regular expression found in output. Regex=[segmentation violation] 33.70 sec
/etc/profile.d/slurm.sh: line 3: /cvmfs/vae.gsi.de/vae23/slurm-production.sh: No such file or directory
   ------------------------------------------------------------------
  | Welcome to ROOT 6.30/02                        https://root.cern |
  | (c) 1995-2023, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Mar 08 2024, 08:01:53                 |
  | From tags/v6-30-02@                                              |
  | With c++ (Debian 8.3.0-6) 8.3.0                                  |
  | Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q'  |
   ------------------------------------------------------------------

/etc/profile.d/slurm.sh: line 3: /cvmfs/vae.gsi.de/vae23/slurm-production.sh: No such file or directory

Processing /home/uhlig/containers/home/debian10/software/cbmroot/macro/run/run_reco.C("data/s100h_ts",-1,0,"data/s100h_ts_eb_ideal","Ideal","sis100_hadron","data/s100h_coll")...
In file included from input_line_9:1:
/home/uhlig/containers/home/debian10/software/cbmroot/macro/run/run_reco.C:196:8: warning: 'SetOutputFile' is deprecated [-Wdeprecated-declarations]
  run->SetOutputFile(outFile);
       ^
/tmp/install/fairroot/v18.8.2_jan24/include/FairRun.h:167:7: note: 'SetOutputFile' has been explicitly marked deprecated here
    [[deprecated]] virtual void SetOutputFile(const char* fname);
      ^
In module 'Vc':
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:501:18: error: 'Vc_1::SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>::SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' from module 'Vc' is not present in definition of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' in module 'Vc'
    Vc_INTRINSIC SimdArray(private_init_t, VectorType &&x) : data(std::move(x)) {}
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:154:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray() = default;
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:157:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const SimdArray &) = default;
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:158:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(SimdArray &&) = default;
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:162:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const value_type &a) : data(a) {}
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:163:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(value_type &a) : data(a) {}
                 ^
/tmp/install/fairsoft/jan24/include/Vc/common/simdarray.h:164:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(value_type &&a) : data(a) {}
                 ^

Errors on macosx13

Root >  7/69 Test  #7: run_s100h_reco_ev_ideal ...............***Failed  Error regular expression found in output. Regex=[segmentation violation]  3.53 sec
   ------------------------------------------------------------------
  | Welcome to ROOT 6.30/02                        https://root.cern |
  | (c) 1995-2023, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for macosxarm64 on Mar 06 2024, 11:32:35                   |
  | From tags/v6-30-02@                                              |
  | With Apple clang version 14.0.0 (clang-1400.0.29.202)            |
  | Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q'  |
   ------------------------------------------------------------------


Processing /Users/uhlig/software/fair/cbm/cbmroot_git/macro/run/run_reco.C("data/s100h_ev",-1,0,"data/s100h_eb_eb_ideal","Ideal","sis100_hadron","data/s100h_coll")...
In file included from input_line_9:1:
/Users/uhlig/software/fair/cbm/cbmroot_git/macro/run/run_reco.C:196:8: warning: 'SetOutputFile' is deprecated [-Wdeprecated-declarations]
  run->SetOutputFile(outFile);
       ^
/opt/fairroot/v18.8.2_jan24/include/FairRun.h:167:7: note: 'SetOutputFile' has been explicitly marked deprecated here
    [[deprecated]] virtual void SetOutputFile(const char* fname);
      ^
In module 'Vc':
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:501:18: error: 'Vc_1::SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>::SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' from module 'Vc' is not present in definition of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' in module 'Vc'
    Vc_INTRINSIC SimdArray(private_init_t, VectorType &&x) : data(std::move(x)) {}
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:154:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray() = default;
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:157:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const SimdArray &) = default;
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:158:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(SimdArray &&) = default;
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:162:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const value_type &a) : data(a) {}
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:163:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(value_type &a) : data(a) {}
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:164:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(value_type &&a) : data(a) {}
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:168:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(U a)
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:175:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const SimdArray<U, N, V> &x)
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:181:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const SimdArray<U, N, V> &x)
                 ^
/opt/fairsoft/jan24/include/Vc/common/simdarray.h:188:18: note: declaration of 'SimdArray<type-parameter-0-0, N, type-parameter-0-2, N>' does not match
    Vc_INTRINSIC SimdArray(const SimdArray<U, N, V> &x)

When going back to the previous Vc version 1.4.3 the problems disappear.

Since this is a crucial issue I would propose to release a patch release jan24p1 which uses Vc 1.4.3 as in the last release. Looking at the commits to Vc and the ROOT requirements this should be easily possible.

@dennisklein
Copy link
Member

Have you searched upstream for this issue yet? Both the former and the current ROOT project leaders were involved in the Vc 1.4.4 release. Would be very surprised, if one really has to downgrade Vc with current ROOT?!

@dennisklein
Copy link
Member

Perhaps we should first consider bumping ROOT to 6.30/04?

@dennisklein
Copy link
Member

root-project/root#9594 (comment) have not yet understood it, but here they talk about the same issue? (with Vc 1.4.2)

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 8, 2024

I am not sure if the problem is ROOT related but I will have a look at the linked root issue.

@dennisklein
Copy link
Member

What is the content of $ROOT_INCLUDE_PATH when running the test macros? Can you check whether it includes $SIMPATH/include?

@dennisklein
Copy link
Member

dennisklein commented Mar 8, 2024

Another setting that may fix it, is

FairSoft/cmake/legacy.cmake

Lines 336 to 338 in 803fe3e

if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION GREATER 11)
set(root_runtime_cxxmodules "-Druntime_cxxmodules=OFF")
endif()

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 8, 2024

What is the content of $ROOT_INCLUDE_PATH when running the test macros? Can you check whether it includes $SIMPATH/include?

Yes the path is included. This hasn't changed

export ROOT_INCLUDE_PATH=/tmp/install/fairsoft/jan24/include/TGeant3:/tmp/install/fairroot/v18.8.2_jan24/include

@dennisklein
Copy link
Member

dennisklein commented Mar 8, 2024

We had problems with the runtime_cxxmodules on newer compilers in the past, and decided to disable them on GCC 12+. This is also done unconditionally in

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 8, 2024

Another setting that may fix it, is

FairSoft/cmake/legacy.cmake

Lines 336 to 338 in 803fe3e

if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION GREATER 11)
set(root_runtime_cxxmodules "-Druntime_cxxmodules=OFF")
endif()

I don't think that this is the issue. On one failing system the compiler is gcc 8.3 on the other one it is clang.

@dennisklein
Copy link
Member

I don't think that this is the issue. On one failing system the compiler is gcc 8.3 on the other one it is clang.

See #533 (comment)

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 8, 2024

I will try it later, don't have time yet.

@dennisklein
Copy link
Member

for reference: bf344a9

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 11, 2024

Building ROOT without the runtime CXX modules solves the problem at least for Debian10. Now the CbmRoot test suite runs as expected beside some problems when using Geant4 but this is probably and issue on the CbmRoot side.

Checking Debian11 and macosx is still missing.

@dennisklein
Copy link
Member

What is the content of $ROOT_INCLUDE_PATH when running the test macros? Can you check whether it includes $SIMPATH/include?

Yes the path is included. This hasn't changed

export ROOT_INCLUDE_PATH=/tmp/install/fairsoft/jan24/include/TGeant3:/tmp/install/fairroot/v18.8.2_jan24/include

Hm, no, it's missing? you only have $SIMPATH/include/TGeant3

@fuhlig1
Copy link
Member Author

fuhlig1 commented Mar 12, 2024

You are right, I misread the line. It is $FAIRROOTPATH/include instead of $SIMPATH/include. I will test if $SIMPATH/include solves the issue.

@fuhlig1
Copy link
Member Author

fuhlig1 commented Jul 3, 2024

I close the issue. Disabling the build of the runtime_cxxmodules fixes the issue on all tested systems. This is now the default for FairSoft.

@fuhlig1 fuhlig1 closed this as completed Jul 3, 2024
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

2 participants