NOAA AWS Parallel Cluster — CADRE 2026 Workshop Instructions

SSH Setup, JEDI Execution, Diagnostics, and File Download

SSH Key Generation

A Secure SHell (SSH) tunnel creates an encrypted connection between two systems. Many HPC platforms, including NOAA systems and commercial cloud systems (AWS, Azure), are accessed via SSH.

Instructions for Mac Users

Generate a public/private key pair:

ssh-keygen -t ed25519 -f /Users/<username>/.ssh/id_ed25519_student{1-30}

Leave the passphrase empty (press Enter twice).

View your public key:

vim /Users/<username>/.ssh/id_ed25519_student(n).pub

Send only the .pub file to the workshop admin via Slack (#cadre-epic-data-assimilation-training).

Add the key to your SSH agent:

ssh-add /Users/<username>/.ssh/id_ed25519_student(n)

Log in to the HPC environment:

ssh student(n)@137.75.93.46

Instructions for Windows Users

Generate keys:

ssh-keygen -t ecdsa

Leave the passphrase empty.

View the public key:

type C:\Users\<username>\.ssh\id_ecdsa.pub

Send the .pub file to the workshop admin.

Connect to the HPC environment:

ssh -i C:\Users\<username>\.ssh\id_ecdsa student(n)@137.75.93.46

Run JEDI (FV3-JEDI)

If you already set up the repository and input dataset on Day 1, skip steps 1–4.

Clone the repository:

git clone https://github.com/chan-hoo/cadre26_noaa_tutorial

Build the GDAS App:

cd cadre26_noaa_tutorial
./build_gdas_cluster.sh

Check executables:

cd ../GDASApp
tail -n 10 build.log
cd build/bin
ls

Download JEDI input dataset:

wget https://s3.us-east-1.amazonaws.com/epic.sandbox.content/cadre26-input-data.tar.gz
tar -xvzf cadre26-input-data.tar.gz

Remember the path:

cadre26/input_data

Copy YAML files:

cd input_yaml
cp Day1/jedi_3dvar* .
# or
cp Day2/<exp_case>/jedi_3dvar* .
# or
cp Day3/<exp_case>/jedi_3dvar* .

Edit job submission script:

vim run_3dvar_cluster.sh

Submit job:

sbatch run_3dvar_cluster.sh

Check job:

squeue -u ubuntu

Move to experiment directory:

cd exp_case/<EXP_NAME_BASE>.<job_ID>

Check logs:

vim OUTPUT.fv3jedi
vim errfile_fv3jedi

Run Diagnostics

Clone diagnostics:

git clone https://github.com/jkbk2004/ufs_da_diagnostics

Set up environment:

pip install -e .
pip install seaborn scipy

Update YAMLs:

cd diagnostic/yamls/<exp_case>
vim increment_maps.yaml
vim obs_diag.yaml
vim spectra_bkg_inc.yaml
vim spectra_ana_inc.yaml

Create test directory:

mkdir -p test
cd test

Day 1 Diagnostics

ufsda-inc-maps --yaml ../diagnostic/yamls/day1/increment_maps.yaml
ufsda-obs-diag --yaml ../diagnostic/yamls/day1/obs_diag.yaml
ufsda-spectra-bkg-inc --yaml ../diagnostic/yamls/day1/spectra_bkg_inc.yaml
ufsda-jedi-log ../exp_case/<EXP_NAME_BASE>.<job_ID>/OUTPUT.fv3jedi --output day1_log_report.txt

Day 2 (NICAS)

ufsda-inc-maps --yaml ../diagnostic/yamls/day2_nicas_length_scale/increment_maps.yaml
ufsda-obs-diag --yaml ../diagnostic/yamls/day2_nicas_length_scale/obs_diag.yaml
ufsda-spectra-ana-inc --yaml ../diagnostic/yamls/day2_nicas_length_scale/spectra_ana_inc.yaml
ufsda-jedi-log ../exp_case/<EXP_NAME_BASE>.<job_ID>/OUTPUT.fv3jedi --output day2_log_report.txt

Day 3 (ATMS Error)

ufsda-inc-maps --yaml ../diagnostic/yamls/day3_atms_err/increment_maps.yaml
ufsda-obs-diag --yaml ../diagnostic/yamls/day3_atms_err/obs_diag.yaml
ufsda-spectra-ana-inc --yaml ../diagnostic/yamls/day3_atms_err/spectra_ana_inc.yaml
ufsda-jedi-log ../exp_case/<EXP_NAME_BASE>.<job_ID>/OUTPUT.fv3jedi --output day3_log_report.txt

Download Files to Your Laptop

Add private keys:

ssh-add ~/.ssh/epic_workshop.pem
ssh-add ~/.ssh/<your_other_key>

Create compressed file:

cd ..
tar -cvzf test.tar.gz test

Download via SCP:

scp -J <user>@jump.epic.noaa.gov ubuntu@<user>:<path>/test.tar.gz .
tar -xvzf test.tar.gz

Example:

scp -J chanhoo@jump.epic.noaa.gov ubuntu@chanhoo:/home/ubuntu/cadre26_noaa_tutorial/test.tar.gz .