gFTL icon indicating copy to clipboard operation
gFTL copied to clipboard

How do we build GFTL on an airgapped system

Open GeorgeVandenberghe-NOAA opened this issue 1 year ago • 3 comments
trafficstars

The GFTL repository itself can be copied to an airgapped system with .. on connected system

git clone https://github.com/Goddard-Fortran-Ecosystem/gFTL-shared

then copy the gFTL-shared directory to the airgapped system and attempt further build. Upon doing so ON THE AIRGAPPED SYSTEM though the build generates

cd gFTL-shared/

  • rm -rf build
  • mkdir build
  • cd build
  • cmake -DCMAKE_INSTALL_PREFIX=/mnt/lfs4/HFIP/hfv3gfs/gwv/simt/simstack/netcdf140.492.460.mapl235.fms2301.crtm240.z .. -- The Fortran compiler identification is Intel 18.0.5.20180823 -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Check for working Fortran compiler: /apps/intel/compilers_and_libraries_2018.5.274/linux/mpi/intel64/bin/mpiifort - skipped -- Performing Test _LOGICAL_DEFAULT_KIND: SUCCESS (value=4) -- Performing Test _INT_DEFAULT_KIND: SUCCESS (value=4) -- Performing Test _ISO_INT8: SUCCESS (value=1) -- Performing Test _ISO_INT16: SUCCESS (value=2) -- Performing Test _ISO_INT32: SUCCESS (value=4) -- Performing Test _ISO_INT64: SUCCESS (value=8) -- Performing Test _REAL_DEFAULT_KIND: SUCCESS (value=4) -- Performing Test _DOUBLE_DEFAULT_KIND: SUCCESS (value=8) -- Performing Test _ISO_REAL32: SUCCESS (value=4) -- Performing Test _ISO_REAL64: SUCCESS (value=8) -- Performing Test _ISO_REAL128: SUCCESS (value=16) Cloning into '/mnt/lfs4/HFIP/hfv3gfs/gwv/simt/simstack/build/gFTL-shared/extern/gFTL'... fatal: unable to access 'https://github.com/Goddard-Fortran-Ecosystem/gFTL.git/': Failed connect to github.com:443; Connection timed out fatal: clone of 'https://github.com/Goddard-Fortran-Ecosystem/gFTL.git' into submodule path '/mnt/lfs4/HFIP/hfv3gfs/gwv/simt/simstack/build/gFTL-shared/extern/gFTL' failed Failed to clone 'extern/gFTL'. Retry scheduled Cloning into '/mnt/lfs4/HFIP/hfv3gfs/gwv/simt/simstack/build/gFTL-shared/extern/gFTL'...

How do we do this build on an airgapped system (NOAA jet tjet node in this example)?

GeorgeVandenberghe-NOAA avatar Dec 19 '23 18:12 GeorgeVandenberghe-NOAA

So sorry - this issue apparently got buried during my winter vacation ...

This has come up before with a Cray system. The intent was that CMake should only reach outside if it cannot find the submodules, but the existing logic fails there. Adding in @mathomp4 so we can discusse.

Quite likely not a single gFTL/GFE user is relying on this capability, but without being certain, I'm reluctant to delete it. OTOH, we should be able to create a nice message telling the person to get the submodules ...

tclune avatar Feb 12 '24 14:02 tclune

@GeorgeVandenberghe-NOAA I can think of a few things.

Previously built gFTL

If you've already installed gFTL somewhere, then you'd just need to add the path to CMAKE_PREFIX_PATH when you run CMake.

Starting with gFTL-shared

If you are starting with gFTL-shared, then you'd want to git clone --recurse-submodules at which point I believe it wouldn't have a need to go out. For example, on a discover login node (with internet access), I did:

git clone --recurse-submodules [email protected]:Goddard-Fortran-Ecosystem/gFTL-shared.git

and then on a compute node (no internet):

cmake -B build -S .
cmake --build build --target install

worked just fine so it didn't try and fetch it.

Using GFE

Finally, I mainly install GFE libraries via GFE itself which always presents a "consistent" set of versions. For that:

git clone [email protected]:Goddard-Fortran-Ecosystem/GFE.git
cd GFE
git submodule update --init

and then build as usual.

mathomp4 avatar Feb 12 '24 14:02 mathomp4

Thanks. I will modify my builds to try that.

On Mon, Feb 12, 2024 at 9:58 AM Matthew Thompson @.***> wrote:

@GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA I can think of a few things.

If you've already installed gFTL somewhere, then you'd just need to add the path to CMAKE_PREFIX_PATH when you run CMake.

If you are starting with gFTL-shared, then you'd want to git clone --recurse-submodules at which point I believe it wouldn't have a need to go out. For example, on a discover login node (with internet access), I did:

git clone --recurse-submodules @.***:Goddard-Fortran-Ecosystem/gFTL-shared.git

and then on a compute node (no internet):

cmake -B build -S . cmake --build build --target install

worked just fine so it didn't try and fetch it.

Finally, I mainly install GFE libraries via GFE itself https://github.com/Goddard-Fortran-Ecosystem/GFE which always presents a "consistent" set of versions. For that:

git clone @.***:Goddard-Fortran-Ecosystem/GFE.git cd GFE git submodule update --init

and then build as usual.

— Reply to this email directly, view it on GitHub https://github.com/Goddard-Fortran-Ecosystem/gFTL/issues/209#issuecomment-1938837253, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FW23HIHFZ6N427VUQLYTIUXNAVCNFSM6AAAAABA3URL6CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZYHAZTOMRVGM . You are receiving this because you were mentioned.Message ID: @.***>

--

George W Vandenberghe

*Lynker Technologies at * NOAA/NWS/NCEP/EMC

5830 University Research Ct., Rm. 2141

College Park, MD 20740

@.***

301-683-3769(work) 3017751547(cell)

GeorgeVandenberghe-NOAA avatar Feb 12 '24 15:02 GeorgeVandenberghe-NOAA