Imperial College Research Software Community Newsletter - May 2024

It seems that some of the most striking experiences of the complexity and beauty of our world come from the sky these days. Following last month’s solar eclipse, May brought us a massive solar storm that illuminated the aurora borealis at unusually low latitudes, including London. Were you able to watch the northern lights comfortably from your balcony? If not, there are plenty of photos (sometimes enhanced) of the phenomenon online to explore. Shifting our focus from the vastness of the cosmos to our computer screens, we find equally vast galaxies of knowledge to navigate. It may be quite a hyperbole, but the online content is indeed huge. As always, we aim to summarise some news and topics that may interest our community of software and technology enthusiasts. Enjoy your reading!

Dates for your diary

Research Computing at Imperial

In this month’s Research Computing at Imperial feature, we’re featuring another three of our 2024 cohort of Research Software Champions. In this edition we hear from Tiffany Baptiste, Benjamin Scharpf and Pishun Tantivangphaisal who each tell us a little about their research and their motivation for joining the Research Software Champions programme:

Tiffany Baptiste

I am a 3rd year PhD student within the Cardiac Electromechanics Research Group based in the National Heart and Lung Institute. My PhD research focuses on investigating a potential link between altered atrial biomechanics and atrial fibrosis in patients with atrial fibrillation. The observed mechanical behavior of the left atrium may be influenced by multiple factors including atrial anatomy, myocardial stiffness, and the electrical activation of the atrium. Little work exists that provides in-depth analysis of atrial mechanics, and I hope to address that gap.

I was keen to get involved as a Research Software Champion as in my day-to-day PhD work, I routinely use software to support my research. From my experience in my research group, I understand the value that well-documented and robustly tested software brings to creating higher quality research. It is also clear to me how creating code and software with best practices in mind allows for posterity of work done, allowing it to be used and built upon by researchers in the future. I am excited to have the opportunity to share my knowledge with other researchers in my department and also learn from my fellow Research Software Champions.

Benjamin Scharpf

My work in research at the Department of Computing delves into the intricacies of electronic financial markets and the challenges of decision-making under conditions governed by expected risk-reward structures. My academic explorations have guided me through the sophisticated domains of mathematical finance and statistics, with a special focus on the discretization and simulation of stochastic processes. Furthermore, my studies extend into computer science, notably in areas such as machine learning, computer infrastructure, and software architecture, where the complexity of integrating these disciplines often converges.

In today’s research landscape within the mathematical and computational sciences, the importance of robust programming skills and a thorough understanding of scientific computing and computational infrastructure cannot be overstated. These skills are indispensable, especially when dealing with large-scale numerical experiments, simulations, and training neural networks. Unfortunately, mastering the intricacies of various programming languages and computational platforms can often be seen as a daunting distraction. Nevertheless, developing practical knowledge of their strengths and limitations is crucial for achieving excellence across all facets of modern scientific inquiry.

While there is an abundance of free information online, it often remains too superficial, rarely delving deep enough to guide aspiring scientists towards developing proficiency in writing performant, readable, and maintainable high-quality code. Such skills are crucial not only for surpassing the ‘make-it-work’ threshold but also for achieving the ‘make-it-right’ and eventually the ‘make-it-fast’ stages of software development. Having worked in both the oil and gas and quantitative finance industries, I have witnessed firsthand the stark contrast between good and bad coding practices, especially in production systems. When I learned about the Research Software Engineering Champion opportunity, it seemed like the perfect avenue to both deepen my understanding and address some of these critical issues.

Within my responsibilities as an RSE Champion, I am currently developing a workshop titled ‘Design Patterns in Financial Data Science,’ specifically designed for students and researchers engaged in data-driven model building and hypothesis testing. Additionally, I have participated as a discussant in the ‘Beyond Open Research’ workshop, where I shared experiences and engaged in debates with other researchers on how to create meaningful impact as a multidisciplinary researcher. Throughout these discussions, I emphasise the pivotal role of Computer Science and robust Software Engineering in advancing our research endeavours.

Pishun Tantivangphaisal

I am pursuing a PhD in computational geomechanics in the Department of Civil and Environmental Engineering supervised by Dr. David Taborda and Prof. Stavroula Kontoe. The engineering challenge I am contributing a solution to is how we can ensure offshore wind turbine foundations remain stable and serviceable over a lifetime subjected to repeated environmental wind and wave loading. Model testing of similar foundation structures have shown that they are prone to tilting with time, with the response heavily dependent on soil type and site-specific loading conditions. Due to their physical size and the time scale of interest, numerical simulations are the only viable engineering tool used to design these foundations.

