Imperial College Research Software Community Newsletter - February 2024

Time flies and it goes even faster when you are busy and enjoying things. The first two months of the year have been like that for me, and I cannot believe that days are becoming longer and trees are starting to blossom!

I would like to take this opportunity to encourage you all to meet other minds alike in the research software world. Research software engineering is not only about the tools and techniques to develop good quality and sustainable software. It is also about creating communities of practice. About learning together to solve problems that affect a particular topic. And meeting people, exchanging ideas and collective knowledge is more important that the specific tools used to solve a problem because they can help you to tackle other issues, as well, not only the original ones.

Dive now into this newsletter and find all the options that are available to you to make this happen. Take your pick and make the most of it, engaging with the people behind those initiatives, workshops or blog posts.

Dates for your diary

And a few reminders of events we highlighted last month…

Research Computing at Imperial

This month, in our series highlighting key members of the College community helping to support research computing and research software services, we hear from Dr Jamie Quinn:

I’ve recently started in the Aeronautics department as a senior research software engineer looking after three of their computational fluids codes. Ever since I was a kid I’ve been interested in simulation, initially in games physics, then in scientific simulation. After becoming hooked on fluid simulation during my maths and physics degree, I started a PhD in solar physics where I simulated the behaviour of the atmosphere of our sun using the upsettingly complicated equations of magnetohydrodynamics. Unfortunately I had the privilege of using Fortran 95 for everything, yet fortunately an early research software engineer had made an excellent job of maintaining the simulation packages.

While I didn’t have a particularly strong interest in solar physics itself, I could see a number of opportunities where novel numerical methods and exciting new parallel technologies could be leveraged to advance the range of computational problems we could investigate. But no one would pay me for that so I packed up and moved to UCL to become a research software engineer.

Prior to my PhD I had developed software for a variety of companies, even working as a CTO of a startup for a few years. I had good experience with standard industry software practices, I knew a fair number of technologies and languages, and I’d dabbled in other fields like computational bioscience, real-time rendering, and generative algorithms. I was a solid generalist. This apparently made me well suited for a job as an research software engineer, particularly in a central team providing support across an entire university. After three years at UCL, I’d absorbed skills from some incredible colleagues, developed courses, supervised students, became a trustee of the Society of Research Software Engineering, and developed software for tsunami modelling, Met Office benchmarking and materials development. All my projects were wonderful learning experiences, and some were even fun. Many were still in Fortran. And don’t speak to me about FPGAs.

All this while I’d continued playing with computational fluid dynamics, developing my own suite of fluids solvers, some for GPUs, some rendering results in real-time, some even in notoriously slow languages like Python and JavaScript. One even rendered results to a telnet server running on a first-generation raspberry pi! So I was incredibly excited when the opportunity came up to develop solely computational fluids codes here at Imperial. For the past month now I’ve been loving working on the Aeronautics codes, all of which solve interesting fluids problems with novel numerical methods and aim to use the fastest hardware available. I’m even enjoying the Fortran code.

Research Software of the Month

This month, we highlight pyrealm, a Python package for modelling plant productivity, growth and community demography.

The software aims to provide:

The package is in active development but currently includes:

The package is being developed through funding from the ERC (REALM project, Prof. Colin Prentice, Imperial), the VESRI Programme of Schmidt Futures (LEMONTREE project, Prof. Sandy Harrison, University of Reading) and the NOMIS Foundation (Virtual Ecosystem project, Prof. Robert Ewers Imperial). Package development is supported by the Institute of Computing for Climate Science at the University of Cambridge with additional support from the Research Software Engineering team at Imperial. The package contains over 14000 lines of Python code and 6000 lines of documentation. The package is open source, with clear development and contribution guidelines and we welcome both issues and pull requests!

The package is developed on GitHub and distributed on PyPI and Zenodo. For more details, see the package documentation website.

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 Diego Alonso Álvarez. All previous newsletters are available in our online archive.