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!
As part of UCL’s Peter Kirstein Lecture Series, Professor Hugh Herr (MIT) will talk On the Design of Bionic Limbs: The Science of Tissue-Synthetic Interface. The date is Monday 3rd June 2024. A waitlist is in operation for the in-person event, however a live stream will be available (free registration is required).
The next Byte-sized RSE session being run by the UNIVERSE-HPC project will be on FAIR Research Software for Reproducible Research, taking place on Tuesday 4th June 2024, 13:00-14:30. Registration is still open.
The Research Software Engineering Community @ ETH Zurich is organising their next Meetup on Tuesday 4th June 2024 in the ETH main building. The On-site meeting is parallel to the Platform for Advanced Scientific Computing (PASC) Conference. If you are not attending PASC24, the presentations of the event will be streamed via Zoom.
There are few dates related to this year’s Research Software Engineering Conference (RSECon24) to consider:
The deadline for nominations for the Emerging Voice Plenary is Friday 14th June 2024. If you believe someone has a voice worth amplifying, a story worth sharing, or a valuable perspective on research software engineering, please do nominate them using the form provided.
The Call for volunteers will remain open until Friday 14th June 2024.
If you are an experienced RSE and would like to help early-career RSEs prepare for their participation in the conference, you can apply to became a mentor. Deadline is Friday 14th June 2024.
The conference registration deadline is Sunday 30th June 2024. The event is hybrid and the organiser are offering a limited number of bursaries for those who would otherwise be unable to attend the conference in person.
As part of the FPGA Innovation Research Exchange (FIRE) Symposia Series, SURF will host the Tools and platforms for accelerating AI workloads workshop. The date is Thursday 27th June 2024 and the venue is SURF Utrecht, in the Netherlands.
The Hamlyn Centre for Robotic Surgery at Imperial is organising the 16th Hamlyn Symposium on Medical Robotics. The conference will take place in London, at the Royal Geographical Society from 25th-28th June 2024. Registration is now open.
The RSLondonSouthEast2024 workshop will take place at Imperial on Tuesday 16th July 2024 - save the date! Workshop registration will open soon.
The International Conference for High Performance Computing, Networking, Storage, and Analysis (SC24), will take place from 17th-22nd November 2024 in Atalanta, GA, USA. There is a detailed submission site accounting for all announcements and deadlines, some of which close in June and July.
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:
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.
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.
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!
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).
Interesting updates from Imperial Research Computing & Data Science (RCDS):
Welcome to the RCDS hackathon 2024 - The fast and the curious!
You are welcome to join us on July 12, 2024 for another instalment of the Graduate School’s Research Computing and Data Science Programme hackathon. Last year, we experimented with GitHub’s Copilot; this year, we will speed up code. You can leverage LLMs, different programming languages, good old Stackoverflow, or anything else you can think of - as long as your code runs within our Python test framework.
We recommend working in teams, but individual contributions are fine. You will receive a set of short-ish tasks and race them against the original version on one computer. The team with the best overall speedup over all tasks will receive a prize.
No preparation is necessary; join us with your laptop and a charger. If you would like to use Copilot during the hackathon, sign up for the student developer pack (start one week ahead; it takes time to get approved). Catering will be provided.
Register via Inkpath, the same way as for other RCDS courses. The instructions are on the top of this page.
We also have an opportunity for two StudentShapers to collaborate with the RCDS on the ReCoDe project.
Finally, we have a rolling GTA opportunity here.
An interesting development in the field of safety-critical environments and open-source software: Linux can finally run your car’s safety systems and driver-assistance features. The key takeaway is that there are now architectural options available that allow the use of Linux in these applications without necessitating full OS safety certification.
If you are a C++ developer, you are probably using “modern” C++, but what about CMake? If you want to update your approach, check out An Introduction to Modern CMake.
Are you interested in data visualisation in Python? There are several options available, but you can start by exploring Vega-Altair, a declarative visualisation library, and Mayavi, a scientific data visualiser that uses VTK and provides a GUI via Tkinter.
Don’t forget to check the Code for Thought podcast. This month’s episodes range from “Carpentries for All - Greg Wilson” to the “Collaborations Workshop 2024”, and many more.
A video of the second UNIVERSE-HPC seminar “Widening participation in education - what can we learn post-pandemic?” by Mishka Nemes, which was held on Thursday 29th February, is now available.
Cristin Merritt, leader of WHPC discusses WHPC’s goals and mission in the @HPCpodcast: Women in HPC Leader Cristin Merritt Talks Diversity and Strategies for Organizational Change.
In April, the central RSE team at Imperial hosted the R dev Day. Saranjeet Kaur, co-organiser of the event, discusses it in this blog post.
Looking for Python code inspiration? Check out “101 Python Automation Scripts: Streamlining Tasks and Boosting Productivity (Part 1) and (Part 2)“.
If you are wondering if it is possible to train LLMs without installing and using big Python frameworks, you may find this post “Train A GPT-2 LLM, Using Only Pure C Code” and the related GitHub repository interesting.
Since we opened the newsletter speaking about sky phenomena, have a look at this new black hole visualization: NASA has released a 360° video that simulates the event horizon of a black hole. Created using a supercomputer, the video visualizes the experience of approaching, orbiting, and ultimately falling into a black hole. And if you missed the northern lights in UK, you can bookmark the AuroraMAX project. You will have to wait until September to enjoy it though, because in summer the nights are too bright to see auroras.
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 Stefano Galvan. All previous newsletters are available in our online archive.