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

FUSE and GACODE compatibility on Omega #805

Open
bclyons12 opened this issue Jan 28, 2025 · 6 comments
Open

FUSE and GACODE compatibility on Omega #805

bclyons12 opened this issue Jan 28, 2025 · 6 comments

Comments

@bclyons12
Copy link
Member

Continuing a discussion from #804, where it was noted that the FUSE installation on Omega is incompatible with the atom/2022.17 module used to access GACODE.

  • @bclyons12 had suggested rebuilding GACODE with a more modern compiler to get around this.
  • @jcandy replied

    This is something we should discuss. I think it is important for FUSE to "coexist peacefully" with other software, specifically GACODE. I am happy to do what I can to make this happen. One downfall of OMFIT is that it over-engineers/hacks the software environment. I think FUSE should use something like numpy or scipy or DASH as models of peaceful coexistence. All these tools coexist peacefully with the entire software stack via pip. Is the idea that FUSE will install as a Julia package?

    I also do not endorse the current GACODE module approach. Is FUSE going to be non-portable like OMFIT?

    Also, isn't gcc/13.x the default on OMEGA? It looks like the gcc environments don't come with MPI. @smithsp can you build openmpi for whatever gcc environment people are using?

@bclyons12
Copy link
Member Author

@jcandy Thanks for the thoughts. Here are a few comments.

  1. The current default on Omega is gcc/8.x, which is what GACODE is compiled with. This is the only compiler module I've found that Julia conflicts with, as gcc/8.x modifies the LD_LIBRARY_PATH to include some libraries that don't play nicely with Julia. Point 2 below takes care of this anyway, but we could fix it two other ways:
    1. Hack: Launch Julia with LD_LIBRARY_PATH="" julia
    2. Actual Solution: Build Julia ourselves for each compiler environment instead of using the generic binaries. This would make sure that everything links in a compatible way.
  2. Yes, for the foreseeable future, FUSE will be installed as a Julia package, and then we'll compile sysimages alongside of that to speed up usage.
  3. Julia (installed from the binaries) doesn't need any compiler, but I need one to compile the FUSE sysimage. I used gcc/11.x which was recommended to me by CSS as more modern and well-tested. I could easily redo that with another compiler if desired, just not gcc/8.x. I was told that the gcc/13.x environment was still in testing on Omega, but that was a few months back.
  4. My understanding is that one generally shouldn't load a compiler module directly, but use one of the env modules. Some of those do have versions that are compiled with MPI:
   env/gcc8.x-pgf20.11 (D)    env/gcc11.x           env/nvhpc23.11
   env/gcc8.x                 env/intel2020         env/pgf20.11
   env/gcc11.x-mpi            env/nvhpc23.11-mpi

@bclyons12
Copy link
Member Author

Making @orso82 and @ModestMC aware

@jcandy
Copy link

jcandy commented Jan 28, 2025

OMEGA is not a correct platform file. The official build is OMEGA_INTEL. There is no corresponding env.OMEGA file. What MPI is being used by the OMEGA build?

@orso82
Copy link
Member

orso82 commented Jan 28, 2025

@bclyons12 what you describe as a hack, should be the solution!! :)
The default environment should not load anything, and leave LD_LIBRARY_PATH empty!

@jcandy
Copy link

jcandy commented Jan 28, 2025

I agree 100% with Orso. Being too "clever" with the default environment is a curse.

@orso82
Copy link
Member

orso82 commented Jan 29, 2025

@bclyons12 I tried using the jupyter lab install that comes with the fuse module on omega, and it looks like it may be missing something that makes the right-click context menu on a cell be have the buttons one would expect.

On my laptop:

Image
jupyter --version
Selected Jupyter core packages...
IPython          : 8.5.0
ipykernel        : 6.16.2
ipywidgets       : not installed
jupyter_client   : 7.4.4
jupyter_core     : 4.11.1
jupyter_server   : 1.21.0
jupyterlab       : 3.5.0
nbclient         : 0.7.0
nbconvert        : 7.2.3
nbformat         : 5.7.0
notebook         : 6.5.1
qtconsole        : not installed
traitlets        : 5.5.0

on omega:

Image

jupyter --version
Selected Jupyter core packages...
IPython          : 8.31.0
ipykernel        : 6.29.5
ipywidgets       : not installed
jupyter_client   : 8.6.3
jupyter_core     : 5.7.2
jupyter_server   : 2.15.0
jupyterlab       : 4.3.4
nbclient         : 0.10.2
nbconvert        : 7.16.5
nbformat         : 5.10.4
notebook         : not installed
qtconsole        : not installed
traitlets        : 5.14.3

I have seen this issue also with Michael Trifoglio.

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

No branches or pull requests

3 participants