mrnorman / miniweatherml Goto Github PK
View Code? Open in Web Editor NEWExploring Machine Learning methods and workflows in a simplified weather model
License: BSD 2-Clause "Simplified" License
Exploring Machine Learning methods and workflows in a simplified weather model
License: BSD 2-Clause "Simplified" License
The MW_LINK_FLAGS
in the Summit config file may need to be updated as
export MW_LINK_FLAGS="`${OLCF_NETCDF_C_ROOT}/bin/nc-config --libs` -L/ccs/home/imn/yaml/lib64 -lyaml-cpp -L${OLCF_PARALLEL_NETCDF_ROOT}/lib -lpnetcdf -lyaml-cpp -lhdf5_hl -lhdf5"
Coupler snapshots will take in a std:vectorstd::string varnames. Then create a DataManager with just those and pass it back.
dataGen modules will take (coupler,dt_phys,snapshot1,snapshot2)
Hello,
I am exploring the supercell_kessler_surrogate
example, and have successfully built it, but the actual simluation isn't working correctly.
I made one change to the microphysics_physics_ponni.h
file to print more information about the domain:
diff --git a/experiments/supercell_kessler_surrogate/custom_modules/microphysics_kessler_ponni.h b/experiments/supercell_kessler_surrogate/custom_modules/microphysics_kessler_ponni.h
index 4b4c862..571f206 100644
--- a/experiments/supercell_kessler_surrogate/custom_modules/microphysics_kessler_ponni.h
+++ b/experiments/supercell_kessler_surrogate/custom_modules/microphysics_kessler_ponni.h
@@ -201,10 +201,6 @@ namespace custom_modules {
rho_r_tmp(k,i) = std::max( 0._fp , ponni_out( 3 , iglob ) * (scl_out(3,1) - scl_out(3,0)) + scl_out(3,0) );
});
- // std::cout << yakl::intrinsics::maxval( temp_tmp ) << "\n:";
- // std::cout << yakl::intrinsics::maxval( rho_v_tmp ) << "\n:";
- // std::cout << yakl::intrinsics::maxval( rho_c_tmp ) << "\n:";
- // std::cout << yakl::intrinsics::maxval( rho_r_tmp ) << "\n:";
/////////////////////////////////////////////////////////////////////////
// NORMAL
@@ -263,6 +259,14 @@ namespace custom_modules {
temp_diff (k,i) = temp_tmp (k,i) - temp (k,i);
});
+ std::cout << "Max rho_v " << yakl::intrinsics::maxval(rho_v) << "\n";
+ std::cout << "Max rho_c " << yakl::intrinsics::maxval(rho_c) << "\n";
+ std::cout << "Mac rho_r " << yakl::intrinsics::maxval(rho_r) << "\n";
+
+ std::cout << "Sum rho_v " << yakl::intrinsics::sum(rho_v) << "\n";
+ std::cout << "Sum rho_c " << yakl::intrinsics::sum(rho_c) << "\n";
+ std::cout << "Sum rho_r " << yakl::intrinsics::sum(rho_r) << "\n";
+
std::cout << "Relative diff rho_v: " << yakl::intrinsics::sum( rho_v_diff ) / rho_v_diff.size() << "\n";
std::cout << "Relative diff rho_c: " << yakl::intrinsics::sum( rho_c_diff ) / rho_c_diff.size() << "\n";
std::cout << "Relative diff rho_r: " << yakl::intrinsics::sum( rho_r_diff ) / rho_r_diff.size() << "\n";
When I run: mpirun -np 1 ./inference_ponni inputs/input_euler3d.yaml
it produces the output:
Using YAKL Timers
Using memory pool. Initial size: 4.92383GB ; Grow size: 4.92383GB.
NVIDIA A100-SXM4-40GB
Inference model has 5 layers -- with 104 total trainable parameters.
1: Matvec with 5 inputs, 10 outputs, and 50 trainable parameters
2: Bias with 10 inputs, 10 outputs, and 10 trainable parameters
3: Relu with 10 inputs, 10 outputs, and 0 trainable parameters
4: Matvec with 10 inputs, 4 outputs, and 40 trainable parameters
5: Bias with 4 inputs, 4 outputs, and 4 trainable parameters
For Array labeled: "Unlabeled: YAKL_DEBUG CPP macro not defined"
Number of Dimensions: 2
Total Number of Elements: 10
Dimension Sizes: 5, 2,
201.819 302.293 0.0929455 1.14418 0 0.0194617 0 0.00439983 0 0.015579
For Array labeled: "Unlabeled: YAKL_DEBUG CPP macro not defined"
Number of Dimensions: 2
Total Number of Elements: 8
Dimension Sizes: 4, 2,
201.819 302.293 0 0.0194617 0 0.00441832 0 0.0155779
Max rho_v 0.0155121
Max rho_c 0.000127301
Mac rho_r -0
Sum rho_v -nan
Sum rho_c 0.113297
Sum rho_r -nan
Relative diff rho_v: -nan
Relative diff rho_c: -9.06249e-06
Relative diff rho_r: -nan
Relative diff temp : -nan
Max rho_v -1.79769e+308
Max rho_c -1.79769e+308
Mac rho_r -1.79769e+308
Sum rho_v -nan
Sum rho_c -nan
Sum rho_r -nan
Relative diff rho_v: -nan
Relative diff rho_c: -nan
Relative diff rho_r: -nan
...
It seems like the domain is not initialized corretly to begin with? I'm not sure what's going on, or if I have done something wrong. I'm happy to provide any additional information you may need.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.