顯示具有 HPC 標籤的文章。 顯示所有文章
顯示具有 HPC 標籤的文章。 顯示所有文章

LiquidFun:Google 設計給手機遊戲用的 2D 流體模擬函式庫

Google 今天發表了一個新的 LiquidFun 函式庫,可以用來在各種作業系統或手機上模擬流體的物理現象。


LiquidFun 是一個以 C++ 所開發的 2D 流體模擬函式庫,它以 Box2D 為基礎,並且實作了以利子為基礎(particle-based)的流體模擬,這個函式庫可以讓手機遊戲的開發者很容易在遊戲中加入近似實際流體的效果。

由於 LiquidFun 是以 C++ 開發的,所以除了手機之外,任何有 C++ 編譯器的作業系統或平台都可以運用這個函式庫,Google 除了將 LiquidFun 的原始碼放在 GitHub 之外,也提供了許多在 Windows、Mac OS X 與 Linux 上的應用程式範例與 unit tests。

在 Linux 中以特定的 CPU 核心執行程式

這裡介紹如何在 Linux 中以特定的 CPU 核心執行程式,不要讓系統自動排程。


現在不管是伺服器或是一般個人電腦的 CPU 大部分都是多核心的架構,而各種應用軟體、編譯器與作業系統也受到這個趨勢的影響,也都會有針對多核心處理器做的最佳化設計。

通常在多核心的作業系統中常使用處理器的親和性(processor affinity,亦稱 CPU pinning)來處理需要高效能計算的應用,這個技術是屬於作業系統的一個特殊功能,它可以讓行程在特定的 CPU 核心中持續執行,不受作業系統排程的干擾。

將行程綁定在特定的 CPU 核心上有許多優點,例如一個 cache bound 的程式跟其他比較耗費 CPU 計算的程式一起執行時,將程式綁定在特定的 CPU 核心可以減少 cache miss 的狀況。另外在兩個行程頻繁的藉由 shared memory 進行溝通時,將兩個行程都綁定在同一個 NUMA 節點中也可以增進執行效率。

這裡我們會以 Linux 系統為例,介紹如何在 Linux 系統中將一般的程式綁定在一個選定的處理器核心中執行。

提高伺服器系統與資料庫擴充性(Scalability)與效能(Performance)的方法(二)

避免累積太多的 Technical Debt

Technical debt 是指一個專案或程式開發工作在真正完成前,所有應該做完的工作,如果一個專案中所累積的 technical debt 太多而沒有適時消化,到最後這個專案就容易出現問題,甚至可能因此終結。

這裡舉個簡單的例子,在一般的專案的發展過程中,有時候程式設計師會有一些新的想法,這時候他會想要在程式中加入這個新的程式,但是因為程式還在開發,很難一次把所有該更新或改寫的地方一次補齊,例如當程式加入一個新功能時,卻沒有更新對應的說明文件等等,而這些說明文件以及其他該更新的地方,就是常見的 technical debt。

這時候如果很不幸的,原本這個開發團隊因為某些原因離開了,專案交由令一個團隊繼續開發,那些新增之後卻沒有文件的功能就是個大問題,新團隊要花費更多的時間搞清楚它是什麼,如果它裡面還有 bug 的話那就更慘了。

Technical Debt

提高伺服器系統與資料庫擴充性(Scalability)與效能(Performance)的方法(一)

Slow Traffic – Penguin Crossing
擴充性專家 Sean Hull 整理了幾項對於系統擴充性(Scalability)與效能(Performance)的致命傷,如果你的系統或程式想要有好的擴充性,請避免這幾種狀況。

不要用 RAID 5 與 Multi-tenant EBS

硬碟是伺服器中一個很基本的硬體設備,而它與伺服器的整體效能息息相關,縱使現在記憶體價格低廉,你可以在伺服器上裝載非常大容量的記憶體,藉以提升系統的執行速度,但無可避免的,系統還是常常需要從硬碟讀取資料或將資料再寫回硬碟中儲存,因此硬碟在伺服器的效能(performance)與可擴充性(scalability)上扮演舉足輕重的角色。

磁碟陣列是一般伺服器中常用的資料儲存方式,透過這樣的方式可以提高儲存的讀寫速度、增加資料的可靠度。磁碟陣列分為好多種,但不是每一種都那麼適合你的伺服器來使用,像一般常聽到的 RAID 5 磁碟陣列就有一些問題。

2009 年世界最快的超級電腦 Roadrunner 現在已經過時,即將被拆除

五年前 IBM 建造了一台專門用來模擬核子武器衰減的超級電腦,名字叫做 Roadrunner,其計算速度在當時是有始以來最快的,每秒可進行一千萬億次的浮點運算(petaflop),在 2008 年剛建造好的時候,馬上登上全球超級電腦排名 Top 500 的第一名寶座,其排名一直維持在全球第一,直到 2009 年六月之後才被其他的超級電腦超過。

如今這台超級電腦已經被宣佈過時並下線,其主機設置在新墨西哥州美國能源部的洛斯阿拉莫斯國家實驗室(Los Alamos National Laboratory),Roadrunner 將會被研究一段時間然後拆除,而現在這台超級電腦仍然是世界上排名第 22 快的,但因為它的能源效率過低,太過耗電,不值得讓他繼續運作。

據洛斯阿拉莫斯國家實驗室表示,在這五年的運行中,Roadrunner 隸屬於國家核安全管理局(National Nuclear Security Administration)的 Advanced Simulation and Computing(ASC)計畫,主要負責核威懾(nuclear deterrent)的計算。

Roadrunner 當初在建造時,耗資1.2億美元,296 個服務器機架佔地 6000 平方英尺,節點之間使用 InfiniBand 連接,總共包含 122,400 個 CPU cores。其混合式(hybrid)的處理器架構使用 IBM PowerXCell 8i(Sony PlayStation 3 的加強版)與 AMD Opteron 雙核心的處理器,而 AMD 處理器負責基本的工作,而 Cell 的處理器則負責較大量的運算工作(當作加速器使用)。

Roadrunner 超級電腦