A Super-Speedy New Phytoplankton Model

CBIOMES researchers Zhen Wu and Gael Forget apply Julia to create a GPU-supported individual-based phytoplankton life cycle model.

Reporting by Helen Hill for CBIOMES

CBIOMES seeks to understand the organization of microbial communities and their role in mediating the global cycles of elements through the surface ocean.

To this end, CBIOMES researchers are engaged in developing a hierarchy of models describing how the interactions of marine microbes with their environment and each other shape their relative fitness; and how these interactions cumulatively shape the biogeography of the ocean and elemental cycles at the basin scale.

The latest in a suite of models to emerge from the collaboration, PlanktonIndividuals.jl is an individual- (also known as agent- ) based model written in the new high-level, high-performance, dynamic programming language Julia. Co-authored by MIT-CBIOMES members Zhen Wu and Gael Forget, a paper introducing the model was recently published in JOSS the Journal for Open Source Software.

“The model can simulate multiple functional groups of phytoplankton with different growth and division strategies enabling it to effectively represent the interactions within and between functional groups,” says Wu. “It is specifically designed to elucidate temporal and spatial variations in phytoplankton cell density and stoichiometry, as well as growth and division behaviors induced by the diel cycle and physical motions ranging from sub-mesoscale to large scale processes.”

“We developed PlanktonIndividuals.jl seeking to model community dynamics while simultaneously representing the detailed life cycle of phytoplankton,” explains Forget. “Individual-based models combine population and community modeling approaches while at the same time allowing for a high degree of complexity of individuals and of interactions among individuals. What sets PlanktonIndividuals.jl apart from other individual-based phytoplankton models, however, is how fast it runs.”

“Phytoplankton models, like those incorporated in ecological and biogeochemical models, are essential tools to explore and understand phytoplankton life cycles, interactions between species, population dynamics, and community structures in various water bodies (such as lakes, coastal waters, or the open ocean,” says Wu. “Individual-based models differ from Eulerian models in the way they represent heterogeneous populations like cells of different sizes, nutrient quotas, and life cycle stages.”

Forget explains, “The unique power of individual-based modeling lies in the ability to track the position, biomass, and physiological state of individual cells or plankton patches, as they move through space over time. Eulerian models in turn can only track the density of plankton biomass in ‘well-mixed’ grids of simulated water bodies. Furthermore, individual-based models are able to introduce randomness in individuals which allows stochastic processes (like cell division, grazing, death, etc.) to reproduce the diversity found in real ecosystems.”

“Due to computational limitations, previous microbial individual-based models could only simulate a limited number of individuals, with each individual representing cell populations rather than individual cells,” continues to Forget. “In order to overcome this obstacle, PlanktonIndividuals.jl exploits the power of GPU, a class of computer chip originally developed for video rendering but which now offer extremely efficient, highly parallelized computing power for a wide range of applications. With GPU support, the simulations in PlanktonIndividuals.jl are sped up over 50 times compared with [more conventional] CPU simulations.”

“The package we have written is unique in the way that it is tailored to the analysis of marine ecosystems across a wide range of scales. To this end, it provides a comprehensive description of phytoplankton physiology and biogeochemistry, written in a fast language, Julia, and with GPU support,” says Wu. “It further innovates in combining the Eulerian and Lagrangian perspectives. Plankton individuals (Lagrangian) indeed have two-way interactions with gridded nutrient fields (Eulerian) that are advected by the same flow fields (in one-, two-, or three-dimensions.)”

Further development plans include the implementation of the macro-molecular model (Inomura et al., 2020) and support for distributed parallelism with CUDA-aware MPI.

To find out more about this work contact Gael or Wu

Forget and Wu co-lead the CBIOMES Julia Enthusiasts Group, an informal series where members of CBIOMES and collaborators come together to talk about different aspects of their collective experience utilizing the new programming language Julia in their modeling work.

Twice monthly meet-ups dedicated to all things Julia take place on first and third Wednesdays of each month at 2 pm EST via Zoom.


Zhen Wu and Gael Forget (2022), PlanktonIndividuals.jl: A GPU supported individual-based phytoplankton life cycle modelJournal of Open Source Software, doi: 10.21105/joss.04207


CBIOMES Julia User Group
“PlanktonIndividuals.jl: A GPU supported individual-based phytoplankton life cycle model” – e-meeting recording [restricted access]
CBIOMES goes to JuliaCon

Get the PDF [Requires login]