Blair Archibald


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