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

GPU硬件架构(2)- 图形管线的调度 主要讨论了任务分配的一些基本算法,还有一些更高级的调度方法没有讲述,比如work stealing。下一次将讨论GPU设计所用到的压缩算法。 阅读详情

近年来图形学应用出现以下几个特点:模型复杂度急剧增大,场景对象更加复杂,绘制真实感要求更高,显示分辨率呈子数级递增以及真实感与实时性统一的要求。这些特点最终体现在对计算机图形硬件的绘制性能提出了更高的要求。提高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体系的千兆以太网还是其他体系的网络设备而言都是不小的挑战。如何根据市面上现有的网络硬件设计系统的网络体系结构与数据格式来满足系统的带宽需求?

MPP(大规模并行处理)简介 1、 什么是MPP?MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。简单来说... 阅读详情

相关推荐

并行计算和大规模并行计算:实现更高效的数据处理和存储

作者:禅与计算机程序设计艺术 1.简介 云计算和大数据带来的新的应用需求给分布式并行计算和大规模并行计算提供了新的解决方案。通过这些解决方案,开发者可以快速构建大数据分析、数据挖掘和机器学习等应用系统,从而实现企业经济效益和商业价值最大化。然而,分布式并行计算和大规模并�allel计算(MPP)架构面临

AI天才研究院 1793

分布式图形数据库 Titan.zip

Titan 是一个在服务器集群搭建的分布式图形数据库,特别为存储和处理大规模图形而优化。集群很容易扩展以支持更大的数据集,Titan有一个很好的插件式性能,这个性能让它搭建在一些成熟的数据库技术上像 Apache Cassandra、Apache HBase、 Oracle BerkeleyDB。插件式索引架构可以整合 ElasticSearch 和Lucene技术。内置实现 Blueprints  graph API,支持 TinkerPop所有的技术。     特性1,支持不同的分布式存储层Apache Cassandra (distributed)Apache HBase (distributed)Oracle BerkeleyDB (local)Persistit (local)2 .可以更加数据集的大小和用户基数弹性扩展3. 分布式存储的复制,高容错性4,支持很多字符集和热备份5,支持 ACID 和 eventual consistency(最终一致性)6,支持的索引ElasticSearchApache Lucene7,内置实现 TinkerPop graph APIGremlin graph query languageFrames object-to-graph mapperRexster graph serverBlueprints standard graph API使用使用文档在这里 Titan documentation ,邮件列表:mailing list,github主页:https://github.com/thinkaurelius/titan。 标签:图数据库

并行图形绘制技术综述

为研究并行图形绘制技术,介绍图形绘制的流水线过程,对其内在的可并行性进行分析,研究并行绘制的实现方式,包括流水线并行、数据并行和作业并行,以及前分布拼接合成、中分布拼接合成和后分布拼接合成,讨论并行绘制面临的主要问题及其发展趋势。

三维渲染基础

这是我的第一篇博客,主要记录一些三维渲染有关的基础识!

Estelle 6032

像Apache Storm一样简单的分布式图计算

本文从计算机领域的“祖师爷”艾伦·图灵提出的图灵机概念开始,介绍了图形计算的概念,并以示例介绍了apache storm,基于apache storm如何进行分布式图形计算。apache storm是一个免费开源的分布式实时计算系统,具有简单易用、快速、可扩展、容错等优点。

CSDN研发技术 6837

Linux集群

本套视频内容丰富,分为集群化构建、缓存、存储、监控、安全、装机六大维度。服务构建步骤详细,手把手带着你上路;课后辅助资料全面,附录详细代码标注;深度技术讲解,逐步为你剖析底层原理……集群化阶段,讲解LVS与keepalived结合构建企业级负载调度集群,可供以万计用户同时访问;缓存阶段,讲解大量生产环境经典业务案例,让你轻松解决压力难点;存储阶段,糅合讲解 NFS、MFS、ISCSI 三类企业级存储技术,使你从容面对各类存储业务需求,最多可达PB级别!监控阶段,“上阵父子兵”,Cacti、Nagios、Zabbix,一个都不能少!轻松搞定!装机阶段,PXE、Cobbler混合双打,多个机房多种配置轻松搞定……

NVIDIA GPU 架构梳理

文中图片大部分来自NVIDIA 产品白皮书 TODO:英伟达显卡型号梳理 目录: 一、NVIDIA GPU的架构演变历史 二、Tesla 架构 三、Fermi架构 四、Kepler架构 五、Maxwell架构 六、Pascal架构 七、Volta架构 八、Turing架构 九、Ampere架构 一、NVIDIA GPU的架构演变历史和基本概念[1] 截止2021年,发布时间离我们最近的8种NVIDIA GPU微架构是: Tesla (特斯拉) Fermi(费米) Kepler(开普勒...

查理王的博客 2万+

集群分布式并行图形绘制基本概念

伴随着GPU硬件技术与计算机图形学理论的发展,使得原先很多被认为不可能的图形绘制变成了可能。图形绘制技术已经深入应用到设计、娱乐、科学研究等领域,在科研生产中起到了不可替代的作用。但必须看到,虽然GPU发展迅速,但面对海量的场景数据与愈加复杂的绘制算法时,单GPU能够提供的图形计算能力仍然捉襟见肘,高端图形硬件不仅价格昂贵,而且大多需要在特定的环境下才能工作,可扩展性差。将普通PC或者图形工作站通

hitheu的专栏 3340

个人PC搭建自己的Linux分布式集群

一、背景 跑spark mllib中的算法模型可能个人电脑虚拟机带不动(赋闲在家没事找事做:)),家里正好有两台闲置PC,然后自己又组了台主机,利用家里的路由器,把三台pc刷好Linux后,组建个

