https://github.com/clima/climacoupler.jl
ClimaCoupler: bringing atmosphere, land, and ocean together
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
6 of 13 committers (46.2%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Keywords from Contributors
Repository
ClimaCoupler: bringing atmosphere, land, and ocean together
Basic Info
- Host: GitHub
- Owner: CliMA
- License: apache-2.0
- Language: Julia
- Default Branch: main
- Homepage: https://clima.github.io/ClimaCoupler.jl/dev/
- Size: 13.8 MB
Statistics
- Stars: 35
- Watchers: 5
- Forks: 7
- Open Issues: 107
- Releases: 3
Metadata Files
README.md
ClimaCoupler.jl
ClimaCoupler.jl provides coupled system time stepping control and support for mapping import and export boundary information between components. It can handle atmosphere, ocean, land, and sea ice component models, and the source code is agnostic to the internals of these component models.
ClimaCoupler.jl contains a directory experiments/ClimaEarth/ which contains
additional infrastructure to run coupled AMIP experiments using component models
from ClimaAtmos.jl and ClimaLand.jl. This includes machinery for visualizing output
in the user_io/ folder, and component model-specific initialization, access,
and other helper functions in the components/ folder, which will soon be moved to
the respective component model packages.
Additional smaller coupling examples can be found in the experiments/ClimaCore/ directory.
These are meant to serve as an introduction to coupling and the types of functionality
required for it.
|||
|---------------------:|:-----------------------------------------------|
| Documentation |
|
| Unit Tests |
|
| Downloads |
|
|||
Recommended Julia Version: Stable release v1.11.1. CI tests Julia v1.10 and 1.11.
Running AMIP
Here we will focus on the AMIP experiment, which uses the environment in the experiments/ClimaEarth/ subdirectory of ClimaCoupler.jl
The first step to do this is to install all required packages for the environment using the following Julia command:
julia
julia --project=experiments/ClimaEarth -E "using Pkg; Pkg.instantiate(); Pkg.build()"
Now you're ready to run the experiment, which uses the run_amip.jl driver. To run interactively:
julia --project=experiments/ClimaEarth
julia> include("experiments/ClimaEarth/run_amip.jl")
Or to run from the terminal:
julia
julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl
When running from the terminal, you can also specify a configuration file to use for the simulation setup, and a job ID to keep track of this run's output.
Existing configuration files are specified in the config/ directory within ClimaCoupler.jl.
For example, to run the default AMIP configuration, you could use the following command:
julia
julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl --config_file config/ci_configs/amip_default.yml --job_id amip_default
Output from your run will be saved in the folder experiments/ClimaEarth/output/<job_id>/.
If no configuration file is specified, the default
amip_default.yml will be used, and output will be saved in experiments/ClimaEarth/output/amip_default/.
The output will take up approximately 1GB of space, and the simulation will take around 10 minutes to run on a single CPU, or less time on multiple CPUs or GPU.
Note: If you want to set the configuration file to something other than the default
while running the driver interactively, you'll need to
manually set the value for config_file.
For example, to use the configuration file found at config/ci_configs/amip_default.yml, you would set config_file as follows in the run_amip driver:
config_file = "config/ci_configs/amip_default.yml"
A Note about ClimaComms and MPI
If you don't intend to run your simulation using MPI, but you see an error about MPI and your simulation crashes,
ClimaComms may be incorrectly selecting the configuration for your run.
In this case, you can force ClimaComms to ignore MPI with
export CLIMACOMMS_CONTEXT="SINGLETON"
from the terminal, or
ENV["CLIMACOMMS_CONTEXT"]="SINGLETON"
from within the Julia environment before running the experiment.
Sometimes this happens when you are running in an interactive SLURM session.
Running on GPU or with MPI
CUDA.jl and MPI.jl packages
CUDA.jl and MPI.jl are required to run ClimaCoupler's AMIP experiment on GPU and in parallel (with MPI), respectively. Not every machine is capable of running on GPU or with MPI, and the AMIP experiment can be run on CPU without these packages, so they aren't included in the ClimaCoupler AMIP experiment environment. This means that if you want to run our driver using these capabilities (locally or remotely), you should install CUDA and MPI in your machine's base Julia environment. This will make the packages available to the AMIP experiment environment, as it is a sub-environment of the base environment. If you wish to run the AMIP experiment with GPU or MPI locally as well as remotely, this process must be done on each machine you want to run on.
This can be done using the following command in the terminal from any directory:
julia
julia -E "using Pkg; Pkg.add(\"MPI\")"
Now, if you enter your base environment by running julia and then check the packages with ] st, you should see something like:
(@v1.10) pkg> st
Status `~/.julia/environments/v1.10/Project.toml`
[<hash>] CUDA vX.Y.Z
[<hash>] MPI vX.Y.Z
Environment variables
Additionally, there are some environment variables we must set in these cases.
To run on GPU, we need to run export CLIMACOMMS_DEVICE="CUDA" in the terminal, or
ENV["CLIMACOMMS_DEVICE]="CUDA" within the Julia environment before running the experiment.
To run with MPI, we need to run export CLIMACOMMS_CONTEXT="MPI" in the terminal, or
ENV["CLIMACOMMS_CONTEXT]="MPI" within the Julia environment before running the experiment.
Caltech users: Running AMIP remotely
The main difference between running code locally vs running remotely is the module loading step. CliMA uses ClimaModules to coordinate the modules needed to run CliMA code on Caltech's clusters.
On Central, you can load the appropriate module package by running the following in the terminal:
export MODULEPATH="/groups/esm/modules:$MODULEPATH"
module load climacommon
Remember: This should be done after requesting a compute node, using the command
srun --pty -t 01:00:00 -p expansion bashor similar
On clima, you can load the appropriate module package by running the following in the terminal:
module load common
For additional information about these clusters, including how to gain access for the first time, see our slurm-buildkite wiki pages for Central and clima.
Running Slabplanet
The run_amip.jl driver contains two modes: the full AMIP mode and a Slabplanet mode, where all surfaces are thermal slabs. Since AMIP is not a closed system, the Slabplanet mode is useful for checking conservation properties of the coupling.
Running a Slabplanet simulation is the same as running an AMIP simulation, except for the specifics of the configuration file provided, so all information from the Running AMIP section will apply here too. Note that the default configuration used by run_amip.jl specifies an AMIP simulation, so a configuration file must be specified to run a Slabplanet simulation. This can be done as follows:
julia
julia --project=experiments/ClimaEarth experiments/ClimaEarth/run_amip.jl --config_file config/ci_configs/slabplanet_default.yml --job_id slabplanet_default
To ensure that conservation is tracked throughout the experiment, the energy_check field of the configuration file must be set to true.
Owner
- Name: Climate Modeling Alliance
- Login: CliMA
- Kind: organization
- Email: clima@caltech.edu
- Website: https://clima.caltech.edu
- Repositories: 67
- Profile: https://github.com/CliMA
An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ben Mackay | j****y@c****u | 120 |
| LenkaNovak | l****a@c****u | 74 |
| Julia Sloan | j****n@c****u | 61 |
| Valeria Barra | v****1@g****m | 39 |
| christophernhill | c****h@m****u | 12 |
| Lenka Novakova | l****a@L****l | 10 |
| CompatHelper Julia | c****y@j****g | 7 |
| Gabriele Bozzola | s****r@g****m | 6 |
| kmdeck | k****k@c****u | 4 |
| Charles Kawczynski | k****s@g****m | 3 |
| Lenka Novak | l****k@L****l | 2 |
| Zhaoyi Shen | 1****1 | 2 |
| Lenka Novakova | l****a@d****u | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 480
- Total pull requests: 984
- Average time to close issues: 2 months
- Average time to close pull requests: 17 days
- Total issue authors: 17
- Total pull request authors: 22
- Average comments per issue: 0.56
- Average comments per pull request: 0.96
- Merged pull requests: 667
- Bot issues: 0
- Bot pull requests: 81
Past Year
- Issues: 185
- Pull requests: 518
- Average time to close issues: 19 days
- Average time to close pull requests: 8 days
- Issue authors: 10
- Pull request authors: 16
- Average comments per issue: 0.29
- Average comments per pull request: 0.79
- Merged pull requests: 400
- Bot issues: 0
- Bot pull requests: 9
Top Authors
Issue Authors
- juliasloan25 (244)
- LenkaNovak (132)
- szy21 (30)
- Sbozzolo (25)
- valeriabarra (8)
- akshaysridhar (6)
- imreddyTeja (6)
- waywardpidgeon (6)
- nefrathenrici (4)
- ph-kev (3)
- sriharshakandala (3)
- charleskawczynski (3)
- kmdeck (3)
- valentinaschueller (3)
- trontrytel (2)
Pull Request Authors
- juliasloan25 (378)
- Sbozzolo (157)
- szy21 (109)
- LenkaNovak (81)
- github-actions[bot] (73)
- imreddyTeja (43)
- akshaysridhar (29)
- nefrathenrici (26)
- ph-kev (21)
- trontrytel (14)
- dependabot[bot] (8)
- charleskawczynski (7)
- kmdeck (7)
- anastasia-popova (7)
- valeriabarra (7)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 11 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 4
juliahub.com: ClimaCoupler
ClimaCoupler: bringing atmosphere, land, and ocean together
- Homepage: https://clima.github.io/ClimaCoupler.jl/dev/
- Documentation: https://docs.juliahub.com/General/ClimaCoupler/stable/
- License: Apache-2.0
-
Latest release: 0.1.2
published over 1 year ago
Rankings
Dependencies
- actions/checkout v2.2.0 composite
- codecov/codecov-action v1.0.7 composite
- julia-actions/setup-julia latest composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2.2.0 composite
- dorny/paths-filter v2.9.1 composite
- julia-actions/setup-julia latest composite
- styfle/cancel-workflow-action 0.4.0 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite