Blair Archibald

60-years-of-Computing_badge-artwork.pngBy Blair Archibald, Software Sustainability Institute Fellow

How do you bring research domains together?

This is a difficult question to answer, fields have their own focuses, terminology and idiosyncrasies; what appeals to a researcher in one field may not appeal to a researcher in another. However, with over 92% of researchers suggesting they make use of computational science in their research is it possible that computational techniques could be used to help bridge domains? This post documents my experiences in organising an event aimed specifically at trying to exploit this idea within a single University environment.

60 Years of Computing at Glasgow

Although we have been computing for many decades, Computing Science and the use of electronic computing machines is relatively recent. This year, the School of Computing Science at the University of Glasgow has been celebrating 60 years of Computing at the University of Glasgow. In 1957 they became the first University in Scotland to order a computing machine, an English Electrics DEUCE machine.

As part of these celebrations, myself and a group of fellow Ph.D. students,…

Continue Reading


By Blair Archibald, Software Sustainability Institute fellow.

Software is (almost) never written or run in isolation. Instead, it builds on top of a wide range of dependencies from compilers and language runtime environments to application specific libraries. This is a huge challenge for reproducible research. Not only should the software we write be sustainable (e.g well versioned, documented, and tested) but the environments that the software exists within also needs to be documented and, ideally, recreatable.

Many have suggested virtual machines/containers as one solution to this problem (for instance the recent Docker Containers for Reproducible Research Workshop (C4RR)), where you ship not just your computational code but also the environment alongside. While this is a good start on tackling this problem I'm not sure it's fully sufficient. Often the environment for the image is constructed using a standard Linux distribution's package manager, and these usually, by default, install the newest (stable) possible version of a package, meaning that two people running a VM/container at two…

Continue Reading


By Blair Archibald, University of Glasgow.

Building reproducible research workflows can be a messy business: data comes from many sources, it may need formatting, combined with other data and analysed in some way. Luckily, there is a whole host of software tools available to help manage some of this complexity (and hopefully let you keep your sanity!). In particular, (GNU) Make is ideally suited for the purposes of producing reproducible workflows. To see why let's join the FAKE research group.

The FAKE Research Group

Welcome to FAKE, a data driven research group that makes heavy use of computational science to perform analysis for publication. Our first task is to get up to date with the current publication. Luckily our predecessor has left detailed written instructions of the data analysis workflow:

  1. Run the formatData.awk script over the raw data to generate a tabular formatted output for later analysis

  2. Use the summarise.R R script on the formatted data to create two new data sets: summarised-group-1 and summarised-group-2

  3. You can then use the Python script on the two groups to generate the plots for the paper: stats-average.…

Continue Reading

Software stackingBy Blair Archibald, University of Glasgow, Stephen Clement, University of Leeds, Raniere Silva, Software Sustainability Institute.

This post is part of the Collaborations Workshops 2017 speed blogging series.

Choosing a software stack for your new project can be a daunting task filled with many what-ifs. Our best advice? Don’t panic and don't overthink it. Trying to over futureproof your project is a mistake! Choosing a software stack involves decisions at every level of the software’s architecture including the programming language(s) being employed, the build system, runtimes, libraries, frameworks, even the infrastructure or architecture the software will run on and the version control system.

When starting out a new project it is important to get an idea of who your main audience and users will be. Do you predict many application users? Will these users also be developers? What sort of background do they have? Someone with a background in software will be more likely to have complex tooling (such as compilers,…

Continue Reading

Software Sustainability PracticeBy Blair Archibald, University of Glasgow, Gary Leeming, University of Manchester, Andy South, Freelancer, Software Sustainability Institute Fellows

Software plays a key role in a modern research environment with over 92% of academics reporting the use of research software. With such a large impact there is huge variation in the potential audience for the work of the Software Sustainability Institute across different disciplines. In some areas there already exists best practice, but many may find it difficult to understand the value or justification for making the effort to engage with software sustainability. Our mission, as fellows, is to help them.

As fellows, we need to interact with different stakeholders: the individual researchers who use and write software as part of their general practice, groups and disciplines who use software to enable new results to push their field forward, and policy makers who have global influence over the software conditions of funding and practice. We can target each of these stakeholders differently and provide a justification of improved software practice.

Continue Reading

PhD Candidate, School of Computing Science, University of Glasgow


  • Functional Programming (Haskell)
  • Computer Systems
  • Parallelism 
  • High Performance Computing,
  • Software Engineering 
  • Branch and Bound Applications

My work

Given a list of cities; what is the shortest tour between all of them that we can make, ending back where we started? This is the famous ‘Travelling Salesperson Problem’ and is one example of a global optimisation problem. These types of optimisation problems occur in many domains: from scheduling factory production lines to checking properties of groups and geometries.

Unfortunately, global optimisation problems are notoriously difficult to solve. Even small increases to the input size potentially (we can’t tell ahead of time!) increase the computational time exponentially.

My research focuses on how we can solve larger instances of these problems by utilising parallelism on large, distributed memory machines. To do this we make use of parallel algorithmic skeletons, a technique for separating the program logic, which is designed by domain experts, from the parallel coordination layer. An upshot of this approach is that we can empirically study changes in parallel coordination without requiring any changes to the domain specific application (assuming the API is consistent).

I am also a strong advocate for functional programming techniques, particularly in Haskell, and make heavy use of this in…

Continue Reading
Subscribe to Blair Archibald