基于PC集群的分布式并行图形绘制系统的难点

近年来图形学应用出现以下几个特点:模型复杂度急剧增大,场景对象更加复杂,绘制真实感要求更高,显示分辨率呈子数级递增以及真实感与实时性统一的要求。这些特点最终体现在对计算机图形硬件的绘制性能提出了更高的要求。提高GPU性能与开发分布式并行图形绘制技术成为了提高绘制性能的两个主流方向。但对大规模的场景实时绘制的应用而言单GPU的处理能力仍满足不了需求,并行绘制成为了唯一的选择。分布图形并行绘制系统从最初的专用并行绘制硬件发展到现在日渐完善的建立在高速网络上的基于PC集群的分布式并行图形绘制系统。并大量应用于大规模战场仿真、流体仿真与可视化、高性能建模、模拟驾驶、海量高维信息实时可视化等领域。

       集群并行绘制系统虽得到广泛应用,但仍然有许多问题没有得到很好的解决或者有待进一步提高:如采用什么样的结构来组织集群的图形绘制流水线、如何划分绘制任务、如何同步控制保证所有机器协同完成绘制任务、采用什么样的方法来实现系统的负载均衡等。这些问题都相互交织,很难将他们割裂开。一个问题的解决方案的选择总是对其他问题解决方案的选取产生重大影响。下面将选取几个典型的问题加以讨论。

1、体系结构的选取

     Molnar等人根据归属判断在图形绘制流水线中发生的时机将集群并绘制系统的体系结构归纳出三种基本类型:sort-first、sort-middle、sort-last。其中sort-middle一般需要特定的图形硬件支持,在PC集群的并行绘制系统中一般不采用这种体系结构。对其他两种体系结构而言,不同的体系结构有着自身特有的优势适合于某些特定的应用环境,同时也带来不同的系统瓶颈。对sort-first型系统而言任务划分、负载均衡是其难点,对sort-last型系统而言图像传输、合成是个瓶颈问题。

       实际中的应用完全按照上面这三种基本类型的体系结构来开发并行系统,并不能很好的解决问题,因此如何根据应用需求选取一种并行绘制的体系结构或者开发一种混合的体系结构是并行绘制的基础性工作,它决定了任务的划分、负载的控制等的解决方法的选取。

2、绘制任务的划分与分配

       在大规模场景绘制应用中,并行绘制处理的对象是大规模的场景数据,并行绘制的计算任务为点、面、体所表示的图形对象。任务划分就是控制节点按照一定的规则将这些数据分配给集群中绘制服务器处理的过程。面对海量的场景数据,从系统的整体效率角度考虑,不可能按照点面体这些基本的图形对象来划分,因此必须选择一定的划分粒度实现绘制任务的划分,随之带来的问题就是如何选择任务划分的粒度与任务划分的方式,使得按照这种方法进行的任务划分能够最大限度的提高系统性能的性能。

       绘制任务划分好之后,绘制任务如何分配到各个绘制服务器上?在实时交互式系统中,场景与视点随着时间的变化经常发生改变,场景数据在二维平面空间上的分布也随之发生改变,必然需要进行任务的重新划分,在这种情况下,数据如何在绘制服务器之间进行调度。这些就是并行绘制中的任务分配与调度机制需要解决的问题。

3、负载均衡策略

       良好的负载均衡是提高并行绘制系统性能的必要条件,也是并行绘制系统一直没有得到很好解决的一大难题。对并行绘制系统而言,在本帧数据绘制完成之前,是无法准确得出其绘制开销的,如何选取一个行之有效的负载度量标准完成对场景负载分布的估计(即量化工作负载)是做负载均衡必须解决的首要问题,因为负载度量的标准直接影响负载均衡算法的性能。

    不同的体系结构做负载的重点难点有所不同,但总体来说它们都必须解决如下三个问题:其一、如何根据集群并行绘制系统所处理的特定图形应用和场景数据来确定绘制任务的划分、分配、调度策略,使得集群中各个绘制节点的负载大致相当,并保持系统始终处于相对稳定。其二、当负载分布发生改变时,如何评判系统是否处于均衡状态,当系统失衡时,如何合理的调整各个绘制服务器之间的负载使得系统迅速重新达到负载均衡状态。其三、如何降低负载均衡算法本身的开销,以最小的代价达到最佳的均衡性效果。

       对sort-last型并行绘制系统而言,负载均衡较为容易实现。但对sort-first型而言,任务划分的方式、粒度大小与负载均衡密切相关,总体来说任务划分的粒度越小越容易达到负载均衡,但同时增大了任务划分与负载均衡的计算量。所以在良好的均衡效果与简明高效的算法实现上找到一个平衡点是sort-first型并行绘制系统的负载均衡研究的难点。

4、同步控制与容错处理

       集群中所有绘制节点收到各自的绘制任务后,相互独立的完成各自的绘制任务。如何保证集群中所有绘制与合成节点协同工作以保持系统正确流畅的运行(即:整个系统的帧率保持稳定,最终显示结果正确。)?其次,在实时交互式系统中,交互指令的响应须有严格的实时限制。当系统出现绘制任务堆积与实时交互指令的到来的情况,如何处理合理的处理堆积任务与实时交互的硬实时的矛盾,使得系统不仅能够提供良好的人机交互体验,而且能够保证画面的流畅?再次,集群并行绘制系统中每个节点共同为整个系统的正常运行服务,集群中的每一台PC的正常与否与整个系统能否正常运行有紧密关系。系统不允许出现这样的情况:因其中一台PC因故障宕机后造成整个系统的崩溃。如何采取一种容错处理策略使得系统能够快速地从故障中恢复,避免因为集群中的某几台PC出现故障而使整个系统崩溃的情况发生。

5、绘制结果的合成显示

       面对高分辨率显示的需求,单一显示屏已无法满足应用,因此无论对于sort-first型还是sort-last型的并行绘制系统而言都需要做同一件事情:将各个绘制服务器的绘制结果进行合成并分发显示,对sort-first而言做的是最终图像的拼接与分割,对sort-last而言则进行的是对各个绘制节点的绘制结果做基于深度的图像合成。面对高分辨率的图像,无论是像素的拼接还是基于深度的合成其开销均不可忽略,如何在现有的硬件条件下快速的实现绘制结果的合成使之不影响系统的整体绘制性能是提高并行绘制系统性能的又一因素。

6、网络带宽瓶颈

       一方面随着绘制真实感的不断增强,模型的精细度、场景的复杂程度不断增强,场景数据量也不断增加;另一方面近年来显示分辨率呈子数级递增,每帧图像的数据量也急剧增长。并行绘制系统运行过程中,场景数据的传输与绘制结果的传输对网络带宽的需求已成为制约并行绘制系统性能的又一重要因素。现单以sort-first型的绘制结果的传输来说明系统的网络带宽:假设系统由五块单屏分辨率为2560*1440的显示器拼接显示,则绘制结果的最终合成的显示分辨率为12800*1440,系统帧率为60FPS,图像格式采用RGBA,则1s内系统传输的数据量采用如下计算:

       12800*1440*4*60Byte = 4423680000Bytes = 4.12GB

       对sort-last型而言带宽则更高,负责合成的节点的带宽需求与绘制服务器的台数成线性关系。这样的带宽需求无论是对于基于传统TCP/IP体系的千兆以太网还是其他体系的网络设备而言都是不小的挑战。如何根据市面上现有的网络硬件设计系统的网络体系结构与数据格式来满足系统的带宽需求?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值