No ecbuild when using the singularity build

I have pulled the developers image and have followed the description available online as far as the ecbuild line but then it says ecbuild not known. Do we have to install ecbuild or is it supposed to be in the image? the library directory is empty when i check.

You’ll need to provide more information if you want this question to be answered: Which image/version exactly? From sylabs? Which steps do you run?

Hi Dom
I have found a beter set of instructions but now have the following errors when running cmake.

CMake Error at /home/fletcher/jedi/build/jedicmake/jedicmake-config.cmake:19 (me ssage):
File or directory
/home/fletcher/jedi/src/fv3-bundle/jedicmake/CMakeModules/Modules
referenced by variable jedicmake_MODULES does not exist !
Call Stack (most recent call first):
/home/fletcher/jedi/build/jedicmake/jedicmake-config.cmake:36 (set_and_check)
crtm/CMakeLists.txt:20 (find_package)

– Configuring incomplete, errors occurred!
See also “/home/fletcher/jedi/build/CMakeFiles/CMakeOutput.log”.

jedi-cmake should be included in the container, and the jedi_cmake_ROOT environment variable should be set by the script that users need to run first in a container (whether that is Docker or Singularity).

I still don’t know exactly which container and which version of which bundle you are using (assuming fv3-bundle), and I also don’t know which instructions you are trying to follow.

Hi Dom
when i sent replied to the forum post last week with the website it was blocked by the server for a check even though it was a JCSDA webpage. I have now found these two pages that I was following last night

https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/using/jedi_environment/containers/singularity.html

https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/using/building_and_running/index.html

thanks
Steve

Hi Steve,

I went and tried to reproduce your error in singularity and do get the same one. This only happens with the public repo though. Do you have access to jcsda-internal? If so you can clone that version of fv3-bundle and it should work. That is more up to date as well.

I.E. git clone https://github.com/jcsda-internal/fv3-bundle

In the mean time we will look into what is going on with the public repo.

I think it’s safe to say that fv3-bundle public (JCSDA · GitHub) is HORRIBLY out of date and no longer usable. For your particular issue, it’s missing the line

find_package( ecbuild 3.6 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild)

But even if you fix that the bundle won’t work, since it’s using very old tags of eckit, fckit, atlas, crtm that don’t work with the JEDI develop branches. And it’s missing the new data repo download logic.

So please use https://github.com/jcsda-internal/fv3-bundle, or even better, https://github.com/jcsda-internal/jedi-bundle.

Hi everyone
So what I am trying to do is recreate the NASA GEOS system with JEDI to introduce lognormal component into the system. Which would be the best version to obtain please and is there a webpage with the instructions to create the software?
Thanks
Steve

Have you tried the latest release of Skylab? skylab-v7 was released in January 2024 and comes with a complete JEDI code, using jedi-bundle (public or internal) as top-level repository.

https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/7.0.0/

https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/7.0.0/using/running_skylab/running_skylab.html

Hi Dom
I was trying to work through the skylab route, that is what took me to the pages i sent yesterday. I will try these tomorrow. I am in the UK right now for medical treatment.
Thanks for the pointers.
Steve

Hi Dom
when i go to the singularity part of this page it takke me to the page I sent you yesterday.
Steve

It seems this part of the documentation is out of date, sorry. If you follow the link that I sent you closely (Building and running SkyLab — JEDI Documentation 7.0.0 documentation), i.e. ignore the fv3-bundle and go with jedi-bundle, does it work?

Hi Dom
Are you saying that there is a singularity image for this? I do not have any compilers so i need the developer singularity to do this please.
Thanks
Steve

Hi Dom
I am trying to follow the stack instructions first as there does not appear to be a singularity image to do the developer version that is up to date, and receive this message

spack env activate [-p] envs/skylab-7.0.0
==> Error: unrecognized arguments: envs/skylab-7.0.0

Am following the instructions from

https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/7.0.0/using/jedi_environment/spackbuild.html

Hi Dom
I am working through the generating new config instructions but have th e following error
[default] [fletcher@fletch unified-env.mylinux] spack module tcl refresh ==> No package matches your query [default] [fletcher@fletch unified-env.mylinux] spack stack setup-meta-modules
Configuring basic directory information …
… script directory: /local/home/fletcher/spack-stack/spack-ext/lib/jcsda-emc/spack-stack/stack
… base directory: /local/home/fletcher/spack-stack/spack-ext/lib/jcsda-emc/spack-stack
… spack directory: /local/home/fletcher/spack-stack/spack
Configuring active spack environment …
… environment directory: /local/home/fletcher/spack-stack/spack/var/spack/environments/default
Parsing spack environment main config …
… install directory: /local/home/fletcher/spack-stack/spack/opt/spack
Parsing spack environment modules config …
==> Error: list index out of range

Hi Steve,

I think if you are using the singularity containers with the public repos your best bet is to use jedi-bundle this includes fv3-jedi as well as other packages.

These steps worked for me to be able to build in the latest singularity container:
#start the singularity shell
singularity shell -e jedi-gnu-openmpi-dev_latest.sif

#make a directory to put the source and build in
mkdir jedi

cd jedi

#clone jedi-bundle
git clone https://github.com/jcsda/jedi-bundle

#make build directory
mkdir build

cd build

#load spack-stack
source /opt/spack-environment/activate.sh

#set cmake_root variable
export jedi_cmake_ROOT=/opt/view

#run ecbuild
ecbuild ../jedi-bundle

#build
make -j4

I wonder if these will work for you also?

Hi Christian
thank you for this. I have made it to teh build command but there appears to be errors with missing libraries i think. Is there another command that is supposed to be done before the ecbuild or the build command?
Thanks for the help
Steve

Hi Steve,

There shouldn’t be any other commands to run, and all of the needed libraries should be loaded when you source the activate.sh script to load spack-stack.

Things I might try:

  1. A fresh singularity container
  2. Try running just make instead of make -j4 the j4 just means compiling on four processes, but if you are running singularity in a VM , for example if you are runing on a Mac with vagrant, you might run out of memory in that case which would cause an error. Just running make alone might solve the problem. Perhaps try that first.

Otherwise, if you still get an error can you share it here?

Hi Christian
Thanks for the advice. I did think to go to make only and it worked till this point

[ 92%] Building Fortran object mpas/src/external/esmf_time_f90/CMakeFiles/esmf.dir/ESMF_BaseTimeMod.F90.o
/home/fletcher/jedi/jedi-bundle/mpas/src/external/esmf_time_f90/ESMF_BaseTimeMod.F90:53:28:

53 | integer(ESMF_KIND_I8) :: S ! whole seconds

1
Error: Symbol ‘esmf_kind_i8’ at (1) has no IMPLICIT type
/home/fletcher/jedi/jedi-bundle/mpas/src/external/esmf_time_f90/ESMF_BaseTimeMod.F90:54:28:

Do I have to install emsf?
thanks
Steve

You may be hitting a problem with MPAS’ internal esmf and an external one available in the container as part of spack-stack. Can you try to remove the spack-stack esmf and use the one that comes with mpas?

You may have to rerun ecbuild/cmake and make again. Or maybe even start over, not sure.

# https://github.com/JCSDA-internal/mpas-jedi/issues/919
rm -vf `find /opt/view/bin -iname '*esmf*'`
rm -vf `find /opt/view/lib -iname '*esmf*'`
rm -vf `find /opt/view/include -iname '*esmf*'`
rm -vf `find /opt/view/cmake -iname '*esmf*'`