多实例的应用程序(Multi-instance application):如果某些应用程序无法充分利用多线程技术将负载在CMT处理器上分布开的话,我们可以通过在CMT架构的系统上并发运行该应用程序的多个实例来获取性能的提升。当然,这种运行方式可能会需要操作系统的支持,例如:由操作系统来实现各个运行实例之间一定程度上的隔离。这时,可以借助于操作系统提供的虚拟化技术将整个系统划分为若干个独立、安全的逻辑子系统,每个实例运行在一个子系统中。Sun公司的Solaris操作系统种所提供的Container技术就是实现这样逻辑子系统的一种非常优秀的技术。
从这里可以回答我们前面提出的问题:对于单线程的应用,通过运行应用的多个实例,同样可以让它们在CMT上飞速运作!
当然,CMT也并非是万能的,不是所有的应用程序都适合运行在CMT系统上。某些应用程序如果不能将负载很好的在CMT架构上很好的分布,就不能够利用CMT的特性。例如:
某些单线程应用的运行需要很长的时间,如果不能够以多个实例的方式并发的运行,就不适合在CMT系统上运行。
同样的,以单线程方式运行的批处理类型的应用程序,往往也不太适合CMT架构。
随着CMT技术日臻成熟,当前业界对于CMT应用的一个主要问题自然而然的落在软件方面:必须要有一个同CMT相配套的操作系统为用户提供使用CMT强大功能的良好接口;同时还要考虑到许多传统软件的存在,能否将传统软件无缝的移植到支持CMT技术的操作系统上;第三就是良好的开发环境,为用户提供方便的软件开发包,充分利用CMT的高线程并发能力。
在本系列的第一篇文章中,我们向大家介绍了CMT的提出背景,TLP技术,CMT技术的实质、性能优势以及所适用的场合。在第二篇中,我们将向大家展示采用CMT技术的第一款商用处理器,UltraSPARC T1的技术特色。