Skip to content

Commit 45d0bf6

Browse files
committed
debug script
1 parent f108082 commit 45d0bf6

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

experiments/AMIP/debug_cpu-gpu.jl

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
using ClimaComms
2+
using ClimaCore: InputOutput, Fields
3+
using Statistics
4+
5+
# atmos rho e
6+
varname = "atmos_ρe_tot"
7+
comms_ctx = ClimaComms.SingletonCommsContext()
8+
9+
cpu_filename = "experiments/AMIP/cpu-gpu_temporalmap/cpu_temporalmap_atmos_ρe_tot_1979-01-01T00-03-20.hdf5"
10+
cpu_hdf5reader = InputOutput.HDF5Reader(cpu_filename, comms_ctx)
11+
cpu_atmos_ρe_tot = InputOutput.read_field(cpu_hdf5reader, varname)
12+
close(cpu_hdf5reader)
13+
14+
gpu_filename = "experiments/AMIP/cpu-gpu_temporalmap/gpu_temporalmap_atmos_ρe_tot_1979-01-01T00-03-20.hdf5"
15+
gpu_hdf5reader = InputOutput.HDF5Reader(gpu_filename, comms_ctx)
16+
gpu_atmos_ρe_tot = InputOutput.read_field(gpu_hdf5reader, varname)
17+
close(gpu_hdf5reader)
18+
19+
cpu_atmos_ρe_tot == gpu_atmos_ρe_tot # false
20+
abs(mean(parent(cpu_atmos_ρe_tot)) - mean(parent(gpu_atmos_ρe_tot))) < eps(Float64) # false temporal map (3.64e-12), true function
21+
22+
# atmos rho q
23+
varname = "atmos_ρq_tot"
24+
comms_ctx = ClimaComms.SingletonCommsContext()
25+
26+
cpu_filename = "experiments/AMIP/cpu_function_atmos_ρq_tot_1979-01-01T00-03-20.hdf5"
27+
cpu_hdf5reader = InputOutput.HDF5Reader(cpu_filename, comms_ctx)
28+
cpu_atmos_ρq_tot = InputOutput.read_field(cpu_hdf5reader, varname)
29+
close(cpu_hdf5reader)
30+
31+
gpu_filename = "experiments/AMIP/gpu_function_atmos_ρq_tot_1979-01-01T00-03-20.hdf5"
32+
gpu_hdf5reader = InputOutput.HDF5Reader(gpu_filename, comms_ctx)
33+
gpu_atmos_ρq_tot = InputOutput.read_field(gpu_hdf5reader, varname)
34+
close(gpu_hdf5reader)
35+
36+
cpu_atmos_ρq_tot == gpu_atmos_ρq_tot # false temporal map, true function
37+
abs(mean(parent(cpu_atmos_ρq_tot)) - mean(parent(gpu_atmos_ρq_tot))) < eps(Float64) # true
38+
39+
# land temp
40+
varname = "land_T"
41+
comms_ctx = ClimaComms.SingletonCommsContext()
42+
43+
cpu_filename = "experiments/AMIP/cpu_function_land_T_1979-01-01T00-03-20.hdf5"
44+
cpu_hdf5reader = InputOutput.HDF5Reader(cpu_filename, comms_ctx)
45+
cpu_land_T = InputOutput.read_field(cpu_hdf5reader, varname)
46+
close(cpu_hdf5reader)
47+
48+
gpu_filename = "experiments/AMIP/gpu_function_land_T_1979-01-01T00-03-20.hdf5"
49+
gpu_hdf5reader = InputOutput.HDF5Reader(gpu_filename, comms_ctx)
50+
gpu_land_T = InputOutput.read_field(gpu_hdf5reader, varname)
51+
close(gpu_hdf5reader)
52+
53+
cpu_land_T == gpu_land_T # false
54+
abs(mean(parent(cpu_land_T)) - mean(parent(gpu_land_T))) < eps(Float64) # true
55+
56+
# land water
57+
varname = "land_W"
58+
comms_ctx = ClimaComms.SingletonCommsContext()
59+
60+
cpu_filename = "experiments/AMIP/cpu_function_land_W_1979-01-01T00-03-20.hdf5"
61+
cpu_hdf5reader = InputOutput.HDF5Reader(cpu_filename, comms_ctx)
62+
cpu_land_W = InputOutput.read_field(cpu_hdf5reader, varname)
63+
close(cpu_hdf5reader)
64+
65+
gpu_filename = "experiments/AMIP/gpu_function_land_W_1979-01-01T00-03-20.hdf5"
66+
gpu_hdf5reader = InputOutput.HDF5Reader(gpu_filename, comms_ctx)
67+
gpu_land_W = InputOutput.read_field(gpu_hdf5reader, varname)
68+
close(gpu_hdf5reader)
69+
70+
cpu_land_W == gpu_land_W # false
71+
abs(mean(parent(cpu_land_W)) - mean(parent(gpu_land_W))) < eps(Float64) # true
72+
73+
# ocean temp
74+
varname = "ocean_T_sfc"
75+
comms_ctx = ClimaComms.SingletonCommsContext()
76+
77+
cpu_filename = "experiments/AMIP/cpu_function_ocean_T_sfc_1979-01-01T00-03-20.hdf5"
78+
cpu_hdf5reader = InputOutput.HDF5Reader(cpu_filename, comms_ctx)
79+
cpu_ocean_T_sfc = InputOutput.read_field(cpu_hdf5reader, varname)
80+
close(cpu_hdf5reader)
81+
82+
gpu_filename = "experiments/AMIP/gpu_function_ocean_T_sfc_1979-01-01T00-03-20.hdf5"
83+
gpu_hdf5reader = InputOutput.HDF5Reader(gpu_filename, comms_ctx)
84+
gpu_ocean_T_sfc = InputOutput.read_field(gpu_hdf5reader, varname)
85+
close(gpu_hdf5reader)
86+
87+
cpu_ocean_T_sfc == gpu_ocean_T_sfc # false
88+
abs(mean(parent(cpu_ocean_T_sfc)) - mean(parent(gpu_ocean_T_sfc))) < eps(Float64) # true temporal map, false function (1.13e-13)

0 commit comments

Comments
 (0)