Skip to content

Commit

Permalink
Merge branch 'master' of github.com:uob-hpc/uob-hpc.github.io
Browse files Browse the repository at this point in the history
  • Loading branch information
tomdeakin committed Oct 12, 2023
2 parents ebf8534 + b21e00b commit faec16b
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 19 deletions.
47 changes: 47 additions & 0 deletions _posts/2022-11-07-RTB.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
layout: post
title: RTB - Tracking compile time and compiler sizes for LLVM and GCC
author: Tom Lin
---

![RTB screenshot]({{site.url}}/assets/rtb_screenshot.jpg){:width="100%"}

Compile-time and compiler size for many compilers are growing at an alarming rate.
The situation is particularly complicated for C++ compilers due to the rapid evolution and relative complexity of the language.
As each C++ revision adds new features to both the language and the standard library, the compile time and compiler size increase.
In addition, most (if not all) compilers are increasingly heterogeneous, supporting multiple target architectures; in many cases a single source file can use both CPUs and GPUs (e.g. OpenMP target, SYCL, etc.).

To quantify these performance trends, we have created a visualisation site called Race To Binary (RTB)
The site downloads weekly snapshots of both GCC and LLVM compilers and compiles a series of test programs to track compile-time and compiler sizes over time:

<https://uob-hpc.github.io/rtb/>

The visualisation on the site is interactive: you can navigate the chart and select data points to find out which commits were made in that specific snapshot.
RTB's URLs are stable; for example, here are the compiler performance and size results for LLVM12-15 and GCC11-13 for miniBUDE OpenMP:

* <https://uob-hpc.github.io/rtb/#/dataset/node33/perf?versions=gcc-11%5Egcc-12%5Egcc-13%5Ellvm-12%5Ellvm-13%5Ellvm-14%5Ellvm-15&jobs=bude-omp&scale=2.00&group=user>
* <https://uob-hpc.github.io/rtb/#/dataset/node33/size?versions=gcc-11%5Egcc-12%5Egcc-13%5Ellvm-12%5Ellvm-13%5Ellvm-14%5Ellvm-15&jobs=bude-omp&scale=2.00&group=user>


This project is partially inspired by similar work in the LLVM community:

* <https://www.duskborn.com/posts/llvm-15-speed/>
* <https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html>

