https://github.com/E3SM-Project/E3SM

sort by:
Revision Author Date Message Commit Date
cc84d62 Add radiation call to crm time step loop 11 August 2020, 18:29:23 UTC
d4d481b Add call to CRM version of radiation_tend 11 August 2020, 18:29:23 UTC
5e93e21 Add crm_radiation interface 11 August 2020, 18:29:23 UTC
394ddf9 Merge branch 'rgknox/lnd/fates-api13' (PR #3756) This set of changes updates E3SM compatibility with FATES API 13. Noteable changes are interface hooks for fixed biogreography, external lightning datasets and land-use datasets. The first two interface changes are just hooks, and will forgo functionality until work is allocated to do so. The land-use dataset read functionality is forthcoming. [non-BFB] 10 August 2020, 15:28:06 UTC
43d69eb Merge branch 'darincomeau/cime/update_for_drof_options' into master (PR #3761) Update CIME hash to use new functionality in data runoff model. Update the CIME hash from 562a9a4 (HEAD) Merge pull request 3636 from ESMCI/singhbalwinder/pat-worley-provenance-changes to the current master 9239542 (HEAD, origin/master, origin/HEAD, master) Merge pull request 3644 from ESMCI/darincomeau/reorder_drof_options Change list: * Add support to the data runoff model for use in E3SM Cryosphere configurations, which use runoff files with modified solid/liquid runoff around Antarctica. * Fix G_TestBuildSystem test * PET Test Baseline Generation and Comparison Improvement Bug fixes: * G_TestBuildSystem was haning on Cheyenne. Doesn't affect E3SM. * update cime/src/externals/pio2 * Better logic when compset is tested in aux_ test [BFB] * origin/darincomeau/cime/update_for_drof_options: Updating CIME hash to use new functionality in data runoff model. 07 August 2020, 20:43:36 UTC
4ed3fe6 Merge branch 'whannah/atm/remove_carma' (PR #3697) This removes all code and support for the Community Aerosol and Radiation Model for Atmospheres (CARMA). While CARMA has some advantages, there does not seem to be any interest in using or supporting it, so it was decided that it should be removed. This decision was discussed via confluence decision log. [BFB] 06 August 2020, 19:39:57 UTC
484d962 Updating CIME hash to use new functionality in data runoff model. 05 August 2020, 22:21:24 UTC
b92e95c Removed unused declaration of use_fates_spitfire. 05 August 2020, 19:08:01 UTC
3d47eb5 Merge branch 'donghuix/mosart/ugrid' (PR #3754) Following changes are made: 1. If there are lat/lon dimensions in the input file, MOSART will read/write in a structured grid format. If the dimension is `gridcell`, MOSART will read/write in an unstructured grid format. 2. Put elevation profiles into one input variable. 3. Adds a test of MOSART for an unstructured global domain. [BFB] 05 August 2020, 18:20:21 UTC
b45f5b7 Merge branch 'mark-petersen/ocean/GM_ISMF_fixes' (PR #3757) MPAS-Ocean: GM fixes This PR brings in a new mpas-source submodule with changes only to the ocean core. In it, integrals for computing GM kappa and the phase speed have been reworked to mitigate failures in ISMF simulations without redi. With this PR all configurations of GM work and the old 3DGM (N2_dependent) is recoverable to its original configuration. This PR will be non BFB in WC and Cryo configs. See MPAS-Dev/MPAS-Model#643 Fixes #3719 [non-BFB] [NML] 05 August 2020, 18:03:15 UTC
51d16dc Remove config_GM_visbeck_min_depth from namelist defaults 04 August 2020, 21:02:31 UTC
82a1b3f Update mpas-source: Ocean/gm ismf fixes 04 August 2020, 21:00:06 UTC
836acc1 Merge branch 'MT/hommetools' (PR #3593) 4 tools moved into the homme_tools framework recently created by @ambrad . Related tool code removed from model source code. Namelists for the individual tools are now much simpler and dont require running the full model. Documentation for all tools in homme/test/tool/README new tools added: SCRIP and latlon metadata generation GLL topo smoothing HOMME's built in netcdf interpolation to lat/lon grids generate mapping files based on HOMME's built in bilinear option SEMapping ( latlon meta data output ) code moved from EAM to this tool HOMME's "template" test was replaced with a homme_tool test, that tests options 1-4 above with an ne4 grid (and in the case of metadata, a lowres RRM grid). [BFB] 04 August 2020, 19:00:12 UTC
e7a8ea4 Merge branch 'CJVOGL/feature/arkode_homme_interface_update' into master (PR #3666) This PR significantly cleans up the ARKODE-HOMME interface by replacing the calls in HOMME to C-wrapper functions written specifically for HOMME with calls to new Fortran ARKODE modules (available in SUNDIALS >= 5.3.0). This refactor makes the ARKODE-HOMME interface substantially easier to maintain and enables more efficient solver approaches (e.g. a column-wise nonlinear solver approaches similar to the native HOMME method for implicit stages). All code changes are wrapped within preprocessor-directive condition statements, meaning this should produce BFB results with master when the interface is not active (it is inactive by default). @gardner48 and @cswoodward contributed in various ways to this. 04 August 2020, 18:56:26 UTC
0006c91 Merge branch 'jonbob/seaice/fix-config_dt' (PR #3734) Add NCPL_BASE_PERIOD set to year as an option for determining config_dt This PR adds the NCPL_BASE_PERIOD of a year as an option to the mpas-seaice config_dt calculation logic. It had previously been modified for base period options of an hour or a day, but recent BG cases show it needs to add the year option as well. [BFB] 04 August 2020, 17:55:21 UTC
8ff31b3 fates api 13: added call to getsettime 03 August 2020, 20:54:58 UTC
e277f97 Re-adding the GetAndSetTime routine in the fates interface 03 August 2020, 18:19:25 UTC
497c180 fates api13, update default parameter file 03 August 2020, 16:57:58 UTC
25dcc13 modify read_elevation_profile for compatibility 01 August 2020, 05:38:42 UTC
72fd167 FATES API 13: updated pointer to fates hash 31 July 2020, 22:54:22 UTC
85390d6 fates api 13, changed dyn harvest scalars to public 31 July 2020, 22:53:56 UTC
61aa58a Merge branch 'azamat/jlse/update-libs' (PR #3712) Update libraries on JLSE machine: * fix gnu compiler * add openmpi library * update pe and affinity settings [NML] 31 July 2020, 20:12:56 UTC
8d8bf3d fates api13, initial changes 31 July 2020, 18:11:01 UTC
5403c82 Merge branch 'darincomeau/update_JRA1p4' (PR #3749) Adding compset for JRA55 v1.4 through 2018 This PR adds support for the JRA55v1.4 forcing dataset through year 2018 by adding the GMPAS-JRA1p4 compset. [BFB] 30 July 2020, 20:00:13 UTC
2e1273b Merge branch 'jgfouca/update_cime_sub' into master (PR #3747) Change list: * Remove E3SM CIME subtree managent tools and libraries * Add default ATM_NCPL=72 for ne45 * Modifications in MCT-driver to support MOSART stratification (adds coszen field) * Archive atm_chunk_costs with other performance data Bug fixes: * Use SRCROOT instead of CIMEROOT in key places [BFB] - but adds a new field, so tests will DIFF * jgfouca/update_cime_sub: Update CIME submodule again 30 July 2020, 17:36:41 UTC
ba50446 turn on inundation mode for mosart unstructured grid 30 July 2020, 15:45:53 UTC
9531784 add a test for mosart unstructured grid 30 July 2020, 01:44:58 UTC
06ccb63 Update affinity settings 29 July 2020, 22:47:39 UTC
0e50d01 Merge branch 'worleyph/machinefiles/compy_pgi_flags' (PR #3748) a) An F case -res ne4pg2_ne4pg2 -compset FC5AV1C-L -mach compy -compiler pgi is not BFB with respect to changes in PE layout, for example, 64x1 compared to 96x1, with the current optimization flags. Reproducibility can be restored by compiling the CICE component with the flag -Mnovect. This is implemented by adding the rule <append COMP_NAME="cice">-Mnovect</append> to config_compilers.xml, which adds if("${COMP_NAME}" STREQUAL "cam") set(FFLAGS "${FFLAGS} -Mnovect") endif() to Macros.cmake and ifeq ($(COMP_NAME),cice) FFLAGS := $(FFLAGS) -Mnovect endif Macros.make in a case directory. b) F cases on Compy when using the PGI compiler are not reproducible with respect to setting pcols at runtime (the default) as compared to setting pcols at compile-time, via the -pcols option in CAM_CONFIG_OPTS in env_builds.xml. This issue is resolved by lowering the optimization from -O2 to -O1 for three files cam/src/chemistry/aerosol/dust_sediment_mod.F90 cam/src/chemistry/modal_aero/modal_aero_convproc.F90 cam/src/physics/cam/zm_conv.F90 This is implemented in a Depends file for compy when using the PGI compiler (Depends.compy.pgi and Depends.compy.pgi.cmake), Fixes #3739 Fixes #3746 [Non-BFB] (for Compy jobs using PGI) 29 July 2020, 18:38:54 UTC
ffe5c28 Merge branch 'mark-petersen/mpas/framework_update_200723' (PR #3737) Update MPAS framework This PR brings in a new mpas-source submodule with updates to the mpas framework itself, plus changes to the cores supporting the framework update. Some changes are made to the atmosphere core, even though it is not used by E3SM, in order to maintain consistency with the framework. This update includes the following individual branches and PRs, many of which are additions to the makefiles for summit, or optional libraries: * az/azamat/mpas-cmake/mpas-tool-dir (MPAS-Dev/MPAS-Model#629) * init_atmosphere/kd_tree_ties (MPAS-Dev/MPAS-Model#630) * mark-petersen/framework/add_FillValue (MPAS-Dev/MPAS-Model#616) * mark-petersen/framework/add_lapack_option (MPAS-Dev/MPAS-Model#613) * amametjanov/framework/nullify-field-pointers (MPAS-Dev/MPAS-Model#578) * framework/makefile_e3sm (MPAS-Dev/MPAS-Model#603) * xylar/framework/make_shell_bash (MPAS-Dev/MPAS-Model#594) * registry/missing_value (MPAS-Dev/MPAS-Model#562) * pwolfram/updates_make_intel_stack (MPAS-Dev/MPAS-Model#592) * azamat/framework/pgi-cpr-omp-workaround (MPAS-Dev/MPAS-Model#449) * az/framework/e3sm-cmake-qnosmp-typo (MPAS-Dev/MPAS-Model#579) * xylar/compass/add_prerequisite_tag * atmosphere/fix_timekeeping_imports (MPAS-Dev/MPAS-Model#582) * xylar/fix_docs_ci (MPAS-Dev/MPAS-Model#575) * xylar/add_compass_docs (MPAS-Dev/MPAS-Model#472) * philipwjones/framework/summitmake (MPAS-Dev/MPAS-Model#536) * atmosphere/atm_core_cleanup (MPAS-Dev/MPAS-Model#548) * init_atmosphere/parse_geoindex (MPAS-Dev/MPAS-Model#459) * xylar/compass/add_copy_file (MPAS-Dev/MPAS-Model#467) * init_atmosphere/kd_tree (MPAS-Dev/MPAS-Model#438) * init_atmosphere/mpas_stack (MPAS-Dev/MPAS-Model#426) * operators/add_mpas_in_cell (MPAS-Dev/MPAS-Model#400) Fixes #3396 Fixes #3236 [BFB] 29 July 2020, 15:25:30 UTC
22d9341 Merge branch 'jonbob/clm/fix-dtime' (PR #3725) Make dtime calculation dependent on value of NCPL_BASE_PERIOD This PR modifies the ELM namelist build system so that the coupling frequency it computes, in the form of variable dtime, is dependent on the value of NCPL_BASE_PERIOD. Previously it was hard-wired to assume the base period was one day and LND_NCPL was the number of couplings per day. This update was necessary for getting IG cases working, where the NCPL_BASE_PERIOD is often a year so that the landice code can run on order of days. Tested by @stephenprice during IG-case development [BFB] 29 July 2020, 15:13:08 UTC
08c7483 Merge branch 'whannah/mmf/enable-crm-friction' into master (#3675) The MMF is almost always run in a 2D configuration in which momentum fields are un-coupled, and so surface friction is felt very indirectly and often does not match the direction of near-surface wind in the CRM, which can lead to unrealistic boundary layer structures. This PR enables a pre-existing CRM friction calculation to be on by default, which does not affect the MMF coupling or double count the actual friction because the momentum fields remain uncoupled. Eventually the ESMT scheme will handle all convective momentum transport in all MMF configurations after we port it to SAM++ and validate that it runs well on GPUs. [non-BFB] 29 July 2020, 15:06:23 UTC
b951b96 Merge branch 'jonbob/cam/fix-dtime' (PR #3733) Make dtime calculation dependent on value of NCPL_BASE_PERIOD This PR modifies the EAM namelist build system so that the coupling frequency it computes, in the form of variable dtime, is dependent on the value of NCPL_BASE_PERIOD that is set in env_run.xml. Previously it was hard-wired to assume the base period was one day and ATM_NCPL was the number of couplings per day. This update was necessary for getting IG cases working, where the NCPL_BASE_PERIOD is often a year so that the landice code can run on order of days. Tested by @stephenprice during BG-case development [BFB] 29 July 2020, 14:59:19 UTC
a2f54f3 Adding compset for JRA55 v1.4 through 2018. 28 July 2020, 21:32:42 UTC
f244bd9 freedecomp for read_elevation_profile 28 July 2020, 16:50:35 UTC
8da8329 Add unstructure grid read and write for MOSART, and modify the input of elevation profile 28 July 2020, 16:50:20 UTC
1018af5 create Depends file for compy and pgi F cases on Compy when using the PGI compiler are not reproducible with respect to setting pcols at runtime (the default) as compared to setting pcols at compile-time, via the -pcols option in CAM_CONFIG_OPTS in env_builds.xml. This issue is resolved by lowering the optimization from -O2 to -O1 for three files cam/src/chemistry/aerosol/dust_sediment_mod.F90 cam/src/chemistry/modal_aero/modal_aero_convproc.F90 cam/src/physics/cam/zm_conv.F90 This is implemented by creating a Depends file for compy when using the PGI compiler (Depends.compy.pgi and Depends.compy.pgi.cmake), [Non-BFB] 28 July 2020, 01:48:44 UTC
bbec172 add -Mnovect when compiling cice using PGI on compy An F case -res ne4pg2_ne4pg2 -compset FC5AV1C-L -mach compy -compiler pgi is not BFB with respect to changes in PE layout, for example, 64x1 compared to 96x1, with the current optimization flags. Reproducibility can be restored by compiling the CICE component with the flag -Mnovect. This is implemented by adding the rule <append COMP_NAME="cice">-Mnovect</append> to config_compilers.xml, which adds if("${COMP_NAME}" STREQUAL "cam") set(FFLAGS "${FFLAGS} -Mnovect") endif() to Macros.cmake and ifeq ($(COMP_NAME),cice) FFLAGS := $(FFLAGS) -Mnovect endif Macros.make in a case directory. [Non-BFB] 28 July 2020, 00:39:39 UTC
d30f3c2 Update CIME submodule again [BFB] 27 July 2020, 19:23:42 UTC
1027227 Merge branch 'jgfouca/cmake/better_support_for_removing_flags' into master (PR #3705) Fixes for languages other than fortran Merge 2 for this PR. [BFB] * origin/jgfouca/cmake/better_support_for_removing_flags: Fixes for languages other than fortran 27 July 2020, 18:54:35 UTC
832971c Merge branch 'bishtgautam/lnd/adds-sms-test' (PR #3726) Adds tests mod to SMS.r05_r05.I1850CLM45CN, clm-qian_1948, that avoids downloading multiple DATAM files by setting the end year to be the same as the start year. Also move test back to land_developer [BFB] 27 July 2020, 18:34:09 UTC
9c987a3 Merge branch 'worleyph/cam/fix_uninitialized_variable'... (PR #3742) Initialize phys_proc_cost The variable phys_proc_cost was introduced in PR #3689 to measure the time spent in the loops over chunks in physpkg.F90. This captures a running total of the form phys_proc_cost = phys_proc_cost + <update> after each exection of the indicated loops over chunks, and so assumes that phys_proc_cost is initialized to 0.0_r8. However, this initialization is missing. During testing, compilers (by default) initialized this variable to zero, but this is not guaranteed, and tests with DEBUG set to TRUE in env_build.xml failed due to this uninitialized variable. Here the required initialization is introduced. [BFB] Fixes #3741 * worleyph/cam/fix_uninitialized_variable: Initialize phys_proc_cost 27 July 2020, 16:00:19 UTC
d49ec78 Update mpas-source: update MPAS framework 27 July 2020, 12:51:31 UTC
4d24197 Fixes for languages other than fortran 26 July 2020, 22:46:32 UTC
7f8c72c Initialize phys_proc_cost The variable phys_proc_cost was introduced in a recent PR to measure the time spent in the loops over chunks in physpkg.F90. This captures a running total of the form phys_proc_cost = phys_proc_cost + <update> after each exection of the indicated loops over chunks, and so assumes that phys_proc_cost is initialized to 0.0_r8. However, this initialization is missing. During testing, compilers (by default) initialized this variable to zero, but this is not guaranteed, and tests with DEBUG set to true in env_build.xml failed due to this uninitialized variable. Here the required initialization is introduced. [BFB] 25 July 2020, 12:17:21 UTC
9cbd0ee Remove SMS.r05_r05.I1850CLM45CN. from integration Since this test is back on land-developer, remove from integration 25 July 2020, 01:19:24 UTC
7cee683 Avoid NaNs and div-by-0 in modal_aero chemistry 25 July 2020, 00:19:00 UTC
c1315d3 pelayout updates 25 July 2020, 00:18:59 UTC
c13b495 Fix gnu segfaults and FPEs 25 July 2020, 00:18:50 UTC
83df6a4 Fix gnu threading 25 July 2020, 00:18:49 UTC
fd61bcc Add blas/lapack paths for gnu 25 July 2020, 00:18:39 UTC
0e4451b Update JLSE gnu libraries 25 July 2020, 00:18:24 UTC
2eb5dd9 Update JLSE intel compiler libraries 25 July 2020, 00:17:31 UTC
3346ced Turn surface flux smoothing off for MMF Turn surface flux smoothing off for MMF. Turns out, the surface flux smoothing causes non-BFB restarts when using CRM friction. Ultimately we want to turn off the flux smoothing anyways, and this change fixes the non-BFB restarts with CRM friction. 25 July 2020, 00:06:15 UTC
42c9873 Merge branch 'worleyph/cam/assign_chunks_opt' (PR #3689) Improve load balancing when assigning chunks The current EAM physics load balancing scheme attempts to create chunks that are all have approximately the same computational cost, and then assigns the chunks to processes in such a way as to minimize the number of columns that need to be sent to other processes during d_p_coupling and p_d_coupling (hopefully decreasing communication overhead). However, if not all chunks have the identical number of columns or if the columns are not all of equal cost, then the more expensive chunks are not necessarily spread equally between the processes, and unnecessary load imbalance can result. Here, modifications are made to improve the load balance in these situations, while still preserving some of the communication avoiding capability of the original algorithm. To enable this optimization, the threading schedule for chunks in physpkg is specifed as SCHEDULE(static,1), so that chunks are assigned in a wrap map fashion among the threads on a process. Given that there are typically relatively few chunks assigned to each thread, and that the cost of the chunks can be estimated pretty well and assigned appropriately among the threads (if we know the schedule), this is unlikely to hurt performance. Experiments indicate that performance improves with this change (in conjunction with the rest of the PR). As part of the optimization to the assignment of chunks to threads, the algorithm to calculate the number of chunks to processes is modified to calculate the number of chunks to assign per thread, and then use this to determine the number of chunks to assign to each process. This supports future heterogenous systems where not all processes have the same number of threads, though it still assumes that all threads are equally capable. To document the load balance and associated performance, performance per process over the chunk loops in physpkg.F90 is collected and compared to the cost per chunk (which was already collected). The output of print_cost_p is modified to include these new data. The output of print_cost_p is also now archived with the other performance data at the end of the run. Finally, there is currently a check whether a runtime pcols specification (phys_chnk_fdim) disagrees with a compile-time specification. If so, a warning message is output and the model continues running using the compile-time specification. This is even triggered by the default setting of phys_chnk_fdim, which means that the warning message is always output when pcols is specified at compile-time. This is modified so that a warning message is only generated when the runtime pcols namelist variable (phys_chnk_fdim) specifies a specific pcols that is not the same as the compile-time set value. A value phys_chnk_fdim < 1 indicates that the model should decide what value of pcols to use, and setting pcols at compile-time implicitly defines what this default value is, so the two settings are not in conflict. [BFB] * worleyph/cam/assign_chunks_opt: Eliminate inconsistency in process min heap Minimize number of columns communicated during coupling Change variable names and also eliminate arbitrary "magic numbers" Eliminate unuseful warning when specifying pcols at compile-time Modify comments to match style used in create_chunks Improve load balancing when chunks have different costs Modify names of variables and routine assoc, with min heap of chunks Improve load balancing when processes have different numbers of threads Add OpenMP scheduling and augment performance diagnostic output 24 July 2020, 18:44:07 UTC
a82bd73 Also remove -O1 from deoptimized PGI compilations 24 July 2020, 18:06:57 UTC
e84b826 Merge branch 'mark-petersen/ocean/improveGMdrhodx' (PR #3730) Update mpas-source: improve GM drhodx This PR brings in a new mpas-source submodule with changes only to the ocean core. Currently the GM horizontal buoyancy gradient is computed at a fixed vertical index. At a number of places in the ocean this is problematic where layer thickness changes quickly between cells (especially near the bottom for partial bottom cells). See MPAS-Dev/MPAS-Model#633 [non-BFB] 24 July 2020, 17:30:28 UTC
abbfb64 Merge branch 'jonbob/mosart/fix-coupling_period' (PR #3724) Make coupling_period calculation dependent on NCPL_BASE_PERIOD This PR modifies the MOSART build-namelist so that the coupling frequency it computes, in the form of variable coupling_period, is dependent on the value of NCPL_BASE_PERIOD. Previously it was hard-wired to assume the base period was one day and ROF_NCPL was the number of couplings per day. This update was necessary for getting IG cases working, where the NCPL_BASE_PERIOD is often a year so that the landice code can run on order of days. [BFB] 24 July 2020, 17:22:57 UTC
d6001e8 Remove missed carma tests modified: components/cam/test/system/input_tests_master 24 July 2020, 14:56:14 UTC
746314d correct usage of bash == vs -eq 23 July 2020, 23:59:55 UTC
7d6f28a Add NCPL_BASE_PERIOD set to year as an option for determining config_dt 23 July 2020, 20:46:13 UTC
703baa3 Remove logic checking if ncpl_base_period is defined 23 July 2020, 18:48:23 UTC
4ea385c update mpas-source:improve GM drhodx 23 July 2020, 18:15:55 UTC
045cb66 Merge branch 'jgfouca/cime/update_sub' into master (PR #3728) Update CIME submodule [NML] adds IOP setting * jgfouca/cime/update_sub: Update CIME submodule 23 July 2020, 17:11:22 UTC
2ee79c9 Make dtime calculation dependent on value of NCPL_BASE_PERIOD 23 July 2020, 17:10:59 UTC
1b48c3b Merge branch 'mark-petersen/ocean/remove_scratch_allocate_init_analysis' (PR #3717) Update mpas-source: remove scratch allocates, analysis and init This PR brings in a new mpas-source submodule with changes only to the ocean core. Those changes represent two MPAS-Ocean PRs with similar improvements but to two different parts of the model: * Remove scratch allocates and config. Part 1: analysis members (MPAS-Dev/MPAS-Model#539) * Remove scratch allocates and config. Part 2: Init mode (MPAS-Dev/MPAS-Model#553) These are each part of MPAS-Dev/MPAS-Model#457, which replaces scratch allocates throughout the model. We felt it was safer to convert the model in smaller pieces. [BFB] 23 July 2020, 15:15:53 UTC
8393a70 Merge branch 'jonbob/elm/fix-snicar-h2osno' (PR #3718) Change source of h2osno and frac_sno in SNICAR_AD_RT This PR changes the source of two associated arrays, h2osno and frac_sno, in subroutine SNICAR_AD_RT. Previously the two arrays had pointed at the waterstate_vars derived type, but subroutine SNICAR_RT, which it optionally replaces, pointed those arrays to derived type col_ws. When using the waterstate_vars derived type and use_snicar_ad set to true (meaning CLM was using SNICAR_AD_RT instead of SNICAR_RT), tests would fail after a couple of years with a traceback into subroutine TwoStream. Debugging indicated the problem was due to a 0 snow albedo in a cell whose snow fraction was 1, and more analysis found the 0 albedo was coming from SNICAR_AD_RT. Apparently the water state_vars value for h2osno for that cell was 0 and subsequently no albedo was calculated, though the col_ws value was non-zero and is used elsewhere in the calculation. With the current patch, the same test that had previously failed was run 20 years. [BFB] 23 July 2020, 15:09:38 UTC
fc26d9d Eliminate inconsistency in process min heap The previous commit allowed the process min heap to lose the min heap property for short periods. While this did not cause problems in test cases, it might lead to problems in the future. Here this problem is resolved by calculating an updated process cost when thread 0 is assigned a new chunk, but not changing the cost associated with the process in the min heap until after new chunks are also assigned to the other threads. [BFB] 23 July 2020, 01:04:00 UTC
7018490 Minimize number of columns communicated during coupling The initial implementation of the new algorithm to assign chunks to processes in a more load balanced way missed some opportunities to minimize the number of columns that need to be copied during couppling between the physics and dynamics. Here a change is made to require approximately the same number of column transfers as with the old chunk assignment algorithm when the chunks all have the same cost. Another change is to delay updating the process min heap after the estimated cost of a process changes (when a chunk is added to thread 0) until all other threads have had a chunk assigned to it. Since chunks are assigned in order of decreasing cost, the estimated cost of the process will not increase again until this occurs. The delay allows for addiitonal opportunities to minimize communication overhead by continuing to regard this process as having lower cost than it actually has. Finally, the format of the output in the file atm_chunk_costs.txt is modifed to include the number of columns in each chunk that do not have to transferred to other processes during coupling. [BFB] 23 July 2020, 01:03:59 UTC
946f292 Change variable names and also eliminate arbitrary "magic numbers" Changed names of variables in physpkg.F90 and phys_grid.F90 to be more easily distinguishable and self-documenting. For example, variables with the following elements in their names were expanded as noted (in new code - did not examine all of physpkg.F90 or phys_grid.F90): pcount => proc_cnt ccount => chnk_cnt pcost => proc_cost ccest => chnk_estcost ccost => chnk_cost tcest => thrd_estcost pcest => proc_estcost pheap => proc_heap cheap => chnk_heap cdex => chnk_dex or cdex => col_dex udex => used_col_dex Fixed typo in a variable description in the print_cost_p routine (in phys_grid.F90) Reworked logic to avoid division by zero or division resulting in an infinity to not use arbitrary "magic" numbers. [BFB] 23 July 2020, 01:03:39 UTC
8c308d6 Eliminate unuseful warning when specifying pcols at compile-time There is currently a check whether a runtime pcols specification (phys_chnk_fdim) disagrees with a compile-time specification. If so, a warning message is output and the model continues running using the compile-time specification. This is even triggered by the default setting of phys_chnk_fdim, which means that the warning message is always output when pcols is specified at compile-time. The default (phys_chnk_fdim == 0) implies that the model should determine what pcols should be set to. When defining pcols at compile-time, that changes what the model will determine pcols to be (at runtime), so phys_chnk_fdim == 0 does not conflict with a compile-time setting of pcols (with this interpretation). Here the logic is changed to remove the warning when phys_chnk_fdim <= 0 and pcols is also specified at compile-time. [BFB] 23 July 2020, 01:03:39 UTC
c755ceb Modify comments to match style used in create_chunks Reviewers for an earlier PR requested a change in the style of comments used in the routine create_chunks. Here the same style is implemented in the routines assign_chunks, pheap_adjust, and cheap_adjust. [BFB] 23 July 2020, 01:02:02 UTC
c7e3171 Improve load balancing when chunks have different costs The assign_chunks algorithm is modified to balance the total estimated cost per process while retaining the current approach of attempting to minimizing the communication costs in dp_coupling. This is implemented by introducing a min heap of processes ranked by the estimated cost based on the estimated cost of the chunks assigned to each process. Chunks are assigned in order of decreasing estimated cost, and estimated process cost is adjusted when assigning a chunk to thread 0 (assuming a wrap map of chunks to threads within a process and perfectly parallel computation between threads). If there are multiple candidate processes to which a chunk can be assigned, the chunk is assigned to a process which would minimize the communication cost in d_p_coupling and p_d_coupling. [BFB] 23 July 2020, 01:02:02 UTC
6347fd9 Modify names of variables and routine assoc, with min heap of chunks In future changes we will use a min heap of processes (with weights defined by estimated cost of chunks assigned to a process). Here the min heap of chunks used when assigning columns to chunks is renamed to cheap. Names of associated variables and routines are likewise modified, as is the corresponding documentation. [BFB] 23 July 2020, 01:02:01 UTC
643a319 Improve load balancing when processes have different numbers of threads In the case when processes do not all have the same number of threads, the logic in assign_threads may not calculate the number of chunks to be assigned to each process in a load-balanced way when the total number of chunks is not evenly divisible by the total number of threads. Here, the logic is modified to assign "extra" chunks: mod(total number of chunks,total number of threads) in a round-robin fashion, first to thread 0 in each process, then to thread 1, etc. If a process does not have a particular thread id, then it is skipped in this assignment. This approximately load balances across the threads, which is a more accurate metric when load balancing performance. [BFB] 23 July 2020, 01:02:01 UTC
7413594 Add OpenMP scheduling and augment performance diagnostic output Added a SCHEDULE(static,1) to the OpenMP loops over chunks in physpkg.F90 so that the assignment to threads is round-robin. This is in order to be consistent with the new algorithm being implemented in assign_chunks (and also demonstrates improved performance in validation experiments). Added phys_pcost (public) to phys_grid.F90, where phys_pcost is measured physics cost for the threaded loops over chunks in physpkgs.F90 (bc_physics and ac_physics), and added timing logic to physpkg.F90 to capture this data. Updated print_cost_p to calculate and output data on process-level performance for the threaded loops over chunks in physpkg.F90: PROC id nthrds nchnks estcost (norm) cost (norm) cost (seconds) 'speed-up' where estimated process cost is the maximum over the estimated thread costs, and the estimated thread cost is calculated from the chunks assigned to each thread, assuming a static round-robin distribution. Here process 'speed-up' is the sum of local chunk costs divided by local process cost. This is a measure of load balance, not traditional speed-up, which is relative to the serial cost. Reworked print_cost_p to rename variables in a consistent fashion. Added CHNK to the beginning of output lines with chunk-related performance data, to easily differentiate from the process-related performance data: CHNK owner lcid cid pcols ncols estcost (norm) cost (norm) cost (seconds) [BFB] 23 July 2020, 01:02:00 UTC
f3f7d6a Update CIME submodule [NML] adds IOP setting 22 July 2020, 22:39:13 UTC
12f9e10 update mpas-source: remove scratch allocates, analysis & init 22 July 2020, 21:05:06 UTC
ae90a7e Merge branch 'origin/oksanaguba/homme/clean-output' into master (PR #3592) Removing redundant code in computing levels for min and max print statements. 22 July 2020, 19:39:55 UTC
2249b67 Merge branch 'whannah/mmf/update-mmf-tests' (#3677) The MMF "test" compsets were originally created to shorten the run time of tests, but without any special development needs these compsets are unnecessary and just clutter up the compset configuration. If we decide we need smaller tests again it will be better to add a specific test mod rather than a special compset. [non-BFB] only for MMF tests since they will change 22 July 2020, 16:02:50 UTC
2362bed Merge branch 'akturner/seaice/snow_layer_check' (PR #3720) Update mpas-source: Add warning messages for snow and ice layers This PR brings in a new mpas-source submodule with changes only to the seaice core. It compares config options with initial condition values and adds a critical error if they differ. see MPAS-Dev PR #612 Fixes #3669 [BFB] 22 July 2020, 15:32:12 UTC
f7fbb1e Adds a new land test Adds the `SMS.r05_r05.I1850CLM45CN.clm-qian_1948` that avoids downloading multiple DATAM files by setting the end year to be the same as the start year. [BFB] 22 July 2020, 13:50:43 UTC
07e4df3 Merge branch 'whannah/atm/add_ne30pg1-3-4_support' (PR #3568) Add mapping/domain/topo/drydep files for running with certain tri-grid+physgrid configurations, and removes support for "pg1" grids. The new grids are: ne30pg3_r05_oECv3 ne30pg4_r05_oECv3 ne120pg2_r05_oECv3 conusx4v1_r05_oECv3 conusx4v1pg2_r05_oECv3 [BFB] Conflicts: cime 21 July 2020, 17:38:11 UTC
f5bdc12 Make dtime calculation dependent on value of NCPL_BASE_PERIOD 21 July 2020, 16:46:58 UTC
f8f1d81 adding another sample script 21 July 2020, 15:23:53 UTC
d5f7185 Add missing ECPP compset definition 21 July 2020, 15:10:41 UTC
e6750a1 Add missing quotes Add missing quotes from one line 21 July 2020, 00:13:05 UTC
fe66d97 Make coupling_period calculation dependent on NCPL_BASE_PERIOD 20 July 2020, 23:07:05 UTC
7ebefbf Merge remote-tracking branch 'origin/master' into whannah/mmf/update-mmf-tests 20 July 2020, 21:41:04 UTC
7bae560 Merge wlin/atm/updte-clubb-releaseotes (PR #3714) Update URL to the clubb site in release notes The link to the clubb website is updated in the comment section at top of advance_clubb_core_module.F90 to https://carson.math.uwm.edu/larson-group/clubb_site/ [BFB] 20 July 2020, 21:26:04 UTC
816e9d8 Rename a test that got missed 20 July 2020, 21:23:48 UTC
28a94f8 Fix unmatched "end if"s modified: components/cam/src/chemistry/mozart/mo_gas_phase_chemdr.F90 modified: components/cam/src/chemistry/mozart/mo_usrrxt.F90 20 July 2020, 21:05:35 UTC
3b83b4a Update mpas-source: Add warning messages for snow and ice layers 20 July 2020, 20:57:32 UTC
c708eaa Remove CARMA from CLM namelist 20 July 2020, 20:53:21 UTC
e1f526c Remove CARMA from misc files 20 July 2020, 20:53:21 UTC
6889b36 Remove CARMA from bld/configure 20 July 2020, 20:53:21 UTC
fb28aaa Remove CARMA namelist options 20 July 2020, 20:53:21 UTC
2366dc4 Remove compsets that use CARMA 20 July 2020, 20:53:21 UTC
a6a2dfe Remove CARMA from test/system/nl_files/* 20 July 2020, 20:51:46 UTC
75367bb Remove CARMA from (old?) test stuff 20 July 2020, 20:51:46 UTC
back to top