Skip to content

Latest commit

 

History

History
182 lines (152 loc) · 18.5 KB

File metadata and controls

182 lines (152 loc) · 18.5 KB

Micro Manager changelog

v0.11.2

  • Fixed use of provided HDF5 output file name when snapshots are computed in parallel. #315
  • Added various fixes for interpolation, load balancing and adaptivity. Load balancing now balances every N implicit iterations. #312

v0.11.0

  • Refactored LoadBalancing into an interface for more clarity #300
  • Added a general diagnostics interface and refactored memory usage accordingly #299
  • Refactored interpolation to uniform interface and moved crash handling to dedicated module. #298
  • Added uniform interface for Adaptivity for all cases #294
  • Fixed simulation activation issue of calling get_state prior to full initialization #308
  • Skipped double initialization of sim with id 0 when lazy initialization is used #307
  • Fixed macro data not populating adaptivity buffers and MPI irecv buffer size #306
  • Added support for workers in snapshot mode #296
  • Added check for number of workers and renamed method in coupling.py #295
  • Refactored interaction with preCICE and domain decomposition into CouplingHandler, Profiler and DomainDecomposition hierarchy #289
  • Refactored and generalized the methods in p2p.py. Added MPIHandler to manage all MPI related aspects. #287
  • Applied fixes for previously missed test cases due to #290 #291
  • Fixed non-visible CI test cases on PR interface #290
  • Moved Simulation Class ownership and loading to Model Manager #286
  • Added simulation container for more encapsulation #284
  • Redesigned configuration loading for enhanced clarity and standardization #264
  • Added RBF interpolation, currently used within adaptivity for output interpolation #242

v0.10.1

  • Fixed parameter inspection of the initialize() routine when micro simulation is pybind11 wrapped #281
  • Fixed passing of macro mesh coordinates when model adaptivity is run in parallel #282

v0.10.0

  • Fixed load balancing for case where number of sims to send and recv are not the same #276
  • Fixed CI OpenMPI cache miss by centralizing the MPI build into a dedicated workflow #263
  • Fixed naming of variables tracking active simulations in the MicroManager #273
  • Improved load balancing of inactive simulations by tracking a small amount of time #272
  • Added the exported field model_resolution when using model adaptivity #271
  • Fixed model adaptivity active simulation mask generation for 0 local simulations #270
  • Allow initialize() to return data that is not used by the adaptivity #261
  • Fixed MicroSimulation initialization requiring positional parameters #255
  • Fixed model adaptivity convergence at resolution boundaries to prevent infinite loops for out-of-range switching requests #252
  • Add function set_global_id to the dummies and the example in the integration test #247

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