PhD Candidate, School of Computing Science, University of Glasgow
- Functional Programming (Haskell)
- Computer Systems
- High Performance Computing,
- Software Engineering
- Branch and Bound Applications
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 my day to day activities. I feel the expressiveness, type safety and reasoning has a lot to offer anyone who wishes to program - beginner or expert!
Follow me @Blair_Archibald