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!

Download Morpheus 2.3 here.

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.
Turing model effected by heterogeneous diffusion. Diffusion rates of both, the activator and the inhibitor, increase towards the center of the y-axis and thus give rise to an increased size of spatial structures.
Turing model effected by heterogeneous diffusion. Diffusion rates of both, the activator and the inhibitor, increase towards the center of the y-axis and thus give rise to an increased size of spatial structures.

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 and ShapeSurface/Neighborhood default to the new value optimal, 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.

CPM simulation runtime with respect to the number of workers.  Morpheus 2.3 benefits from overall improvements and scales well with the number of parallel threads in a simulation of 8000 cells in a cubic lattice. Using 8 threads this effectively leads to an 8.3-fold speedup over Morpheus 2.2, which did not parallelize yet.
CPM simulation runtime with respect to the number of workers.
Morpheus 2.3 benefits from overall improvements and scales well with the number of parallel threads in a simulation of 8000 cells in a cubic lattice. Using 8 threads this effectively leads to an 8.3-fold speedup over Morpheus 2.2, which did not parallelize yet.

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.

Reaction-Diffusion-System runtime with respect to the number of compute threads.Colors indicate different simulator versions.
Reaction-Diffusion-System runtime with respect to the number of compute threads.
Colors indicate different simulator versions.

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

Changelog

An extensive list of changes since version 2.2 is found in the changelog.
Morpheus
Morpheus
Multicellular Simulation
Next
Previous

Related