Zeus Software Configuration Changes in 2026

FLASH and its key dependencies were installed in Feb. 2026... and some NVIDIA driver problems were solved along the way.

The essential dependencies of FLASH are HYPRE, HDF5, and zlib.

First, HYPRE 3.1.0 was built from source and installed in /usr/local/hypre. Here are the steps to do that, from readthedocs:

$ git clone https://github.com/hypre-space/hypre.git
$ cd hypre/src
$ ./configure --prefix=/usr/local/hypre --with-blas-lib="-qmkl=sequential" --with-lapack-lib="-qmkl=sequential" --enable-shared
$ make -j 16
$ sudo make install

It took more than one or two tries to get all that right... there were several rounds of "make distclean" followed by retries.
The good news is, HYPRE's configure script seems to work fine, unmodified, with the Intel compilers and Intel MPI.
That gave confidence to the idea of adding Intel MKL to the mix, to boost single-threaded performance with BLAS and LAPACK.
HYPRE was linked with -qmkl=sequential because multithreaded MKL would likely contend with MPI processes for CPU cores.

Next up was HDF5, even though it looked like some parts of HDF5 and Parallel HDF5 were already installed on Zeus.
However, Parallel HDF5 depends on Open MPI rather than Intel MPI, which seemed like sufficient reason to mistrust it.
Also, the dev pieces (i.e., the include files) were missing. To take care of this, the rest of version 1.10 was installed:

$ sudo apt install libhdf5-dev

Attempting the above installation revealed some issues with NVIDIA drivers. Certain dependencies conflicted with each other.
The issues were fixed after much flailing (not all details are recorded below):

$ sudo apt update
$ sudo apt upgrade [FAILED]
$ sudo apt purge nvidia-*
$ sudo ubuntu-drivers autoinstall [partly failed?]
[reboot]
$ apt list --installed | grep nvidia
[verified that NVIDIA drivers were upgraded from 570 to 590]
$ nvidia-smi
[showed that NVIDIA 590 drivers weren't running]
$ sudo apt update
$ sudo apt upgrade [FAILED]
$ sudo apt --fix-broken install [FAILED]
$ sudo apt purge 'nvidia*'
$ sudo apt purge 'libnvidia*'
$ sudo ubuntu-drivers install nvidia:590
$ sudo apt --fix-broken install [FAILED]
$ sudo dpkg --purge nvidia-driver-590-open
$ sudo dpkg --purge libnvidia-egl-xcb1
$ sudo dpkg --purge libnvidia-egl-xlib1
[reboot]
$ nvidia-smi
[showed that NVIDIA 590 drivers were now running]
$ sudo apt --fix-broken install [SUCCEEDED]
$ sudo apt update
$ sudo apt upgrade [SUCCEEDED]
$ sudo apt install libhdf5-dev [CONFIRMED UP TO DATE]
$ sudo apt autoremove

Following the upgrade, a needless warning from Intel oneAPI started to appear during logins.
It was fixed by adding 2>&1 to a line in /etc/profile.d/zzintel-snap.sh:

$ sudo emacs /etc/profile.d/zzintel-snap.sh  # in order to modify the next line...
 . /opt/intel/oneapi/compiler/latest/env/vars.sh > /dev/null 2>&1
$ sudo rm /etc/profile.d/zzintel-snap.sh~

Other HYPRE dependencies seemed more discretionary. PnetCDF isn't installed on Zeus, even though netCDF is.
That's not a bad thing; PnetCDF would have limited utility because Zeus doesn't have a parallel file system.
Chombo and IDL are totally optional, and they've never been requested previously.

FLASH itself was then ready to be built. This was done by following the quick start instructions from the User's Guide.
The required Makefile.h was prepared in accordance with the section on Creating a Site-specific Makefile.
One of the prototypes for Linux was edited to provide the names of the Intel MPI compiler wrappers and add the -Xhost option.
Locations of Intel MPI, HYPRE, and HDF5 were also provided where indicated.

$ tar -xvfz FLASH4.8.tar.gz
$ cd FLASH4.8
$ mkdir sites/lps.cornell.edu
$ cp sites/intel/Makefile.h sites/lps.cornell.edu/Makefile.h
$ emacs sites/lps.cornell.edu/Makefile.h
$ ./setup Sedov -auto

The setup script for the Sedov test problem failed because it couldn't find python, which needs to be identical to python3.
And ultimately, running the FLASH program is supposed to create a sedov.dat output file that can be plotted with gnuplot...

$ sudo apt install python-is-python3
$ sudo apt install gnuplot

The setup script was then able to find the Makefile.h in the FLASH4.8/sites/lps.cornell.edu directory, with no prompting(!).
In fact, the Makefile.h that is created in the FLASH4.8/object folder is just a symbolic link back to the original.

$ ./setup Sedov -auto
$ cd object
$ diff flash.par ../source/Simulation/SimulationMain/Sedov/flash.par  # no difference
$ make -j 16
$ mpirun -np 16 ./flash4
$ gnuplot  # plot kinetic, internal, total energy (the conserved sum) vs. time
gnuplot> plot "sedov.dat" using 1:7 with lines
gnuplot> plot "sedov.dat" using 1:8 with lines
gnuplot> plot "sedov.dat" using 1:6 with lines

It seems VisIt is the preferred choice for visualizing FLASH results, so it was installed in /usr/local too:

$ wget https://github.com/visit-dav/visit/releases/download/v3.4.2/visit3_4_2.linux-x86_64-ubuntu24.tar.gz
$ wget https://github.com/visit-dav/visit/releases/download/v3.4.2/visit-install3_4_2
$ chmod 755 visit-install3_4_2
$ sudo ./visit-install3_4_2 "3.4.2" "linux-x86_64-ubuntu24" "/usr/local/visit"
$ /usr/local/visit/bin/visit    # ran successfully

A post to the FLASHUSERS listserv described how to add code to FLASH so its HDF5 output could be viewed with ParaView.
On Zeus, a problem arose while attempting to modify FLASH to produce the extra grid files ParaView needs to view HDF5 output.
The Fortran module files that were installed by apt from the HDF5 package turned out to be incompatible with Intel compilers.
Probably they were built with gfortran. As an Intel-friendly replacement, the HDF5 2.0.0 libraries were built from source:

$ unzip hdf5-2.0.0.zip; cd hdf5-2.0.0
$ mkdir build; cd build
$ cmake .. -DBUILD_SHARED_LIBS=ON -DHDF5_BUILD_FORTRAN=ON -DCMAKE_C_COMPILER=icx -DCMAKE_Fortran_COMPILER=ifx
$ cmake --build . -j 30
$ sudo cmake --install . --prefix=/usr/local/hdf5

Ultimately, the ParaView experiment failed, but it seemed desirable to keep the more recent, Intel-friendly HDF5 libraries.
Therefore, the Makefile.h for FLASH was modified to use the newer HDF5 library instead of the one that was installed with apt.
The Sedov test still ran! So, both versions of Makefile.h were saved into /data/FLASH, along the FLASH4.8 tarball and README-4.8.
The README4.8 file spells out the full build-and-run procedure for users; information about VisIt was added to README-4.8 too.

FLASH users should be registered or otherwise granted access, so a "flashusers" group was set up to control access:

$ sudo addgroup flashusers --gid 2000
$ sudo chown -R root:flashusers /data/FLASH
$ sudo chmod 750 /data/FLASH
$ sudo chmod 640 /data/FLASH/*
$ sudo usermod -aG flashusers <username>


Last updated on 2/26/26 by Steve Lantz (steve.lantz ~at~ cornell.edu)