...
This example is for Ubuntu Noble (24.04), using the gcc 13.3.0 compilers and OpenMPI 5.0.5
- Profile should be established this
umaskwill be required later in the stack install as will theulimitsettingsCode Block language shell # .bash_profile umask 0022 ulimit -S -s unlimited if [[ ~/.bashrc ]]; then . ~/.bashrc fi cd ~ - Follow the instructions for Prerequisites for Ubuntu (one-off):
- apt install -y gcc-13 g++-13 gfortran-13 gdb
- gcc –version
https://spack-stack.readthedocs.io/en/latest/NewSiteConfigs.html#prerequisites-ubuntu-one-off - Follow the instructions for Prerequisites for Ubuntu (one-off): https://spack-stack.readthedocs.io/en/latest/NewSiteConfigs.html#prerequisites-ubuntu-one-off
- When installing the gcc compilers, if you would like to make sure you install version 13
Check that you have the links for the gcc compilers installed, and that the version is 13.xCode Block language shell # Compilers apt install -y gcc-13 g++-13 gfortran-13 gdb
- Follow the instructions for creating a new environment: https://spack-stack.readthedocs.io/en/latest/NewSiteConfigs.html#newsiteconfigs-linux-createenv
- Step 1: For now use the 1.9.0 release branch when cloning spack-stack (Place the spack-stack clone in you home directory.)
Code Block language shell git clone -b - Place the spack-stack clone in you home directory git clone -b
release/1.9.0 --recurse-submodules https://github.com/jcsda/spack-stack.git
cd spack
stack create env --site linux.default --template unified-dev --name unified-env.gcc --compiler=gcc
- In the section where you are adding the compiler and mpi to the config, use (example is based on “gcc –version” returning 13.3.0)
- spack config add "packages:all:compiler:[gcc@13.3.0]"
- spack config add "packages:all:providers:mpi:[openmpi@5.0.5]"
- Step 1: For now use the 1.9.0 release branch when cloning spack-stack (Place the spack-stack clone in you home directory.)
- https://spack-stack.readthedocs.io/en/latest/NewSiteConfigs.html#newsiteconfigs-linux-createenv
- Step 1: For now use the 1.9.0 release branch when cloning spack-stack
- Step 2: Create a unified-dev environment
- Step 5: Check that “spack compiler find --scope system” reports version 13.x
- Step 7: Use openmpi 5.0.5 instead of mpich
- Step 9: Leave the module configuration as is (tcl), so skip this step
Building jedi-bundle and running skylab
-stack # Sources Spack from submodule and sets ${SPACK_STACK_DIR} source setup.sh- Step 2: Create a unified-dev environment - complete step following
newsiteconfigsCode Block language shell spack stack create env --site linux.default --template unified-dev --name unified-env.gcc --compiler=gcc cd envs/unified-env.gcc/ spack env activate [-p] . - Step 3: follow
newsiteconfigs - Step 4: follow
newsiteconfigs - Step 5: Check that “spack compiler find --scope system” reports version 13.x)
- Step 6: follow
newsiteconfigs - Step 7: Use openmpi 5.0.5, can
skipadd of mpich.Code Block language shell gcc --version # insert your gcc version here (example 13.3.0) spack config add "packages:all:compiler:[gcc@13.3.0]"Code Block language shell # openmpi v5.0.5 skip mpich install spack config add "packages:all:providers:mpi:[openmpi@5.0.5]"
- Step 8: follow
newsiteconfigs - Step 9: skip - if new Orbstack
- Step 10: skip - if new Orbstack
- Step 11: concretize and install: follow
newsiteconfigs - Step 12 - 14: follow
newsiteconfigs
Building jedi-bundle and running skylab
- Follow instructions in the JEDI documentation
- HOST=localhost
- COMPILER=gnu
- And uncomment/modify the module command lines so they look like
- module purge
- module use /home/steveherbener/spack-stack/envs/ue-gcc/install/modulefiles/Core
- module load stack-gcc/13.3.0
- module load stack-openmpi/5.0.5
- module load stack-python/3.11.7
- https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/using/running_skylab/running_skylab.html
- In the jedi-tools provided setup.sh script, set:
- You will need to setup the mysql and r2d2 localhost. I followed the instructions in the R2D2 repo.
- sudo su
- mysql -u root
- use mysql;
- alter user ‘root’@’localhost’ identified with mysql_native_password by ‘’;
- flush privileges;
- exit; # exit mysql
- exit # exit sudo
- https://github.com/JCSDA-internal/r2d2/blob/develop/TUTORIAL.md#prerequisites-for-hpc-macos-and-aws-single-nodes
- To start the mysql server use: sudo service mysql start
- I had trouble getting the local database setup script to run due to permission problems with logging into the mysql server as ‘root’@’localhost’. I had to do the following to get this working. What this does is remove the password on the root user in the mysql server.
- Initially, I could not get the ecflow UI to connect to the mac display. I had to follow the instructions here to get this working (https://github.com/orbstack/orbstack/issues/139#issuecomment-1595364746):
Let's transcribe these specifically for our environment:- step 0: install Xquartz (desktop app or brew)
- step 1: make sure you've created an orb machine (such as the Ubuntu example)
- Step 2: copy the contents of the ~/.ssh/id_rsa.pub file on your mac home directory into the ~/.ssh/authorized_keys file on your OrbStack (ubuntu) home directory.
Code Block language shell cat /mnt/mac/Users/$USER/.ssh/id_rsa.pub > ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys - Step 3: install SSH server
Code Block language shell sudo apt-get update sudo apt install openssh-server # change ListenStream from 22 to 2222 sudo vim /lib/systemd/system/ssh.socket - Step 4: restart the machine:
Code Block language shell # exit orb machine exit # from Mac restart orb machine orbctl restart <name> - Step 5: Every time you access OrbStack machine and wish to use X11 forwarding you will need to use a terminal on the Mac and run the given ssh command (ssh -Y -p 2222 127.0.0.1).
Code Block language shell # from Mac access X11 enabled Orb ssh -Y -p 2222 127.0.0.1 # if you want these utilities and to test xclock (optional) sudo apt-get install -y x11-apps
- Follow instructions in the JEDI documentation
- HOST=localhost
- COMPILER=gnu
- And uncomment/modify the module command lines so they look like
- module purge
- module use /home/steveherbener/spack-stack/envs/ue-gcc/install/modulefiles/Core
- module load stack-gcc/13.3.0
- module load stack-openmpi/5.0.5
- module load stack-python/3.11.7
- https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/using/running_skylab/running_skylab.html
- In the jedi-tools provided setup.sh script, set:
- You will need to setup the mysql and r2d2 localhost. I followed the instructions in the R2D2 repo.
- sudo su
- mysql -u root
- use mysql;
- alter user ‘root’@’localhost’ identified with mysql_native_password by ‘’;
- flush privileges;
- exit; # exit mysql
- exit # exit sudo
- https://github.com/JCSDA-internal/r2d2/blob/develop/TUTORIAL.md#prerequisites-for-hpc-macos-and-aws-single-nodes
- To start the mysql server use: sudo service mysql start
- I had trouble getting the local database setup script to run due to permission problems with logging into the mysql server as ‘root’@’localhost’. I had to do the following to get this working. What this does is remove the password on the root user in the mysql server.
- Initially, I could not get the ecflow UI to connect to the mac display. I had to follow the instructions here to get this working:
- Step 2 in these instructions didn’t work for me. What you want to do is simply copy the contents of the ~/.ssh/id_rsa.pub file on your mac home directory into the ~/.ssh/authorized_keys file on your OrbStack (ubuntu) home directory.
- https://github.com/orbstack/orbstack/issues/139#issuecomment-1595364746 Take note in Step 5 of the manner in which you connect to the OrbStack machine from the mac. Every time you access the OrbStack machine you will need to open a terminal on the mac (not through ObsStack) and run the given ssh command (ssh -Y -p 2222 127.0.0.1).
Changes for running skylab with R2D2 V3
...