Giter Club home page Giter Club logo

miniweatherml's Issues

hdf5 flags for Summit config file

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"

"inference_ponni" Supercell Kesler Not Working

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.

Add coupler snapshots + dataGen modules

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.