qingfudian5382的博客 1915

GPU服务器与PC 集群PC农场):科技算力双子星

场景化体验优化将重塑用户交互逻辑:针对医疗远程诊断、工业协同设计等垂直场景,PC 集群需深度适配终端设备能力(如平板触控交互、手机低功耗模式),依托跨系统兼容性打通协议壁垒(如 UOS 系统下的 3D 模型轻量化渲染、iOS 终端的低延迟编码),使远程访问 3D 模型、医疗影像的操作延迟低于 50ms,与本地设备体验差异缩小至 “无感”,真正实现 “终端无算力,体验无差别”,借由 “软件封装” 中低端 GPU 的大算力输出,让更多终端能流畅参与复杂场景交互。当节点数量增加时,集群的总算力接近理想线性增长。

LANHYGPU的博客 1307

并行计算模型

像其他专业行话一样,并行计算也有自己的行话。行话就像个大坑,坑中的人需要在其中浸淫很久,才能逐渐适应其语境,然而很多行话的使用常常是草率与不精确的。有时候把鬼都听不懂的行话理解了,再跟别人说鬼话,大概也是开启第二天性的方法。(按照农历来算,这个月是鬼月)

David_jiang 1838

集群的可扩展性及其分布式体系结构(2)

体系结构比较与可扩展性研究(上)林凡 iamafan@21cn.com 辰讯软件工作室研发部经理2001 年 11 月这篇文章是《集群的可扩展性及其分布式体系结构》第二篇的下半部分,将继续介绍常见的几类并行计算体系结构、可扩展与单一系统映象、集群的重要指标等内容。可扩展的并行计算体系结构首先,我们先来看一下计算机系统体系结构发展的几个主要类型。每种体系结构的差别并不大,关键在于互联

1298

并行处理系统

rt

qq_43527718的博客 401

第四章 虚拟现实的计算体系结构

目录 4.1 绘制流水线 4.2 图形体系结构 4.3 分布式虚拟现实的体系结构 4.1 绘制流水线 VR引擎是从输入设备中读取数据,访问与任务相关的数据库,执行任务要求的实时计算,从而实时更新虚拟世界的状态,并把结果反馈给输出显示设备。 VR系统结构的设计中最重要的是绘制技术。 在VR中,术语“绘制”表示把虚拟世界中的三维几何模型转变成二维场景展现给用户的过程。这一过程有一系列必须依次顺序完成的操作,通常把这个过程叫做绘制流水线。 绘制在VR中包含:图形绘制流水线-视觉(图形、图像)的...

weixin_51327051的博客 2207

用GPU通用并行计算绘制曼德勃罗特集图形 上篇

近年来PC的计算能力发生了天翻地覆的变化。CPU逐渐趋向于多核发展,同时内存带宽和缓存不断增加,如今的PC已经成为小型的统一地址空间的并行计算机。然而我们的PC中还有一个设备可以提供比CPU更加强大的并行计算设备——显卡,它在进行充分并行的任务时可以提供高达数TFLOPS的峰值运算能力,这几乎是2000-2001年间国产超级计算机的运算能力。在显卡刚出现时,显卡内的模块都是为特定的图形任务而设计的...

weixin_34194702的博客 302

大规模分布式图学习框架Euler——安装和使用

目录 一、Euler介绍 1. 框架 2. 应用 2.1 大规模图的分布式学习 2.2 支持复杂异构图的表征 2.3 图学习与深度学习的结合 2.4 分层抽象与灵活扩展 3. 内置算法 二、Euler安装 1. 编译 2. Euler安装  2.1 PyPI安装 2.2 源码编译安装 三、GraphSage模型训练 1. PPI数据 2. 模型训练 3. 模型评估...

baymax_007的博客 7933

集群框图

Excel中的方法:https://jingyan.baidu.com/article/da1091fb36a382027849d6c5.html SPSS中的方法: 1.所有数据按照条件情况设定设置成一列放置,多种条件情况分别按照不同列设置参数 2.选择:图形---图形构建器---》选择箱图中的集群框图双击选中---》设置X轴为最基本条件,设置Y轴为数据列,设置右上角“X轴上的...

atytjmt的博客 1285
上一篇: how to debug buffer overrun
下一篇: 集群分布式并行图形绘制基本概念
不靠谱的哥哥
博客等级 码龄17年 48粉丝 25原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值