Morpheus 2.3 Release Notes
Morpheus 2.3 was planned as small update to make current developments rapidly available. Eventually we assembled a whole lot of nice improvements all over the application into this fresh release.
At first, the release brings parallel computing to the Cellular Potts model (CPM), the last formalism in Morpheus missing this performance enhancement. The computing power of many cores can be exploited via OpenMP to gain significant performance improvements when simulating motile cells.
Furthermore, Morpheus can now handle diffusion rates of spatial Fields given as an expression, which in turn implies the availability of spatial heterogeneous diffusion. Also more optimizations on constant expression evaluations provide significant speedups for various models.
We also welcomed new contributors to the development team and are grateful to our user community for intense discussions in the user forum – thank you all and enjoy the new Morpheus!
In the following, we’ll highlight some of the new functionalities and assume some basic familiarity with Morpheus, otherwise please also consult the other sections of our homepage.
Table of Contents
MorpheusML
Fields
Fields obtained all the flexibility of Morpheus' expression everywhere paradigm. Dirichlet and Neumann boundary conditions as well as diffusion rates can be specified as an expression and thus may vary in space and time. But be aware that spatial heterogeneous diffusion implies a certain impact on the simulation performance.
Furthermore, boundary condition choices have been extended:
- Globally defined boundary types can be overridden for Fields and CellPopulations, except for periodic boundaries.
- Boundary conditions of fields are now placed exactly at the lattice boundary, curing an inaccuracy of the finite volume method.
Hexagonal lattice
The new default hexagonal
lattice has a rectangular shape, and thus shares the shape and all the periodicity logics with the square
lattice. Thus, switching between both lattices becomes much easier.
The old implementation with a parallelogram shape is conserved as hexagonal-old
.
Bug fixes / minor changes
- CPM’s
MonteCarloSampler/Neighborhood
andShapeSurface/Neighborhood
default to the new valueoptimal
, which selects a neighborhood optimal wrt. isotropy for the chosen lattice and thereby simplifies model creation. VectorMapper
language description fixed.
Simulator
One of the major goals for this release was an improvement of simulation performance. Several optimizations have been introduced to speed up expression evaluation and to improve the solver schedule. Thus, we decided to provide a more elaborate review of the performance evolution.
The most striking news, however, is the parallelization of the Cellular Potts model (CPM), the last formalism in Morpheus missing this performance enhancement so far.
Parallel CPM
Simulation of deforming cells and their motility always implies high computational costs. The CPM is no exception. We introduced OpenMP parallelized CPM workers that simultaneously check spatial CPM updates at unrelated sites of the cell configuration. Our algorithm keeps all statistics of the sequential update regime conserved and it gains most for larger cell populations (where it is needed). Please note that due to necessary data locking constructs, usage of multi-socket processors is discouraged as this would limit the parallelization benefit. In case of doubt, just measure the speedup on the target machine to select the optimal core count using the OPENMP_NUM_THREADS
environment variable.
As a practical example, the new parallel CPM solver now simulates a large-scale coupled CPM+PDE model of 72 000 interacting worms which was not feasible before. Thereby, previously published results were confirmed and extended, see details in the model repo.
Reaction-Diffusion-System performance
To demonstrate the overall performance improvements we simulate a turing system with the latest Morpheus version of the 2.1, 2.2 and 2.3 series. We obtain a nice 25% performance gain for a single threaded simulation. For 8 threads however, the performance gain amounts to almost 100%, which indicates that the scalability of the simulation has been largely improved with the new version.
GUI
Cell Polarity example
This example has been renovated, now offering the implementation of 2 established cell polarisation models (wave-pinning / substrate-depletion) wrt. a noisy heterogeneous environmental attractor gradient.
Rerun Button
Iterative model development regularly leaves a lot of test simulations that will easily clutter your simulation archive. The rerun mode of the run button now allows to reuse the last simulation id and folder of the current model for a follow up simulation.
Multithreading heuristics
By default, Morpheus GUI will now use 50% of the available cores for parallel computation – you may adjust that value to your demands in Morpheus' Settings/Preferences.
Bug fixes
- Fix stop and removal of pending jobs
- Fix occational crashes on model tree editing
- Also enable the file picker on MacOS and Windows