key4hep / key4hep-spack

A Spack recipe repository of Key4hep software.
10 stars 24 forks source link

Sherpa's makelibs fails to compile #575

Closed apricePhy closed 7 months ago

apricePhy commented 8 months ago

Hi,

When attempting to use Sherpa's Amegic I cannot compile the process libraries. Specifically, I get the following error "checking whether the C++ compiler works... no". The compiler Sherpa uses is /spack/lib/spack/env/gcc/g++.

The steps I took are as follows: source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh Sherpa -f Run.txt ./makelibs

Runcard and makelibs output. makelibs.log Run.txt

Cheers, Alan

vvolkl commented 8 months ago

Hi Alan,

yes, that's the 'compiler wrapper', an artifact of our build tool. It's used to abstract away the compiler during the build, but it sometimes breaks the workflow of compiling processes after they were installed. I'll try to properly fix this in the build system, but I can offer a workaround:

After running Sherpa -f Run.txt, replace the compiler wrapper path with the system compiler by running (this assumes alma9, where the actual compiler is in /usr/bin, otherwise check you compiler with which gcc)

sed -i 's;/spack/lib/spack/env/gcc/;/usr/bin/;g' makelibs

Then make sure to pick up autotools from the system:

export PATH=/usr/bin/:$PATH

then you should be able to run ./makelibs successfully.

jmcarcell commented 7 months ago

When using the workarounds, is it normal that Sherpa exits with one? I get this at the end;

Matrix_Element_Handler::Matrix_Element_Handler(): Set pilot run mode to 0.
ME_Generator_Base::SetPSMasses(): Massive PS flavours for Amegic: (c,cb,b,bb,e-,e+,tau-,tau+)
Amegic::Initialize(): Set gauge 1.
Matrix_Element_Handler::BuildProcesses(): Looking for processes IO_Handler::SetFileNameRO: /Process/Amegic/P2_4/2_4__e-__e+__h0[mu-__mu+]__Z[tau-__tau+].col not available.
AMEGIC::Single_Process::Tests for 2_4__e-__e+__h0[mu-__mu+]__Z[tau-__tau+]
   Prepare gauge test and init helicity amplitudes. This may take some time.
In String_Handler::Complete : this may take some time....
AMEGIC::Single_Process::CheckLibraries : Looking for a suitable library. This may take some time.
Library_Loader::LoadLibrary(): Failed to load library 'libProc_P2_4.so'.
AMEGIC::Single_Process::WriteLibrary :
   Library for 2_4__e-__e+__h0[mu-__mu+]__Z[tau-__tau+] has been written, name is 2_4__em__ep__h0Imum__mupI__ZItaum__taupI
 done ( 28 MB, 0s / 0s ).
Sherpa: Matrix_Element_Handler::InitializeProcesses throws normal exit:
   Source code created. Run './makelibs' to compile.
WARNING: You are using an unsupported development branch.
------------------------------------------------------------------------
Please cite the publications listed in 'Sherpa_References.tex'.
  Extract the bibtex list by running 'get_bibtex Sherpa_References.tex'
  or email the file to 'slaclib2@slac.stanford.edu', subject 'generate'.
------------------------------------------------------------------------

and the failure to load libProc_P2_4.so may cause that but that library is called later after ./makelibs. Do you know if this exit code different from zero when calling Sherpa should be ignored @apricePhy?

apricePhy commented 7 months ago

Hi,

This is the correct behaviour. The failure to load library just means sherpa did not find the correct process lib and will write one out. After running “./makelibs; Sherpa ” it should find the process library and continue running.

The "You are using an unsupported development branch” is odd. Which sherpa version is this?

Cheers, Alan

On 11. Apr 2024, at 16:25, Juan Miguel Carceller @.***> wrote:

When using the workarounds, is it normal that Sherpa exits with one? I get this at the end;

