Hi everyone and welcome to our August 2024 community newsletter. If you’ve been on holiday over the summer, we hope you’ve had an enjoyable and relaxing break. As we move into September and things get going again, one of the main events in the annual research software calendar is just about upon us. Next week, over 300 Research Software Engineers, researchers, academics and a wide range of research and industry professionals in related roles will gather in Newcastle for the annual RSE Conference - RSECon24. They’ll be joined by an online audience for this hybrid conference showcasing a huge range of the technical work, community activities and research that RSEs get involved with. If you’re attending the conference, especially if you’re a first-time attendee and new to the community, do let us know. There will be a number of Imperial attendees at this year’s conference. In addition to the conference, there will be lots going on over the coming months. We’re continuing our monthly Research Software Community Coffee Hour (see dates for your diary below!) and we’ll also be looking to organise more events as we start the new academic year. If you have new PhD students or RAs joining your group in the coming weeks, do let them know about the research software community.
Our September Research Software Community Coffee get-together will be held on Monday 23rd September, 11:00-12:00, in the Senior Common Room (SCR) at South Kensington Campus. If you’d like to be added to the calendar invite for this session (and future sessions), get in touch. Otherwise you can simply turn up at the SCR on Monday 23rd at 11:00 and look out a for a table with some Community Coffee signs on it! Refreshments will be provided and are ordered shortly after the start of the session so join us around 11:00 if you’re able to. ☕️
Sustainable Reality 2024 - Moving the Needle in HPC - takes place Bletchley Park on Wednesday 25th September 2024. The event will bring together speakers from a wide range of different organisations to look at issues around sustainability and building a legacy to support research technology careers and communities.
The deadline is approaching for abstract submissions for Computing Insight UK (CI-UK) 2024 which takes place in Manchester on the 5th-6th December 2024. Abstracts for talks on the event’s main stage need to be submitted by Friday 13th September 2024. Key themes of interest for presentations are future technology trends, collaborative research, ethics in HPC, energy consumption and HPC with an AI focus.
CoSeC, the Computational Science Centre for Research Communities is startig a fellowship programme. The (extended) deadline for applications to the programme is Midday on Tuesday 17th September.
And a couple of reminders from last month’s edition…
This year, Imperial’s central RSE team is planning to host two in-person events during Hacktoberfest (during week 1 and week 4 of October). The events will be open to anybody interested in writing code. The details of the events are still to be finalised, but you can already submit an expression of interest and there’s also an opportunity to let us know (via the form) if you have any open source projects you’re working on that you’d be keen to have others contribute to as part of Hacktoberfest.
SuperComputing 24 (SC24), the International Conference for High Performance Computing, Networking, Storage, and Analysis, takes place from 17th-22nd November 2024 in Atlanta, GA, USA.
For our Research Computing at Imperial slot this month, we’re including a profile from Daniel Cummins, Research Software Engineer within Imperial’s RSE team in the Research Computing Service. Dan says:
I’m a research software engineer within Research Computing Services. I completed my undergraduate degree in physics, then spent two years in industry where I worked on software for counter-IED and anti-jam GPS technologies - my first exposure to professional software engineering. I decided I wanted to combine my interests in physics and software engineering, and joined the astrophysics group at Imperial to pursue a PhD. My research was primarily computational, performing simulations of the hydrodynamics and radiation transport in accretion discs around young stars.
I enjoyed being able to solve complex problems numerically, but quickly realised the importance of being able to prove that the numerical methods used were providing accurate solutions, thereby adding credibility to my results. With publishing bodies putting an increasing emphasis on transparency and reproducibility of published results, including making source code available, I gained an appreciation for research software engineering and the value of RSEs in helping to produce open, usable and sustainable research software.
After completing my PhD, I joined RCS in November 2022 through the pilot run of their RSE and HPC Experience Programme. I applied and was accepted for a permanent position within the RSE team, and have since worked on a variety of projects involving GUI development, interfacing with laboratory hardware, writing simulation codes, alongside developing and delivering training material. I have been able to work with research teams across various domains, which also means I’m learning all the time, while helping increase the quality and impact of their research software.
For this month’s Research Software of the Month, we have a project to highlight that is not so much a piece of software in its own right as a template that you can use to enhance your own Python projects.
Our RSotM for this month is the Imperial Research Software Engineering team’s Python Template, a cookiecutter template for creating Python projects that follow a set of software engineering best practices. cookiecutter is a utility for creating new projects based around templates.
Developed originally for use by the team in their own projects, this template provides a range of useful options to enable you to set up your own Python projects that come pre-configured and ready to use various tools and approaches that will help ensure that you produce a more sustainable, maintainable Python project.
So, what’s included? Basic project metadata is captured such as the project name and the resulting package name - useful as and when you decide to make use of support for packaging your code. The lead developer name and contact information is also stored for use in packaging and other project metadata. A range of other useful configuration options and functionality are provided:
Open source licence: You can choose to have your project configured with Imperial’s recommended open source licence (BSD-3-Clause), unless you wish to use a different licence.
Documentation: You can choose to have a skeleton documentation config set up for you based on the widely used MkDocs tool, and have the project set up to automatically deploy your documentation to GitHub Pages. (The “Write the Docs” community’s Docs as Code guide provides some great motivation for using your standard software development tools to write your documentation as well as your code!)
Default-accept bot PRs: You can configure your project to accept GitHub Pull Requests (PRs) submitted by bots such as dependabot by default. Dependabot is a GitHub tool which automatically creates Pull Requests when new versions of projects’ dependencies are released, allowing you to easily incorporate new features and bug fixes without having to manually keep track of version changes and bugs in a project’s dependencies. The template also comes with a dependabot configuration file.
Set up Windows/macOS Actions runners: Do you need GitHub Actions runners set up for Windows and macOS in addition to Linux? You can request this as part of the template configuration.
Code formatting: A range of code formatting options and checks are configured as “pre-commit” hooks - processes that run on your system when you attempt to commit files to the repository. If any of the checks fail, the commit is aborted. The Python template includes checking for merge conflicts, trailing whitespace and common spelling errors in your code or associated text files. It also applies auto-formatting to JSON, YAML and Markdown content to ensure that files in these formats meet a consistent style.
Testing: A standard testing configuration is put in place based on pytest to support automated running via GitHub Actions of tests that you provide for your code.
If you’d like to use the RSE team’s template in your own Python projects, you
can install cookiecutter via Python’s pip package manager and then simply point
cookiecutter to the template’s GitHub repository by running cookiecutter
gh:ImperialCollegeLondon/python-template
. Happy coding! 🙂
We’d like to remind you that there are currently two exciting research computing-related job opportunities open at Imperial - one advert closes in the next few days and the other in a couple of weeks on 15th September:
Senior Research Community Manager, based in the Department of Computing, to support the STEP-UP project, a collaboration between Imperial, UCL, King’s and Westminster:
📝 Contract type: Full-time, fixed-term until December 2027
💷 Salary: £54,927 - £65,935 per annum
🗓 Closing date: Wednesday 4th September 2024
STEP-UP is our new UKRI-EPSRC (UK Research and Innovation, Engineering and Physical Sciences Research Council)-funded regional platform developing approaches to enhance the career and training opportunities available to digital Research Technical Professionals (dRTPs). We are looking for a proactive leader with community and project management experience to manage and grow our existing regional research software community into a diverse, inclusive and engaging group supporting digital Research Technical Professionals (dRTPs). This role will also involve undertaking project management and overseeing a range of project activities.
Full details are available on the Imperial jobs site.
Senior Research Software Engineer in Computational Fluid Dynamics based in the Department of Aeronautics.
📝 Contract type: Full-time - open ended
💷 Salary: £54,927 - £65,935 per annum
🗓 Closing date: Wednesday 15th September 2024
You will play a key role in supporting the development of scientific code, liaising and working closely with local researchers to understand their requirements and develop software outputs. You will contribute to enhancing the sustainability and maintainability of the Department’s Computational Fluid Dynamics ecosystem consisting of a variety of flow solvers developed across different research teams (PyFR, Nektar++, Xcompact3d).
Full details are available on the Imperial jobs site.
Also featured in our news last month, we’d like to remind you again that from Monday 16th September 2024, single sign-on will be enforced for the Imperial College London GitHub organisation. If you’re just back from a summer break and haven’t yet looked into how this might affect you, now is a great time to check things. You’ll need to complete the tasks below to ensure that you’re ready for this change. Information on how to complete these tasks can be found in this knowledge article.
Several announcements from Software Sustainability Institute (SSI) this month. They have announced the dates for the 2025 edition of the very popular Collaborations Workshop. The event will take place from Tuesday 13th to Thursday 15th May 2025 - save the dates!
The SSI has also announced the launch of their 2025 Fellowship Programme with applications now open. Applications close on 7th October 2024. If you’re considering applying for the the programme and would like some advice or further information, we have SSI fellows at Imperial from previous cohorts who will be happy to discuss this with you - get in touch with the community committee and we can put you in contact.
A further SSI event that’s coming up is their next Research Software Camp - Research Software Skills for Technicians. The event will involve a range of activities taking place between the 18th and 29th November 2024. Save the dates and look out for more information coming soon.
Christie’s are auctioning a wide variety of historic computing hardware from the collection of Paul Allen - “Inside the historic computer collection of Microsoft co-founder Paul G. Allen” provides an overview of the background and highlights. In addition to the Cray-1 highlighted in this article, there’s also a Cray-2 being auctioned, as well as a range of other unusual items such as a 1964 spacesuit cover-layer from the Gemini programme.
GitHub Actions artifacts found leaking auth tokens in popular projects highlights some of the ways that security tokens can be unintentionally leaked through GitHub Actions workflows - something you should be aware of if you’re using Actions with repositories and services that require API/security tokens or passwords. The post highlights the type of things that can go wrong and offers some guidance on how to avoid these common pitfalls.
Take a look at the Imperial Research Software Engineering team’s blog post on the recent RSLondonSouthEast 2024 workshop.
A paper by Paul Bilokon and Burak Gunduz of Imperial’s Department of Computing on C++ Design Patterns for Low-latency Applications Including High-frequency Trading. The paper is supported by a GitHub repository and was recently highlighted in a Hackaday article.
Interested in optimising your x86 / x86-64 code? Take a look at the very detailed optimisation manuals developed by Agner Fog of Technical University of Denmark.
“Software in science is ubiquitous yet overlooked”, an interesting article tackling an increasingly widely recognised challenge, was published a few weeks ago in nature computational science.
A news article published in IEEE Spectrum in May 2024 looks at how “AI Copilots Are Changing How Coding Is Taught”.
This article from NASA - “Globetrotting NASA Research Model Increases Accuracy” - highlights the huge benefits of collaborative research and the power of modern computational simulation.
And finally, if you like a bit of DevOps / sysadmin fun, take a look at this blog post about an experiment with Booting Linux off of Google Drive!
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.
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:
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.
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.
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 Jeremy Cohen. All previous newsletters are available in our online archive.