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
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.
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
Bug fixes / minor changes
ShapeSurface/Neighborhooddefault to the new value
optimal, which selects a neighborhood optimal wrt. isotropy for the chosen lattice and thereby simplifies model creation.
VectorMapperlanguage description fixed.
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.
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.
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.
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.
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.
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.
- Fix stop and removal of pending jobs
- Fix occational crashes on model tree editing
- Also enable the file picker on MacOS and Windows