Skip to content

Latest commit

 

History

History
30 lines (23 loc) · 3.93 KB

File metadata and controls

30 lines (23 loc) · 3.93 KB

Glossary

In addition to the variables defined in variable_list.md, there are some general terms and conventions that are used within CliMA. This glossary defines those terms and conventions.

Software Terminology

  • Artifact: In the context of Julia packages, an artifact is a file or set of files that are downloaded and stored in the Artifacts.toml file. Artifacts are used for input data management. See ClimaArtifacts.jl for more details.
  • CI: Continuous Integration, a practice in software development where code changes are automatically built and tested. CliMA uses GitHub Actions and Buildkite for CI.
  • REPL: Read-Eval-Print Loop, an interactive programming environment that takes single user inputs, executes them, and returns the result to the user.
  • Type-stable: A function is type-stable if the type of its output can be determined from the types of its inputs. Type stability is important for performance in Julia, and a requirement when running code on the GPU.
  • ITime: A time type that uses integers. This is used by CliMA simulations to keep track of simulation time. Read more here
  • Integrator: A stateful object that advances the solution forward in time. This usually contains the current state, parameters, cache, and current time. Read more here
  • Depot: The location(s) where Julia packages are installed. Buildkite pipelines share a depot to speed up package loading and precompilation; sometimes this can lead to issues. If you encounter a depot-related error, try clearing the depot with the clear depot pipeline.
  • Downstream/Upstream: In the context of software dependencies, a downstream package is one that depends on another package (the upstream). Changes in the upstream package can affect the downstream package, so it's important to consider the impact of changes on downstream users.
  • Project.toml: Describes a Julia project's dependencies and compatibility requirements. It is used by the Julia package manager to manage dependencies and ensure that the correct versions of packages are used.
  • Manifest.toml: Records the exact versions of all packages used in a Julia project, including transitive dependencies. It is generated by the package manager and should not be edited manually.
  • instantiate: If no Manifest.toml exists for the project, Pkg.instantiate() is equivalent to Pkg.resolve(); if a Manifest.toml does exist, Pkg.instantiate() will download and install the exact versions of packages specified in the Manifest.toml, ensuring that the environment is consistent with the recorded state.
  • resolve: Pkg.resolve() checks that the Manifest.toml is consistent with the Project.toml and updates the Manifest.toml to reflect any changes in dependencies or compatibility requirements. It then instantiates the project.

Simulation Terminology

  • AMIP: Atmosphere Model Intercomparison Project, a project that provides standardized test cases for atmospheric models.
  • Diagnostic: A quantity that is computed from a simulation state and cache, which is written to output when specific conditions are met. This can also refer to any variable that is computed at each time step as a function of the prognostic variables and other parameters.
  • DSS: Direct Stiffness Summation
  • ILAMB: International Land Model Benchmarking, a project that provides standardized benchmarking for land models.
  • SYPD: Simulated Years Per Day, a common performance metric for climate models that indicates how many years of simulation can be completed in one day of wall-clock time.

Self-correction

If this guide is discovered to be stale or missing a term, update it.