REANNZ develops and supports a range of products and services to support the specialist needs of our members in the R&E and innovation community.
We operate NZ's national research and education network and seamlessly connect with 120+ networks globally to enable researchers to collaborate.
REANNZ is proud to support the specialist needs of our members from NZ's research, education and innovation community.
Find out more about who REANNZ is, what we do and the people that operate New Zealand’s national research and education network.
Inna Senina, a Senior Fisheries Scientist at The Pacific Community (SPC), is modelling tuna population dynamics.
Pictured above is a simulation of the density of tuna fish in the Pacific. Figure provided by Inna Senina.
To explore different fishing scenarios under different environmental conditions (e.g. climate change), one needs a numerical tool that integrates spatiotemporal, multi-population fish population dynamics models with statistically fitted observation data. The SEAPODYM modelling framework allows building quantitative spatiotemporal models for migratory fish species with different life history traits, by integrating observations to inform model parameters.
Inna Senina is a Senior Fisheries Scientist at The Pacific Community (SPC) whose work includes modelling tuna population dynamics. She uses the SEAPODYM framework, however the runtimes for parameter estimations can be extremely long, limiting her reference model configurations to coarse resolutions and/or short simulation times.
In a previous Consultancy project, Research Software Engineers Alexander Pletzer and Chris Scott helped Inna accelerate her SEAPODYM computer code through parallel execution.
In contrast to a standard implementation of task farming, the SEAPODYM tasks have internal steps and tasks can only be started once specific steps of other tasks have completed.
So, as a follow-up project, Alexander and Chris developed a parallel library, seapodym-parallel, which can be coupled to SEAPODYM to advance fish age-based cohorts in parallel. In the seapodym-parallel library, a manager process distributes tasks to worker processes. Once a task is completed, the manager gets notified and a worker can receive a new task.
Alexander and Chris developed a library (seapodym-parallel) that can be linked against the SEAPODYM code to distribute work across computing processing units (CPUs).
The seapodym-parallel library implements a task farming approach with additional tweaks:
The manager stores and distributes the data to workers on request using one-sided MPI (Message Passing Interface) communication with passive targets. As such, the manager does not actively contribute to the data exchange, it is the workers who decide when to fetch and send data.
Parallel scaling depends on the resolution of the grid and hence the amount of data to exchange between workers and the manager at each step, as well as the time it takes to advance the fish density one step and the cost of initialising a new fish cohort.
Below is a plot emulating the behaviour of the implemented task farming approach in SEAPODYM.
There are 36 age groups (cohorts) and the tasks are executed by 9 workers (vertical axis). The horizontal axis represents time. Each task (colour coded) involves up to 36 steps and at the end of each step, 3968 double values are sent from each worker to the manager. The vertical, dashed lines mark the time when a new cohort is started. The white regions are time intervals during which workers are waiting for new tasks to be assigned.
In this experiment, the time it takes to execute a step is a random variable following a Gamma distribution with mean and standard deviation of 4 milliseconds. These parameters simulate real SEAPODYM conditions. The speedup is 7.3x in this case.
The next step will involve performance tuning the seapodym-parallel and SEAPODYM codes to achieve optimal performance.
The first phase of the parallel techniques implementation project has been a valuable learning experience for us. REANNZ implemented the seapodym-parallel library, and helped our team to integrate it into the SEAPODYM codebase. The current parallel application runs nominally; however, its maximum speedup relative to the original serial version is lower than what we observe with the benchmark application. We look forward to collaborating with REANNZ in the next phase to diagnose the parallel SEAPODYM code to identify the sources of the limited scalability, and improve the performance of seapodym-parallel and SEAPODYM to approach optimal parallel efficiency. We will also explore hybrid parallelization by combining distributed-memory MPI with shared-memory techniques such as OpenMP—for example, parallelizing the ADI method along x and y axes. Thank you again for the productive collaboration to date; we are eager to continue this work together.
The first phase of the parallel techniques implementation project has been a valuable learning experience for us.
REANNZ implemented the seapodym-parallel library, and helped our team to integrate it into the SEAPODYM codebase. The current parallel application runs nominally; however, its maximum speedup relative to the original serial version is lower than what we observe with the benchmark application.
We look forward to collaborating with REANNZ in the next phase to diagnose the parallel SEAPODYM code to identify the sources of the limited scalability, and improve the performance of seapodym-parallel and SEAPODYM to approach optimal parallel efficiency. We will also explore hybrid parallelization by combining distributed-memory MPI with shared-memory techniques such as OpenMP—for example, parallelizing the ADI method along x and y axes.
Thank you again for the productive collaboration to date; we are eager to continue this work together.
Inna Senina, Senior Fisheries Scientist, The Pacific Community (SPC)
Find anything about our products, services, and more. Enter a query in the search input above.