1. 程式人生 > >叢集分散式並行圖形繪製基本概念

叢集分散式並行圖形繪製基本概念

伴隨著GPU硬體技術與計算機圖形學理論的發展,使得原先很多被認為不可能的圖形繪製變成了可能。圖形繪製技術已經深入應用到設計、娛樂、科學研究等領域,在科研生產中起到了不可替代的作用。但必須看到,雖然GPU發展迅速,但面對海量的場景資料與愈加複雜的繪製演算法時,單GPU能夠提供的圖形計算能力仍然捉襟見肘,高階圖形硬體不僅價格昂貴,而且大多需要在特定的環境下才能工作,可擴充套件性差。將普通PC或者圖形工作站通過高速網路互連,建立起一個集群系統,充分挖掘每臺計算機的計算能力,從而能夠提供與高階圖形硬體相媲美的繪製能力,兼具靈活的可擴充套件性,成為了解決這種供需矛盾的一個不錯的選擇。本文將簡要介紹開發分散式並行繪製系統的必要性與分散式並行圖形繪製的基本概念。

1必要性

       近年來圖形學研究呈現以下幾個特點:隨著三維掃描技術、計算機輔助設計、科學模擬等技術的發展,幾何建模愈加方便,模型複雜度急劇增大。虛擬場景中物件越來越多,物件屬性越來越複雜,加上實時互動的應用,使得場景繪製的計算量呈子數增大。繪製真實感要求不斷提高典型的有光線跟蹤、輻射度演算法、全域性光照效果等。使用者為了追求沉浸式的視角效果,顯示解析度不斷提升,多頻拼接顯示技術廣泛應用得到廣泛應用。

       GPU發展雖打破摩爾定律,但無法跟上應用領域需求的增長,因此分散式圖形並行繪製技術在硬體技術飛速發展的今天仍得到重視。總體來說並行圖形繪製有兩種應用型別:真實感繪製,特點是場景模型資料少,但計算過程複雜,計算量大,並行繪製主要體現在計算的並行上。海量場景資料為代表的應用,所處理的資料量巨大,單個處理物件的繪製過程相對簡單,並行繪製主要體現在資料的並行性上。本文所討論的主要針對後者。

2叢集分散式並行圖形繪製的定義

       簡單的來說叢集並行繪製系統就是建立在PC叢集上協同完成同一繪製任務的系統,並行圖形繪製體系結構是並行繪製系統設計中首要核心問題,它決定了系統的工作機制,是實現其他相關功能的基礎。狹義上的分散式並行圖形體系結構指圖形處理流水線的組織方式,Molnar提煉出三種基本型別:sort-first、sort-middle、sort-last。廣義上的並行繪製體系結構之圍繞圖形處理流水線並行組織方式建立起來的相關功能綜合,包括任務劃分、負載均衡、資料排程、影象合成等。這些功能與圖形處理密切相關,無法割裂開來單獨設計因此將其劃入並行繪製體系結構的一部分。

