并行I/O是否会走向关键任务应用? 存储与灾备
在几乎所有关于并行计算或并行I/O的讨论中,都会被问及的一个常见问题是:企业部署的关键任务应用是否可以利用该技术的优势?从商业应用的角度看,答案显然是“不行”。今天部署的大部分应用依然依赖于顺序处理——指令接指令,串行处理。
但也有一些应用对并行计算已经准备就绪。例如并行数据库,以及一定程度上的并行文件系统,都已经在高精尖的高性能计算领域中使用了很长一段时间。然而,这些应用往往只是存在于政府的研究实验室,或技术学院和大学的计算机系等比较狭窄的领域。
有迹象表明并行技术正在受到越来越多的关注
在不远的将来,并行技术有可能在商业世界获得更广泛的应用,尤其是在大数据分析不断升温的情况下。但就目前而言,并行处理的应用程序还没有广泛使用。
此外,并行计算的圣杯——通过一种简单自动的方式将原先设计为串行处理的应用程序转换为能够利用并行计算架构——尚未出现。大多数应用程序,包括最苛刻的hypervisor层的工作负载,也只是基于串行处理架构,将指令以一系列对共享资源请求的方式发出,称之为逻辑核心,尽力模拟出并发或并行执行。
这些现实状况不应该被当作是并行I/O在商业计算领域的局限。事实上,应用程序希望利用并行I/O并非只是为了提高业务应用,操作系统或虚拟机的速度。确切地说,应用程序关注并行I/O是为了能够以并行方式同时处理来自多个托管应用软件进程的I/O请求。
从多处理器到多核
随着20世纪八、九十年代多处理器环境的演进,每个处理器处理一种应用程序。在一些设计中,某个处理器或一组处理器会以并行方式,专门处理那些由离散的应用CPU所产生的所有I/O。后来,这种设计逐渐转移到多核处理器中。
在多核处理器中,有两个或多个实际的处理单元,称之为核心。每个核心就像单独的CPU一样读取和执行程序指令,通常是通过自己的高速缓存从芯片上的其它物理内核单独读取指令。除了物理上的多核架构以外,通常还有一组进程——一种软件抽象——运行在芯片上,在英特尔的芯片上称之为“超线程”,它能创建逻辑核心。逻辑核心也是一种处理单元,能够同其他的逻辑核心一起在各自的线程中并行处理。