-
Notifications
You must be signed in to change notification settings - Fork 446
Homme(xx)/SL: Finish C++/Kokkos for ETM; modify vertical discretization. #7807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,4 @@ | ||
| ATMCHANGE=$CIMEROOT/../components/eamxx/scripts/atmchange | ||
|
|
||
| $ATMCHANGE semi_lagrange_trajectory_nsubstep=2 -b | ||
| $ATMCHANGE semi_lagrange_trajectory_nvelocity=3 -b | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| # This utility checks output of the form | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Support homme_integration transport-test error checking in the case of known solutions. |
||
| # planar_conv> l2 linf | ||
| # planar_conv> Q 1 3.7612654153016604E-03 9.8620728873592828E-03 | ||
| # planar_conv> Q 2 3.9526251584022527E-03 8.2639849437505641E-03 | ||
| # against caller-provided upper bounds on the l2 norms. Output of this sort | ||
| # appears on stdout at the end of some tracer transport tests. 'planar_conv' can | ||
| # be something else; it is caller-configurable. Example usage: | ||
| # set(TCEN_ERROR_ANCHOR "planar_conv") | ||
| # set(TCEN_FILENAME "out.txt") | ||
| # set(TCEN_UPPER_BOUNDS "3.9e-3;4.1e-3") | ||
| # configure_file(TransportCheckErrorNorms.cmake.in check.cmake @ONLY) | ||
| # add_test( | ||
| # NAME "${TEST_NAME}_l2err" | ||
| # COMMAND ${CMAKE_COMMAND} -P check.cmake | ||
| # WORKING_DIRECTORY ${HOMME_BINARY_DIR}/tests/${TEST_NAME}) | ||
| # set_tests_properties( | ||
| # "${TEST_NAME}_l2err" PROPERTIES DEPENDS "${TEST_NAME}") | ||
| # Function check_transport_error_norms in HommeMacros.cmake encapsulates the | ||
| # above commands. | ||
|
|
||
| function(check_error_norms test_name filename upper_bounds) | ||
| execute_process(COMMAND grep "${test_name}> Q" ${filename} OUTPUT_VARIABLE grep_stdout) | ||
| separate_arguments(tokens NATIVE_COMMAND "${grep_stdout}") | ||
| list(LENGTH upper_bounds nchk) | ||
| math(EXPR nchk "${nchk} - 1") | ||
| foreach(idx RANGE 0 ${nchk}) | ||
| math(EXPR tidx "3 + 5 * ${idx}") | ||
| list(GET tokens ${tidx} e) | ||
| list(GET upper_bounds ${idx} ub) | ||
| if(e GREATER ub) | ||
| message(FATAL_ERROR "${e} should be <= ${ub} but is not") | ||
| endif() | ||
| endforeach() | ||
| endfunction() | ||
|
|
||
| check_error_norms( | ||
| "@TCEN_ERROR_ANCHOR@" | ||
| "@TCEN_FILENAME@" | ||
| "@TCEN_UPPER_BOUNDS@") | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -44,7 +44,8 @@ SET(CMAKE_Fortran_COMPILER "mpifort" CACHE STRING "") | |
| SET(CMAKE_CXX_COMPILER "mpicxx" CACHE STRING "") | ||
|
|
||
| #AOT flags | ||
| SET(SYCL_COMPILE_FLAGS "-std=c++17 -fsycl -fsycl-device-code-split=per_kernel -fno-sycl-id-queries-fit-in-int -fsycl-unnamed-lambda -Xclang -fsycl-allow-virtual-functions") | ||
| #SET(SYCL_COMPILE_FLAGS "-std=c++17 -fsycl -fsycl-device-code-split=per_kernel -fno-sycl-id-queries-fit-in-int -fsycl-unnamed-lambda -Xclang -fsycl-allow-virtual-functions") | ||
| SET(SYCL_COMPILE_FLAGS "-std=c++17 -fsycl -fsycl-device-code-split=per_kernel -fno-sycl-id-queries-fit-in-int -fsycl-unnamed-lambda") | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is for standalone-Homme builds on Aurora. It looks like |
||
| SET(SYCL_LINK_FLAGS "-Wl,--no-relax -flink-huge-device-code -fsycl-max-parallel-link-jobs=32 -fsycl -fsycl-device-code-split=per_kernel -fsycl-targets=intel_gpu_pvc") | ||
|
|
||
| SET(ADD_Fortran_FLAGS "-fc=ifx -fpscomp logicals -O3 -DNDEBUG -DCPRINTEL -g" CACHE STRING "") | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -54,6 +54,7 @@ IF (${IFORT_RESULT} EQUAL 0) | |
| SET (ADD_Fortran_FLAGS "-traceback" CACHE STRING "") | ||
| SET (ADD_C_FLAGS "-traceback" CACHE STRING "") | ||
| SET (ADD_CXX_FLAGS "-traceback" CACHE STRING "") | ||
| SET (BUILD_HOMME_THETA_KOKKOS TRUE CACHE BOOL "") | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This enables C++/Kokkos testing in the optimized test of homme_integration. Previously, only the BFB test would build the C++/Kokkos components. The optimized test will now run some unit tests and tracer transport tests that have analytical solutions and checks on those solutions. |
||
| ELSE() | ||
| SET (MKLROOT $ENV{MKLROOT} CACHE FILEPATH "") | ||
| SET (HOMME_FIND_BLASLAPACK TRUE CACHE BOOL "") | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update a test now that nvelocity > 2 is implemented for EAMxx.