Skip to content

Latest commit

 

History

History
139 lines (117 loc) · 14.2 KB

File metadata and controls

139 lines (117 loc) · 14.2 KB

Micro Manager changelog

v0.9.0

  • Refactored DomainDecomposer class and added a new variant of non-uniform decomposition #243
  • Fixed load balancing configuration partitioning parameter setting #245
  • Fixed comparison of zero values of type float32 and float64 in simulation deactivation #244
  • Optimized norm calculations and further fixed lazy initialization #241
  • Fixed lazy initialization for ranks without (active) micro simulations #238
  • Added coverage testing and simulation interface tests #225
  • Added --test-dependencies CLI flag to check if all required dependencies are correctly installed, with clear error messages listing missing packages and how to fix them #221
  • Added load balancing based on micro simulation solve timings #228
  • Fixed invalid value in division warning in L1rel/L2rel adaptivity when data contains zeros #234
  • Fixed duplicate micro simulations for macro-points on rank boundaries by filtering coordinates already claimed by lower-ranked ranks #230
  • Exposed MicroSimulationInterface as a public abstract base class for user subclassing #224
  • Added option to use compute instances to reduce memory consumption #226
  • Added support to run micro simulations in separate processes with workers #219
  • Added abstraction layers to micro simulations to support more features #218

v0.8.0

  • Conformed to naming standard in precice/tutorials #215
  • Changed default values of adaptivity metrics output and similarity distance calculation norm #213
  • Fixed ordering of global IDs of micro simulation for load balancing to ensure consistency #210
  • Initiated triggering of load balancing at the start of the simulation when adaptivity is triggered #207
  • Added functionality to adaptively switch micro-scale models #198
  • Changed locations of profiling sections in the code base to reflect operations being profiled correctly #205
  • Added global metrics logging to local adaptivity commit
  • A rank-based round-robin scheme for deactivating simulations in global adaptivity #202
  • Added more metrics to adaptivity logging, and some general refactoring #201
  • Fix bug in load balancing when a rank has exactly as many active simulation as the global average #200
  • Use global maximum similarity distance in local adaptivity #197
  • Log adaptivity metrics at t=0 #194
  • Use | delimiter in CSV files of adaptivity metrics data #193
  • Add profiling sections for solving the micro simulations commit
  • Fix bug in load balancing when more than one rank has as many simulations as the balancing bound #192
  • Remove two-step balancing from load balancing #191
  • Remove option of simulation solve time from diagnostics #188
  • Add dynamic load balancing capability to global adaptivity #144
  • Revert to using (default) mpich as error is fixed in setup-mpi action #187
  • Refactor adaptivity: simplify logic and shorten iterator variable names #186
  • Use boolean parameter values in JSON config files of unit cube integration test #185
  • Use OpenMPI in mpi4py setup action in parallel tests action #184
  • Software improvements to the snapshot computation functionality #178

v0.7.0

  • Share similarity distance matrix between ranks on a compute node #176
  • Use booleans instead of strings "True" and "False" in the configuration #175
  • Renaming and using a newer workflow for publishing according to the trusted publishing in PyPI #173
  • Add config options for adaptivity metrics and memory usage output to allow for different levels #172
  • Fix bug in adaptivity computation when an active simulation with associations is deactivated #171
  • Properly handle micro simulation initialization for lazy initialization #169
  • Delete the simulation object when the simulation is deactivated #167
  • Remove float32 data type restriction for adaptivity data commit
  • Trigger adaptivity when all the adaptivity data is the same #170
  • Add configuration option to control frequency of adaptivity computation #168
  • Remove checkpointing of adaptivity and fix output of memory usage #166
  • Performance improvements: restricting data types, in-place modifications #162
  • Handle adaptivity case when deactivation and activation happens in the same time window #165
  • Add command line input argument to set log file #163
  • Fix adaptivity metrics logging and add logging documentation #160
  • Checkpoint lazily created simulation only if a checkpoint is necessary #161