3三種基本的並行繪製體系結構

       圖形繪製流水線可以概括為兩個流水線階段:幾何流水線階段和繪製流水線階段。在常見的圖形API中它們通過相對獨立的模組實現,場景資料具有弱相關性的特點,打亂執行順序而不影響最終繪製結果。這些特點使得圖形的並行繪製成為了可能。圖形繪製是,被繪製的資料按照一定的任務劃分策略被分配到不同的繪製伺服器上,這個劃分與分配的過程稱之為歸屬判斷。Molnar等人根據歸屬判斷髮生的時機將並行圖形繪製的體系結構歸納為三種基本型別:sort-first、sort-middle、sort-last。

       sort-first:歸屬判斷髮生在幾何流水線之前。最終的顯示螢幕影象被劃分成若干個子區域分配給不同的繪製伺服器負責。繪製開始前先確定場景幾何資料在顯示螢幕上的投影落在那個子區域上,由負責此區域的繪製伺服器完成繪製並輸出最終影象,所有繪製結果拼接成最終的顯示圖形。sort-first優點是每個繪製伺服器的擁有完整的繪製流水線,有利於構建PC叢集的並行繪製系統,缺點是歸屬判斷開銷較大,負載均衡較難實現。

       sort-middle:歸屬判斷髮生在幾何流水線之後,繪製流水線之前。幾何流水線階段資料不按照區域劃分,而是按照負載均衡的原則進行劃分,經過幾何流水處理的中間結果按照螢幕區域劃分並分配給相應的繪製伺服器,收集所有的繪製結果並拼接合成最終顯示影象。由於普通的GPU結構特點決定了無法取得中間結果,這種型別的體系結構一般需要專用的圖形硬體的支援,因而PC叢集的並行繪製系統一般不採用這種型別。

       sort-last:影象不進行空間劃分,將場景資料進行立體空間的劃分,每個繪製伺服器負責不同空間範圍內的場景資料的繪製,並得到一幅包含部分場景資訊的全螢幕影象,所有的繪製結果按照深度進行影象合成得到最終的顯示影象。這種結果簡單易實現,負載均衡容易控制,畫素的傳輸與合成是系統的瓶頸。

       經過多年的發展,國外已經開出了多種商業上的叢集並行繪製系統。stanford的WireGL是一個基於sort-first體系結構並獨立於具體硬體平臺的叢集並行繪製系統,Chromium是其升級版本。浙江大學的AnyGL則是一個立即模式的混合sort-first&sort-last型體系結構的叢集並行繪製系統。在實際應用中可根據需求特點,選取這三中基本結構加以改進以使得更適合於當前需要。

相關推薦

叢集分散式並行圖形繪製基本概念

伴隨著GPU硬體技術與計算機圖形學理論的發展,使得原先很多被認為不可能的圖形繪製變成了可能。圖形繪製技術已經深入應用到設計、娛樂、科學研究等領域,在科研生產中起到了不可替代的作用。但必須看到,雖然GPU發展迅速,但面對海量的場景資料與愈加複雜的繪製演算法時,單GPU能夠提供

負載均衡和分散式(一)基本概念

寫在前面:本系列文章只講原理性和概念性相關的知識,目的在於對負載均衡和分散式技術有感性的認知,文中內容大多為我自己的理解,相關術語為自己杜撰,非權威學術術語、水平有限,如有錯誤 請諒解~  首先通俗的理解下負載均衡,廣義上,負載均衡就是把資料從一個機器分發發到多個機器進行處理~

hadoop偽叢集的安裝,及基本概念

導讀 偽叢集的意思就是說我們可以在多臺計算機上面安裝hadoop,但是不具有高可用和共容錯,這適用於開發環境。 我們首先下載hadoop的安裝包,我使用的cdh版本的5.14.0,你可以在該網址找到他, 首先我們說一下hadoop的配置檔案的分類: hadoop的配置

【GlusterFS學習之一】:GlusterFS分散式檔案系統的基本概念及搭建

最近因為工作的需要在接觸GlusterFS,在未來的一段時間之內應該都要與之打交道,剛剛接觸分散式檔案系統,對很多概念和機制都不是很清楚,通過一段時間的學習有一點淺顯的認識,那麼就把這段時間的瞭解到的

圖形界面的基本概念

apple applet ner 創建 容器類 java.awt awt 其它 輕量級 1) AWT(Abstract Window Toolkit),抽象窗口工具集,第一代的Java GUI組件,是重量級的。 2) Swing,不依賴於底層細節,輕量級的組件。 GUI

第5章 選舉模式和ZooKeeper的叢集安裝 5-1 叢集的一些基本概念

xx就是我們的master,也就是我們的主節點。心跳機制,當有一個節點掛掉之後,整個叢集還是可以工作的。選舉模式,我們現在的master是正常執行的,但是在某些情況下它宕機了宕機了,那麼這個時候它這個叢集裡面就少了master,沒有master兩個slave需要去競爭。競爭完之後slave1把slave2給幹

二維圖形的矩陣變換(一)——基本概念

tcl aid 縮放 clas 數學家 hang matrix log css3 原文:二維圖形的矩陣變換(一)——基本概念基本的二維變換可包括旋轉、縮放、扭曲,和平移四種, 而這些幾何運算則可以轉換為一些基本的矩陣運算:

Python123(Python程式語言設計)-------練習2:Python基本圖形繪製

例項2: Python蟒蛇繪製 使用turtle庫繪製一個蟒蛇形狀的圖形 #PythonDraw.py import turtle turtle.setup(650, 350, 200, 200) turtle.penup() turtle.fd(-250) turtle.pend

分散式系統-->(關於系統應用的基本概念)

分散式系統-->(關於系統應用的基本概念) 最近想了一下,個人學習使用了很多很優秀的開源技術,然後也看了一些的書籍,感覺需要去整理一下,然後分享出來,一方面是一個知識總結,第二方面是有一個知識共享,期間會寫一些關於分散式系統的基礎知識,包括分散式系統會遇到的問題,然後是各種分散式應用

測驗2: Python基本圖形繪製 (第2周)

測驗2: Python基本圖形繪製 (第2周) 1.哪個選項不能正確引用turtle庫進而使用setup()函式?‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ A、import

python_week2_基本圖形繪製

1 Python基本圖形繪製 1.1 Python蟒蛇繪製 import turtle as t t.setup(650, 300) t.penup() t.fd(-250) t.pendown() t.pensize(25) t.pencolor("purple") t.set

mooc-python語言程式設計練習2-基本圖形繪製turtle

1.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬# 00390031003900310038427 哪個選項不能正確引用turtle庫進而使用setup()函式?‪‬‪‬‪‬

Linux 高可用(HA)叢集基本概念詳解

目錄 十二、總結 一、高可用叢集的定義   高可用叢集,英文原文為High Availability Cluster,簡稱HACluster,簡單的說,叢集(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網路資

第一章 走入並行世界(並行基本概念

本文摘自《實戰Java高併發程式設計》,瞭解詳細內容推薦購買原版書籍。 第一章 走入並行世界 1.1何去何從的平行計算 使用並行程式目的:1、獲得更好的效能。2、業務模型的需要,確實需要多個執行實體。 1.2基本的概念 1.2.1 同步(Synchronou

分散式基本概念

節點   指一個可以獨立按照分散式協議完成一組邏輯的程式個體 有狀態與無狀態   當一個節點可以在其本機上進行資料互動則稱為有狀態節點。如果一個節點進行資料互動需要請求其他節點來幫其實現則稱為無狀態節點 異常 機器怠機 指機器異常宕機,需要人為重啟。在怠機過

“毛星雲OpenCV3程式設計入門之python實現”第六篇基本圖形繪製

4.3基本圖形繪製 python程式碼: # -*- coding: utf-8 -*- __author__ = 'sunzhilong' import cv2 import numpy as np image = np.zeros((600,600,3

Python並行程式設計(一):基本概念

  1、執行緒和程序       程序是應用程式的一個執行例項,比如,在桌面上雙擊瀏覽器將會執行一個瀏覽器。執行緒是一個控制流程,可以在程序內與其他活躍的執行緒同時執行。控制流程指的是順序執行一些機器指令。程序可以包含多個執行緒,所以開啟一個瀏覽器,作業系統將建立一個程序,並開始執行這個程序的主執行緒。每一

叢集,分散式,微服務概念和區別理解

概念: 叢集是個物理形態,分散式是個工作方式。 分散式:一個業務分拆多個子業務,部署在不同的伺服器上叢集:同一個業務,部署在多個伺服器上1:分散式是指將不同的業務分佈在不同的地方。而叢集指的是將幾臺伺服器集中在一起,實現同一業務。 分散式中的每一個節點,都可以

Python123-------練習2:Python基本圖形繪製

例項2: Python蟒蛇繪製 使用turtle庫繪製一個蟒蛇形狀的圖形 #PythonDraw.py import turtle turtle.setup(650, 350, 200, 200) turtle.penup() turtle.fd(-250) turtle.

【併發程式設計】對阻塞/非阻塞、同步/非同步、併發/並行基本概念的理解

1. 併發與並行 併發:concurrency 並行:parallelism 開發過程中,常常會接觸併發有關的概念,比如併發計算(concurrent computing),併發系統( concurrent system),併發控制(concurrent