在把应用软件放到多核系统中以前,需要多次测试这些软件。但是,如果原型硬件在代码准备就绪时就已存在的话,则测试会占用这些昂贵并且难以部署的原型硬件。并且如果把代码锁定到多核硬件,就会很快减少在硬件和软件之间折衷的机会。作为替代办法,可以考虑在虚拟系统上运行软件,该系统模仿处理器核心和其它硬件设备。Virtutech公司营销副总裁 Michel Genard说:“硬件虚拟化使你能做许多探索。你可以看到应用代码在一个或几个核心内如何工作。并且你可以观察为每个内核改变时钟频率后造成的影响,但不必改变硬件。无需占用硬件,可以运行自己的应用代码。”
由于虚拟系统控制了时间,因此可以停止所有内核和设备,并且可以向后或向前运行代码。还可以用检查点在特定时间访问来自“内部”核心和所有其它设备的信息。Genard指出:“开发人员告诉我们一些噩梦,比如多核系统中的 SMP竞态条件。他们发现几乎无法在硬件上调试多核应用代码。另一方面,虚拟环境使他们能再现系统行为。他们可以根据需要‘备份’、检验、改变数据,或观察和改变行为。”