The style of visualisation is similar to the ["Are we * yet" websites](https://wiki.mozilla.org/Areweyet).

## Snapshots

The RTB project requires pre-built compiler binaries, however we were unable to find existing resources that host old snapshots.
To resolve this, we created a snapshot-building pipeline using only GitHub Actions and Pages:

<https://uob-hpc.github.io/compiler-snapshots/>

This site compiles weekly snapshots for both LLVM and GCC and publishes the binaries as GitHub releases.
We then run a Page action to deploy a static site so that specific snapshots can be easily located.


## Similar work

If you find this work interesting, we've done similar research on SYCL's *runtime* performance, see <https://dl.acm.org/doi/10.1145/3456669.3456701>.
For compile time, an interesting study from another group looked at SYCL's *compile* time: <https://dl.acm.org/doi/10.1145/3529538.3529548>.
16 changes: 9 additions & 7 deletions about.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,29 @@ permalink: /about/

* [Prof Simon McIntosh-Smith](http://uob-hpc.github.io/SimonMS/) {% include icon-github.html username="simonmcs" %}

* [Dr Tom Deakin](http://www.tomdeakin.com) {% include icon-github.html username="tomdeakin" %}
* Mr Andrei Poenaru {% include icon-github.html username="andreipoe" %}, Arm-sponsored PhD student, moving to Cray/HPE
* [Dr Tom Deakin](https://hpc.tomdeakin.com) {% include icon-github.html username="tomdeakin" %}
* Mr Harry Waugh, ASiMoV PhD student
* Mr Jack Jones, ASiMoV PhD student
* Mr Thorben Louw, ASiMoV researcher
* Mr Rahat Muneeb, ASiMoV researcher
* Mr Wei-Chen (Tom) Lin, PhD student
* Mr Joe Heaton, Isambard and ACRC sys admin/RSE
* Mr Finn Wilkinson, PhD student with Arm
* Mr Dan Weaver, PhD student with Huawei
* Mr Kaan Olgu, PhD student
* Mr Jim Cownie, honorary senior researcher
* Dr Jose Nunez-Yanez (Assoc. Professor)
* Dr Dinesh Pamunuwa (Assoc. Professor)

Former group members:
* Dr Andrei Poenaru {% include icon-github.html username="andreipoe" %}, now [Cray/HPE](https://www.linkedin.com/in/andrei-poenaru-bb738a8a/)
* Mr Joe Heaton, now at [Appsbroker Ltd](https://www.linkedin.com/in/joeheatondev/)
* Dr Patrick Atkinson, now at [NVIDIA](https://www.linkedin.com/in/patrick-atkinson-108b08105/)
* Dr Clement Foyer, now at [INRIA](https://www.linkedin.com/in/clementfoyer/)
* Dr Clement Foyer, now Associate Professor at [URCA](https://www.linkedin.com/in/clementfoyer/)
* Dr James Price, now at [Google](https://www.linkedin.com/in/jamesrprice89/)
* Dr Matt Martineau, now at [NVIDIA](https://www.linkedin.com/in/matt-martineau-7a575421/)
* Mr Hal Jones, now at UK government
* Dr Mike O'Connor, now at [Entos](https://www.linkedin.com/in/mike-o-connor-353493162/)
* Mr Grzegorz (George) Pawelczak, now at [Graphcore](https://www.linkedin.com/in/george-pawelczak/)
* Mr Codrin Popa, now at [Facebook](https://www.linkedin.com/in/codrinpopa/)
* Dr Rob Hunt, now at [ITSUS Consulting](https://www.linkedin.com/in/robdhunt/)
* Mr Mike Boulton, now at ForgeRock
* Mr Dan Curran
* Mr Mike Boulton

Binary file added assets/rtb_screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 21 additions & 12 deletions projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,29 @@ permalink: /projects/
---

- [Isambard](http://gw4.ac.uk/isambard/)
The Isambard supercomputer, a collaboration between the GW4 Alliance, Cray Inc. and the Met Office, aims to deliver a Tier 2 high performance computing service for UK-based scientists. It will provide multiple advanced architectures within the same system, and includes 64-bit ARM CPUs, Intel Xeon and Xeon Phi processors and NVIDIA GPUs.
The Isambard supercomputer, the world's first Arm-based production supercomputer, is a collaboration between the GW4 Alliance, Cray Inc. and the Met Office. Isambard is a Tier-2 high performance computing service for UK-based scientists, providing multiple advanced architectures within the same system, including 64-bit Arm CPUs, the latest Intel and AMD CPUs, and GPUs from NVIDIA and AMD.

- [BabelStream](http://github.com/uob-hpc/BabelStream/)
- [The Simulation Engine: SimEng](https://uob-hpc.github.io/SimEng/)
SimEng is a new, fast, accurate, easy to use and modify cycle-level CPU simulator. Initially focused on modelling Arm and RISC-V CPUs, it comes with a growing array of models, including Arm's latest Neoverse v2 and Apple M1 cores.

- [BabelStream](https://github.com/UoB-HPC/BabelStream)
A benchmark used to measure memory bandwidth, in a wide variety of programming models.

- [BUDE / miniBUDE](https://github.com/UoB-HPC/miniBUDE)
A GPU accelerated molecular docking program that can be used to perform virtual drug screening, ligand binding site identification on protein surfaces, and protein-protein docking in real space. Collaboration with the School of Biochemistry. Our research group recently produced a mini-app version of BUDE to make it easier to use as an experimental sandpit for emerging parallel programming models and computer architectures.

- [MiniCombust](https://github.com/UoB-HPC/minicombust)
A new mini-app developed as part of the ASiMoV EPSRC prosperity partnership with Rolls-Royce. MiniCombust enables the exploration of combustion codes relevant to gas turbine engines and similar machinery. MiniCombust couples particles (to model fuel droplets) and CFD, and comes in parallel (OpenMP and MP) and serial versions. Written in simple, modern C++, MiniCombbust also enables exploration of emerging parallel programming languages, such as ISO C++ standard parallelism, SYCL and Kokkos.

- [ExCALIBUR](https://excalibur.ac.uk)
ExCALIBUR is the UK's 5-year Exascale software and algorithms programme. The HPC research group is central to several important parts of ExCALIBUR: Tom Deakin is Co-I for the benchmarking activity, and Simon McIntosh-Smith co-chairs the [hardware and enabling software programme](https://excalibur.ac.uk/themes/hardware-and-enabling-software/), as well as sitting on the steering committee.

- [CloverLeaf](http://uk-mac.github.io/CloverLeaf/) and [CloverLeaf 3D](http://uk-mac.github.io/CloverLeaf3D/)
A Lagrangian-Eulerian hydrodynamics benchmark, part of the [Mantevo Project](https://mantevo.org/), and now adopted into the latest version of the [SPEChpc benchmark suite] ().

- [TeaLeaf](https://github.com/UoB-HPC/TeaLeaf)
A PPCG-based sparse iterative solver framework and heat diffusion benchmark, part of the [Mantevo Project](https://mantevo.org/). Written in C, with multiple programming models. Original code available at [UK-MAC](http://uk-mac.github.io/TeaLeaf/). Now adopted into the latest version of the [SPEChpc benchmark suite] ().

- [MEGA-STREAM](http://github.com/uk-mac/mega-stream)
A benchmark used to investigate why streaming many arrays (with different sizes) causes memory bandwidth limits not to be reached; resulting in latency becoming a dominant factor.

Expand All @@ -19,22 +37,13 @@ permalink: /projects/
- Leveraging Multi-Core Technology for Deterministic Neutral Particle Transport at Extreme Scale
An investigation into the parallelism of the Sn transport algorithm on an unstructured, domain decomposed mesh, at the core, node and interconnect level (including accelerated devices such as GPUs) using proxy apps including [SNAP](http://www.lanl.gov/projects/feynman-center/technologies/software/snap-sn.php).

- [CloverLeaf](http://uk-mac.github.io/CloverLeaf/) and [CloverLeaf 3D](http://uk-mac.github.io/CloverLeaf3D/)
A Lagrangian-Eulerian hydrodynamics benchmark, part of the [Mantevo Project](https://mantevo.org/).

- [TeaLeaf](https://github.com/UoB-HPC/TeaLeaf)
A PPCG-based sparse iterative solver framework and heat diffusion benchmark, part of the [Mantevo Project](https://mantevo.org/). Written in C, with multiple programming models. Original code available at [UK-MAC](http://uk-mac.github.io/TeaLeaf/).

- [Oclgrind](https://github.com/jrprice/Oclgrind)
An extensible OpenCL device simulator that provides a platform with which various OpenCL developer tools can be created. Includes support for detecting memory access errors, race conditions, work-group divergence, and provides an interactive debugging environment.

- [BUDE](http://www.bris.ac.uk/biochemistry/research/bude)
A GPU accelerated molecular docking program that can be used to perform virtual drug screening, ligand binding site identification on protein surfaces, and protein-protein docking in real space. Collaboration with the School of Biochemistry.

- [Hands On OpenCL](http://handsonopencl.github.io/)
Hands On OpenCL is a two-day lecture course introducing OpenCL, the API for writing heterogeneous applications. Provided are slides for around twelve lectures, plus some appendices, complete with Examples and Solutions in C, C++ and Python. The lecture series finishes with information on porting CUDA applications to OpenCL.

- [ROTORSIM]()
- ROTORSIM
An accelerated CFD code, originall developed by Prof. Chris Allen in the Department of Aerospace Engineering at the University of Bristol. ROTORSIM now includes a port to OpenCL in order to exploit many-core processors such as GPUs and the Intel Xeon Phi.

- [danceroom Spectroscopy](http://danceroom-spec.com/)
Expand Down

0 comments on commit faec16b

Please sign in to comment.