v0.6.0

  • Add functionality for lazy creation and initialization of micro simulations #117
  • Improve logging wrapper function names to be more clear #153
  • Remove adaptivity computation CPU time export functionality #152
  • Replace Allgatherv with allgather to avoid running into the error of size buffer #151
  • Update Actions workflows due to updates in precice/precice:nightly #150
  • Move adaptivity CPU time output from preCICE export to metrics logging #149
  • Fix bug in the domain decomposition which was returning incorrect bounding box limits for the decomposition of [2, 2, 1] and similar #146
  • Fix bug in calling of the adaptivity computation for explicit coupling scenarios #145
  • Fix bug in handling of vector data returned by the MicroSimulation solve() method, for scenarios with adaptivity #143
  • Remove the scalar and vector keyword values from data names in configuration #142
  • Set default logger to stdout and add output directory setting option for file loggers #139
  • Remove the adaptivity_data data structure and handle all adaptivity data internally #137
  • Improve logging by wrapping Python logger in a class #133
  • Refactor large parts of solve and adaptivity to group datasets and simplify handling #135
  • Add information about adaptivity tuning parameters #131
  • Put computation of counting active steps inside the adaptivity variant if condition #130

v0.5.0

  • Use absolute values to calculate normalizing factor for relative norms in adaptivity #125
  • Add option to use only one micro simulation object in the snapshot computation #123
  • Explicitly check if time window has converged using the API function is_time_window_complete() #118
  • Add MicroManagerSnapshot enabling snapshot computation and storage of microdata in HDF5 format #101
  • Make sklearn an optional dependency
  • Move the config variable micro_dt from the coupling parameters section to the simulation parameters section #114
  • Set time step of micro simulation in the configuration, and use it in the coupling #112
  • Add a base class called MicroManager with minimal API and member function definitions, rename the existing MicroManager class to MicroManagerCoupling #111
  • Handle calling initialize() function of micro simulations written in languages other than Python #110
  • Check if initial data returned from the micro simulation is the data that the adaptivity computation requires #109
  • Use executable micro-manager-precice by default, and stop using the script run_micro_manager.py #105
  • Make initialize() method of the MicroManager class public #105
  • Optionally use initial macro data to initialize micro simulations #104
  • Use pyproject.toml instead of setup.py to configure the build. Package name is now micro_manager_precice #84
  • Add handling of crashing micro simulations #85
  • Add switch to turn adaptivity on and off in configuration #93

v0.4.0

  • Add note in the cpp-dummy that pickling support does not work due to no good way to pass the sim id to the new micro simulation instance commit
  • Reintroduce initialize function in the micro simulation API #79
  • Use Allgatherv instead of allgather when collecting number of micro simulations on each rank in initialization #81
  • Remove the callable function initialize() from the micro simulation API commit
  • Pass an ID to the micro simulation object so that it is aware of its own uniqueness #66
  • Resolve bug which led to an error when global adaptivity was used with unequal number of simulations on each rank #78
  • Make the initialize() method of the MicroManager class private #77
  • Add reference paper via a CITATION.cff file commit
  • Add JOSS DOI badge commit
  • Update pyprecice API calls to their newer variants #51

v0.3.0

  • Add global variant to adaptivity (still experimental) #42
  • Add norm-based (L1 and L2) support for functions in similarity distance calculation with absolute and relative variants #40
  • New domain decomposition strategy based on user input of number of processors along each axis #41
  • Add pickling support for C++ solver dummy #30
  • Add C++ solver dummy to show how a C++ micro simulation can be controlled by the Micro Manager #22
  • Add local adaptivity #21

v0.2.1

  • Fixing the broken action workflow run-macro-micro-dummy

v0.2.0

  • Change package from micro-manager to micro-manager-precice and upload to PyPI.

v0.2.0rc1

  • Change package from micro-manager to micro-manager-precice.

v0.1.0

  • First release of Micro Manager prototype. Important features: Micro Manager can run in parallel, capability to handle bi-directional implicit coupling