The arrival of multicore processing technology has brought great promise to attaining better performance and has significantly minimised space, weight, and power (SWaP) constraints. However, interference — unintended interactions between the threads — can occur at several levels of multicore computing systems. The non-deterministic behaviour of interference increases the difficulty of verifying the system.
Currently, there is no widely accepted methodology for testing multicore applications but there is general agreement that it is indeed a complex task. We might legitimately ask what it means to test thoroughly an application (or set of applications) running on a multicore chip and seek an efficient means of doing this. From a testing perspective, we might ask how we can drive the system to extremes. The aim is to find test inputs that may cause the system to violate performance timing requirements. My PhD research investigates how hyper-heuristics (and of course metaheuristics) can be brought to bear on the issue.