Matrix_Element_Handler::Matrix_Element_Handler(): Set pilot run mode to 0. ME_Generator_Base::SetPSMasses(): Massive PS flavours for Amegic: (c,cb,b,bb,e-,e+,tau-,tau+) Amegic::Initialize(): Set gauge 1. Matrix_Element_Handler::BuildProcesses(): Looking for processes IO_Handler::SetFileNameRO: /Process/Amegic/P2_4/2_4e-e+h0[mu-mu+]Z[tau-tau+].col not available. AMEGIC::Single_Process::Tests for 2_4e-e+h0[mu-mu+]Z[tau-tau+] Prepare gauge test and init helicity amplitudes. This may take some time. In String_Handler::Complete : this may take some time.... AMEGIC::Single_Process::CheckLibraries : Looking for a suitable library. This may take some time. Library_Loader::LoadLibrary(): Failed to load library 'libProc_P2_4.so'. AMEGIC::Single_Process::WriteLibrary : Library for 2_4e-e+h0[mu-mu+]Z[tau-tau+] has been written, name is 2_4emeph0ImummupIZItaumtaupI done ( 28 MB, 0s / 0s ). Sherpa: Matrix_Element_Handler::InitializeProcesses throws normal exit: Source code created. Run './makelibs' to compile. WARNING: You are using an unsupported development branch.

Please cite the publications listed in 'Sherpa_References.tex'. Extract the bibtex list by running 'get_bibtex Sherpa_References.tex' or email the file to @.***', subject 'generate'.

and the failure to load libProc_P2_4.so may cause that but that library is called later after ./makelibs. Do you know if this exit code different from zero when calling Sherpa should be ignored @apricePhyhttps://github.com/apricePhy?

— Reply to this email directly, view it on GitHubhttps://github.com/key4hep/key4hep-spack/issues/575#issuecomment-2049817857, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BC3NHSFR4HVKSTSHIDF2PH3Y42MNDAVCNFSM6AAAAABFC42XKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZHAYTOOBVG4. You are receiving this because you were mentioned.Message ID: @.***>

jmcarcell commented 7 months ago

It's version 2.2.15 which seems to be the last one in the 2.x series: https://gitlab.com/sherpa-team/sherpa.git I think this is one that should be used? The 3.0.0beta1 says it's not ready for physics yet: https://gitlab.com/sherpa-team/sherpa/-/releases#sherpa-300beta1 So I also don't know why we get that message.

apricePhy commented 7 months ago

Odd. If the branch is rel-2-2-15 then its fine. For physics studies 2.x is good. The 3.0.0beta1 may be of interest to key4hep because we have changed our build system to cmake and our input cards to yaml. So maybe its good to test the build before the release of sherpa3 which is soonish?

On 12. Apr 2024, at 09:40, Juan Miguel Carceller @.***> wrote:

It's version 2.2.15 which seems to be the last one in the 2.x series: https://gitlab.com/sherpa-team/sherpa.git I think this is one that should be used? The 3.0.0beta1 says it's not ready for physics yet: https://gitlab.com/sherpa-team/sherpa/-/releases#sherpa-300beta1 So I also don't know why we get that message.

— Reply to this email directly, view it on GitHubhttps://github.com/key4hep/key4hep-spack/issues/575#issuecomment-2051193240, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BC3NHSDLEMUGVGCWYM3MGXTY46FVZAVCNFSM6AAAAABFC42XKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJRGE4TGMRUGA. You are receiving this because you were mentioned.Message ID: @.***>

jmcarcell commented 7 months ago

So now this issue should be fixed for both the nightlies and the latest release. The fix in spack is here: https://github.com/spack/spack/pull/43611. Feel free to give it a try and we can close the issue if it works fine. I can add 3.0.0beta1 to the nightlies the next time I build them from scratch. I'm happy to see one less package using autotools :smile:

apricePhy commented 7 months ago

Thanks, I can confirm its fixed for me.