Two ponies, rendered using different computer hardware. The pony on the left is computed with an Intel CPU and looks normal. The one on the right is computed with an Nvidia GPU and looks buggy. Why do different hardware setups lead to different results? And how can this be tested?
Dr Jade Alglave (UCL Computer Science) has just been awarded a Royal Society prize for her work on testing and verifying different types of computer chip.
Chips by ARM, AMD, IBM, Intel, or NVidia are found in devices ranging from smartphones to supercomputers, cars to aeroplanes. Programming software to run on multiprocessors is a form of concurrent programming, where multiple computations are executed during overlapping time periods. Sadly, due to the great number of possible outcomes of a given program, concurrent programming is error prone and “buggy”, and difficult to test, as the picture shows.
Dr Alglave has developed a tool to test and model proprietary hardware which ensures that software runs consistently across a range of platforms, reducing delays and costs caused by errors and inconsistencies.