My first research focus is on the development and assessment of soil constitutive models aiming to capture their highly non-linear mechanical response under long-term cyclic loading. I write and package these models which I then use in numerical simulations of the foundation structures. Developing my proficiency to program for scientific computing forms a core part of this research, and increasingly I also write code to analyse and visualise data to pre- and post-process my numerical models. Throughout the first two years of my PhD programme, I found that the software tools I have built have also helped others in my immediate research group. Additionally, just as I had built my tools upon those developed by my supervisor, others in my group are contributing to a collaborative and continual effort to maintain and develop these software libraries.

I wanted to get involved as a research software champion as I saw that incorporating software engineering best practices in our work is beginning to reap rewards in my research group. I hope to be able to bring this to others in my department and help them along on their own software engineering learning curves. This is all in the hope that our collective research output can be more traceable, reproducible and contribute to scientific knowledge in a way that produces impactful research now and makes future research easier!

Research Software of the Month

This month, our Research Software of the Month is “Xcompact3D” developed by the Turbulence Simulation Group at Imperial.

Xcompact3D is a modern Fortran open-source framework designed for fast and accurate simulations of turbulent flows, targeting CPU-based supercomputers. It is an evolution of the flow solver Incompact3D which was initially designed in France in the mid-90’s for serial processors to solve the incompressible Navier–Stokes equations. Incompact3D was then ported to parallel High Performance Computing (HPC) systems in the early 2010’s. The capabilities of Incompact3D have been extended so that it can now tackle more flow regimes (from incompressible flows to compressible flows at low Mach numbers), resulting in the design of a new user-friendly framework called Xcompact3D. Turbulent flows are characterised by the irregular movement of fluid particles with eddies, swirls and instabilities. They are pretty much at the heart of every engineering system. A better understanding of turbulent flows and how to manipulate them is crucial to the advancement of technology, especially ones that will reduce our ecological impact.

Xcompact3d is being used by many research groups worldwide to study gravity currents, wall-bounded turbulence, wake and jet flows, wind farms and active flow control solutions to mitigate turbulence. Nearly 200 articles based on Xcompact3d have been published so far.

Xcompact3d is currently being re-designed for GPU hardware via the UKRI-funded project ExCALIBUR: Turbulence at the Exascale. The ambition is to provide abstraction layers for the majority of the code to limit what parts need to be re-implemented for a new hardware architecture or programming model. The idea is to offer heavily optimised software backends, and an environment where the user does not need to write different code specific to the chosen programming model.

The documentation is available at Readthedocs and you can follow Xcompact3D on X(Twitter).

RSE Bytes

News

Blog posts, tools & more

Some reminders…

RS Community Slack

The Imperial Research Software Community Slack workspace is a place for general community discussion as well as featuring channels for individuals interested in particular tools or topics. If you’re an OpenFOAM user, why not join the #OpenFOAM channel where regular code review sessions are announced (amongst other CFD-related discussions…). Users of the Nextflow workflow tool can find other Imperial Nextflow users in #nextflow. You can find other R developers in #r-users and there is the #DeepLearners channel for AI/ML-related questions and discussion. Take a look at the other available channels by clicking the “+” next to “Channels” in the Slack app and selecting “Browse channels”.

If you want to start your own group around a tool, programming language or topic not currently represented, feel free to create a new channel and advertise it in #general.

Research Software Engineering support

If you need support with your code, seek no more! The Central RSE Team, within the Research Computing Service is here to help. Have a look at the variety of ways the team can work with you:

HPC documentation and tips

All the documentation, tutorials and howtos for using Imperial’s HPC are available in the Imperial RCS User Guide. See also the Research Computing Service’s Research Computing Tips series for a variety of helpful tips for using RCS resources and related tools and services.

Research Software Directory

Imperial’s Research Software Directory provides details of a range of research software and tools developed by groups and individuals at the College. If you’d like to see your software included in the directory, you can open a pull request in the GitHub repository or get in touch with the Research Software Community Committee.

Get in Touch, Get Involved!

Drop us a line with anything you’d like included in the newsletter, ideas about how it could be improved, or even offer to guest-edit a future edition! rse-committee@imperial.ac.uk.

If you’re reading this on the web and would like to receive the next newsletter directly to your inbox then please subscribe to our Research Software Community Mailing List.


This issue of the Research Software Community Newsletter was edited by Stefano Galvan. All previous newsletters are available in our online archive.