Quantifying uncertainty in palaeoecological data
The below case study shares some of the technical details and outcomes of the scientific and HPC-focused programming support provided to a research project through NeSI’s Consultancy Service.
This service supports projects across a range of domains, with an aim to lift researchers’ productivity, efficiency, and skills in research computing. If you are interested to learn more or apply for Consultancy support, visit our Consultancy Service page.
Research background
Doctoral candidate Quinn Asena's research is researching how ecosystems have responded to environmental change in the past to better understand how they might change in the future. Palaeoecology provides insight into ecosystem history, and New Zealand is uniquely positioned having experienced only a short history of human disturbance. However, palaeoecological data are subject to many uncertainties and using them effectively and reliably requires understanding of how analyses are influenced by uncertainty. Modeling can be used as an experimental platform from which to assess how reliably analytical results are in the face of uncertainty.
Project challenges
Quinn had developed a model in R that solves a form of a discrete population growth equation to produce multi-species community data in response to multiple environmental factors. Of particular interest to Quinn are regime shifts and ecosystem dynamics. Quinn sought assistance from NeSI to make his code reproducible, robust, run faster and to facilitate future maintenance.
What was done
NeSI research software engineers showed Quinn how to set up unit tests, which can be run quickly to assess if code changes have broken some parts of the code.
NeSI showed Quinn how to profile his code, to identify hot spots in the execution.
Main outcomes
Introduced the researcher to good software engineering practices, which facilitate maintenance, make it easier to collaborate with other researchers and increase research productivity.
Significant performance improvements. A 13-14× speedup was achieved in the modelling code and a 10× speedup in the post-analysis step.
Researcher feedback
"The NeSI consultancy helped improve the speed of running the model by implementing good coding practices. The result was saving thousands of core hours when running the model on a larger scale. During the consultancy I learned a great deal about how to program efficiently, implement unit testing, and how seemingly tiny changes to a script can have a great effect on the required time and computer resources. It was a very useful learning experience and has improved my programming practices markedly."
- Quinn Asena, Doctoral candidate, University of Auckland
Do you have an research project that could benefit from working with NeSI research software engineers? Learn more about what kind of support they can offer and get in touch by emailing support@nesi.org.nz.