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 behaviours of interference mechanisms increase the difficulty of verifying the system, since all possible interference should be considered.
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 in order to understand its behaviours better, together with declare certain interferences as unsafe. My PhD research investigates how hyper-heuristics (and of course metaheuristics) can be brought to bear on the issue.