Hello again! I just got back from attending the Australasian Leadership Computing Symposium (ALCS). This was one of the first in-person conferences of the year for me, so it was great to both catch up with old friends (some of whom it was my first time seeing them not in a Zoom call) and to meet cool new people. Because ALCS is a national supercomputing conference, there were an unusually high number of weird computer people and, since I am also a weird computer girl, I spent a fair bit of time just shooting the breeze about fun computer esoterica. Sure, there were lots of conversations about Very Serious Topics in HPC, but those are way less fun and memorable than trying to out-nerd each other and see who can dredge up the wackiest, longest-obsolete architecture. One motif that kept popping up throughout these conversations was that “everything old is new again”: everything from hardware-level microarchitecture emulation to old-school vector machines are seemingly seeing a resurgence in the HPC space in some form or another.
Hello again! I’ve had quite a few talks and media appearances recently, so I figured it’d be good to post the links here so they’re available in one place. I’ll keep this page updated and add links to future talks as they become available, so it should be a fairly up-to-date resource for all your Emily needs!
This guide aims to teach you how to use the CMake build system, with a special focus on Fortran (there are many fine C++ tutorials already around, but not many on Fortran). Instead of trying to cover all of the necessary information to become a CMake expert, it instead aims to get you started with a working build system in as little time as possible. If you want to know more, there’s a list of recommended reading at the end of the document. Finally, this guide uses the command-line throughout because it’s the most portable interface across platforms.
This is part one of my series on essential libraries and techniques for modern Fortran. If you need a refresher on what this is all about, check out the last thing I wrote. For this post, I’ll be looking at different solutions for friendly I/O, including options for parsing configuration files and serialised output.
Hello again! I haven’t had a lot of time to post recently, and the OpenMP series has correspondingly fallen by the wayside. I’ll still pick it back up at some point, but for now I wanted to switch focus to something that’s been taking up a lot of my energy at work: how to make Fortran not suck.
I am not a compiler expert. But, as we saw last time, if we’re going to learn how OpenMP outlining actually happens, then we’re going to need to crack open the bonnet (or “hood” for any yanks reading this) and see how a compiler actually works. I’ve done my best to ensure this post is relatively well researched, but this is an area in which I have no formal education. This is just one physicist’s view, and putting it together has been as much of a learning exercise for me as it has been anything else. As with all things, I welcome any corrections from more knowledgeable people.
Please rise for a message from the author
Wow that was a long hiatus - my last blog post was almost three years ago. I’ve been really lax in making content due to the fact that PhDs are really time consuming (who’d have thought?). But I am now Dr Emily and thus finally have some space to focus on fun stuff, so let’s dive back into my favourite topic: OpenMP esoterica!
One of my goals with this whole blog thing is to write things down as I teach myself the internals of OpenMP. Before I start writing this up, though, I think I should at least write up a brief, high-level introduction for anyone who’s never used OpenMP before. There’s already plenty of “How to OpenMP” guides out there on the internet, so I won’t go into too much detail here. This guide from Lawrence Livermore National Laboratory is a pretty good resource if you want to know more, though.
My research group recently open-sourced our kickass atomic structure code AMBiT. AMBiT is my baby - I spent the last year and a bit getting it fit for production, which is a bit less than half of my PhD. Along with the usual bug hunting and documentation, I spent the bulk of that time overhauling AMBiT’s parallelism and tracking down performance pathologies to better utilise modern high-performance computing (HPC) architectures.
subscribe via RSS