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

Update OS to Ubuntu 24.04 #102

Open
tvami opened this issue Sep 14, 2024 · 10 comments · May be fixed by #103
Open

Update OS to Ubuntu 24.04 #102

tvami opened this issue Sep 14, 2024 · 10 comments · May be fixed by #103
Assignees
Labels
docker Pull requests that update Docker code

Comments

@tvami
Copy link
Member

tvami commented Sep 14, 2024

Is your request related to a problem? Please describe.

As a precursor to #101 we should update the OS in the container
(this also fixes some of the Boost issues we saw recently)

Describe the solution you'd like. What packages do you want installed?

  • Update the OS to 24.04
  • Update ROOT to 6.30.09
@tvami tvami self-assigned this Sep 14, 2024
@tvami
Copy link
Member Author

tvami commented Sep 14, 2024

It seems somewhat obvious how to change this, OTOH it's not obvious at all how we'd test ldmx-sw until it's integrated. @tomeichlersmith ?

@tomeichlersmith
Copy link
Member

See #97

Dependabot attempted the simple option for us and it unfortunately didn't work. ROOT 6.22.08 does not compile with the newer GCC that comes with the Ubuntu 24.04 update. This leaves us with many options but I think two are the most helpful:

  1. Update ROOT as well as the OS (and Python3, and Boost, and ....). This would be a pretty large technical change but would allow us to e.g. require C++20 which is required by ACTS now and get a newer Python and Boost along with the newer compiler.
  2. Build Boost from source. Boost was built from source when the image was Ubuntu 18.04 based and so I don't think it would be too crazy difficult.

(1) also has other questions that could come up

  • Does Pythia6 compile with the newer compiler? (Probably not, we'll need to figure out how to get it compile or force the newer compiler into a legacy-mimicking mode)
  • Does Geant4.10.2.3 compile with the newer compiler? (We already needed to patch it when going to GCC 9 in Ubuntu 22.04, so I wouldn't be surprised if we need to do that again.)
  • What about GENIE and LHAPDF? I have so little experience with them that I have no idea.

All this to say... switching OS and compiler versions has a lot of cascading effects. None of these hurdles are impossible, especially for experienced human compilers, but they would require time to investigate.

@tvami
Copy link
Member Author

tvami commented Sep 16, 2024

Does Pythia6 compile with the newer compiler?

I thought Einar was using Pythia8. Where do we use Pythia6? We really should move away from that for Physics reasons if we do

Update ROOT as well as the OS

Do you have an example on how this was done in the past?

@tomeichlersmith
Copy link
Member

tomeichlersmith commented Sep 16, 2024

Pythia6 is needed for GENIE although last time I heard from @wesketchum GENIE was moved to Pythia8, we just need to move to a newer release of GENIE as well. Edit: @wesketchum 's draft update to GENIE adding Reweight (#79) includes installing Pythia8 which I'm guessing means that (after some testing) Pythia6 could be dropped.

# Needed for GENIE. Needs to be linked with ROOT.

The last OS update did not require a change in ROOT #54 and there wasn't a container before that so this is "new" territory. I don't expect ROOT's serialization to change much when we move to a newer version but it might trigger us to update some of the hacks I've implemented within the Framework (LDMX-Software/ldmx-sw@cfe38da and LDMX-Software/ldmx-sw@5ddc20e).

@tomeichlersmith
Copy link
Member

Why did you choose ROOT 6.30.09? Are you opposed to moving to the latest release whenever we get around to this?

@tvami
Copy link
Member Author

tvami commented Sep 23, 2024

Are you opposed to moving to the latest release

not necessarily against it if it works, I know Chiara just ran into some compatibility issues, but yeah sure I can check first if it works with something newer

@tvami
Copy link
Member Author

tvami commented Sep 24, 2024

@tomeichlersmith do you know what llvmlite is used for? I get this msg

19.06 Collecting llvmlite==0.39.1 (from -r /etc/python_packages.txt (line 7))
19.15   Downloading llvmlite-0.39.1.tar.gz (132 kB)
19.17      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.8/132.8 kB 11.7 MB/s eta 0:00:00
19.21   Preparing metadata (setup.py): started
19.54   Preparing metadata (setup.py): finished with status 'error'
19.54   error: subprocess-exited-with-error
19.54   
19.54   × python setup.py egg_info did not run successfully.
19.54   │ exit code: 1
19.54   ╰─> [8 lines of output]
19.54       Traceback (most recent call last):
19.54         File "<string>", line 2, in <module>
19.54         File "<pip-setuptools-caller>", line 34, in <module>
19.54         File "/tmp/pip-install-9rou24tx/llvmlite_0d42782734874170af7ea3e526020dfc/setup.py", line 55, in <module>
19.54           _guard_py_ver()
19.54         File "/tmp/pip-install-9rou24tx/llvmlite_0d42782734874170af7ea3e526020dfc/setup.py", line 52, in _guard_py_ver
19.54           raise RuntimeError(msg.format(cur_py, min_py, max_py))
19.54       RuntimeError: Cannot install on Python version 3.12.3; only versions >=3.7,<3.11 are supported.
19.54       [end of output]
19.54   
19.54   note: This error originates from a subprocess, and is likely not a problem with pip.
19.54 error: metadata-generation-failed

I'll remove it for now, let's hope we dont need this anymore

@tvami
Copy link
Member Author

tvami commented Sep 24, 2024

Nvm, it's about the versioning, if I dont enforce a given version it works

@tomeichlersmith
Copy link
Member

(llvmlite is a python binding of llvm so that numba can (partially) compile code before evaluating it to achieve some performance improvements)

@tvami tvami linked a pull request Sep 26, 2024 that will close this issue
4 tasks
@bryngemark
Copy link
Contributor

hi @tvami, @tomeichlersmith, after discussion with tom yesterday in the sw dev meeting i checked, and RNTuple and RDataFrame are available in v6.32.00

so with this update we should be able to investigate moving from TTrees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docker Pull requests that update Docker code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants