Skip to content

Commit 7ea7c30

Browse files
Merge pull request #3461 from CliMA/ne/slurm_workers
Add slurm workers for calibration end-to-end test
2 parents 7bf913f + 6a858ff commit 7ea7c30

File tree

8 files changed

+131
-231
lines changed

8 files changed

+131
-231
lines changed

.buildkite/pipeline.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,8 +586,12 @@ steps:
586586
command: julia --project=calibration/test calibration/test/interface.jl
587587
- label: "end to end test"
588588
command: julia --project=calibration/test calibration/test/e2e_test.jl
589+
agents:
590+
slurm_ntasks: 10
591+
slurm_cpus_per_task: 1
592+
slurm_mem: 96GB
593+
slurm_time: "00:30:00"
589594
artifact_paths: "calibration_end_to_end_test/*"
590-
soft_fail: true
591595

592596
- group: "Diagnostic EDMFX"
593597
steps:

.github/workflows/calibration_test.yml

Lines changed: 0 additions & 36 deletions
This file was deleted.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Artifacts.toml
5050
*.g
5151
*.lock
5252
*.loc
53+
*.out
5354

5455
# misc
5556
.DS_Store

calibration/model_interface.jl

Lines changed: 14 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,15 @@ import YAML
1010
import ClimaComms
1111
ClimaComms.@import_required_backends
1212
using ClimaUtilities.ClimaArtifacts
13-
import ClimaCalibrate:
14-
set_up_forward_model,
15-
run_forward_model,
16-
path_to_ensemble_member,
17-
ExperimentConfig
18-
19-
"""
20-
set_up_forward_model(member, iteration, experiment_dir::AbstractString)
21-
set_up_forward_model(member, iteration, ::ExperimentConfig; experiment_dir)
22-
set_up_forward_model(member, iteration, config_dict::AbstractDict)
23-
24-
Return an AtmosConfig object for the given member and iteration.
25-
26-
Turns off default diagnostics and sets the TOML parameter file to the member's path.
27-
This assumes that the config dictionary has an `output_dir` key.
28-
"""
29-
function set_up_forward_model(
30-
member,
31-
iteration,
32-
::ExperimentConfig;
33-
experiment_dir = dirname(Base.active_project()),
34-
)
35-
# Assume experiment_dir is project dir
36-
config_dict = YAML.load_file(joinpath(experiment_dir, "model_config.yml"))
37-
set_up_forward_model(member, iteration, config_dict::AbstractDict)
38-
end
39-
40-
function set_up_forward_model(member, iteration, experiment_dir::AbstractString)
41-
config_dict = YAML.load_file(joinpath(experiment_dir, "model_config.yml"))
42-
set_up_forward_model(member, iteration, config_dict::AbstractDict)
43-
end
44-
45-
function set_up_forward_model(member, iteration, config_dict::AbstractDict)
13+
import ClimaCalibrate: forward_model, path_to_ensemble_member
14+
import ClimaCalibrate as CAL
15+
16+
function CAL.forward_model(iteration, member, config_dict = nothing)
17+
experiment_dir = dirname(Base.active_project())
18+
if isnothing(config_dict)
19+
config_dict =
20+
YAML.load_file(joinpath(experiment_dir, "model_config.yml"))
21+
end
4622
output_dir = config_dict["output_dir"]
4723
member_path = path_to_ensemble_member(output_dir, iteration, member)
4824
config_dict["output_dir"] = member_path
@@ -55,21 +31,16 @@ function set_up_forward_model(member, iteration, config_dict::AbstractDict)
5531

5632
# Turn off default diagnostics
5733
config_dict["output_default_diagnostics"] = false
58-
return CA.AtmosConfig(config_dict)
59-
end
60-
61-
"""
62-
run_forward_model(atmos_config::CA.AtmosConfig)
63-
64-
Run the atmosphere model with the given an AtmosConfig object.
65-
Currently only has basic error handling.
66-
"""
67-
function run_forward_model(atmos_config::CA.AtmosConfig)
34+
atmos_config = CA.AtmosConfig(
35+
config_dict;
36+
comms_ctx = ClimaComms.SingletonCommsContext(),
37+
)
6838
simulation = CA.get_simulation(atmos_config)
6939
sol_res = CA.solve_atmos!(simulation)
7040
if sol_res.ret_code == :simulation_crashed
7141
error(
7242
"The ClimaAtmos simulation has crashed. See the stack trace for details.",
7343
)
7444
end
45+
return simulation
7546
end

calibration/test/Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717"
55
ClimaCalibrate = "4347a170-ebd6-470c-89d3-5c705c0cacc2"
66
ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d"
77
ClimaUtilities = "b3f4f4ca-9299-4f7f-bd9b-81e1242a7513"
8+
ClusterManagers = "34f1f09b-3a8b-5176-ab39-66d58a4d544e"
89
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
910
EnsembleKalmanProcesses = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d"
1011
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
1112
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
1213
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
1314

1415
[compat]
15-
ClimaCalibrate = "0.0.2 - 0.0.4"
16+
ClimaCalibrate = "0.0.6"

0 commit comments

Comments
 (0)