運算式叢集技術預覽
這是您用來安裝與執行 Windows® 式叢集和開發您應用程式所唯一需要的工具組 - 立即查閱。
編譯器
C/C++
現今許多 C 與 C++ 編譯器的設計均可用來編譯高效能運算 ( High Performance Computing,HPC) 應用程式。在此僅列出一些較常用的編譯器:
- Microsoft Visual C++® 開發系統
- PGCC,這是由The Portland Group
所發行的一種平行式最佳化的 C++ 與 ANSI C 編譯器
- 由 Intel 所發行的 C/C++
- 由 Kuck & Associates
所發行的 KAI C++
Fortran
高效能 Fortran (HPF) 是 Fortran 90 程式設計語言的擴充,可支援平行處理。HPF 是由 High Performance Fortran Forum (HPFF)
(這是由業界、學術及實驗室代表們所組成的國際性聯盟) 所開發的。Windows NTR 作業系統的 HPF 實作,包括由Compaq
的
Compaq Fortran
和 The Portland Group
的 PGHPF
。
訊息傳送
MPI
訊息傳送介面 (Message Passing Interface,MPI) 是由 MPI Forum
所提出的標準,可用來在分散式記憶體平行系統內進行訊息傳送。其目的使用來開發可攜式、有彈性,且有效率的訊息傳送標準。MPI 1.0 版
是在 1994 年發行的,稍後還陸續推出 1.1 版和 1.2 版。MPI 的最新版本為 2.0 版
。
由 Argonne National Labs
所提供的免費 MPI 實作 (MPICH),通常是用來作為 Windows 上的 MPI 程式。適用於 Windows 之 MPI 的商用版本 MPI/Pro
是由 MPI Software Technologies 所提供的。MPICH 與 MPI 1.2 版相容。
PVM
平行虛擬機器
(PVM) 是較舊的訊息傳送標準,可讓 UNIX 與/或 Windows NT 型電腦的異質性集合藉由網路串連在一起,當成一個大型平行電腦來使用。因此,藉由將許多電腦的能力與記憶體聚集在一起使用,便能以較省錢的方式來解決大型的運算問題。所使用的軟體須具有相當大的可攜性。由 Netlib 所提供的免費原始程式碼已將所有內容從膝上型電腦版本編譯成 CRAY 版本。PVM 可讓使用者列出他們現有的電腦硬體,以便能以最少的附加費用來解決最多的問題。全世界有數以百計的網站除了使用 PVM 作為教育工具來教授平行程式設計之外,還可使用 PVM 來解決重要的科技、工業,以及醫療問題。由於具有成千上萬的使用者,PVM 已成為全世界分散式運算的實際標準。
並請參閱:《Windows 2000 高效能叢集系列:訊息傳送》
Shared Memory
OpenMP
是一組編譯器指定與可呼叫的 Run-time 程式庫常式,可擴充 Fortran (且與 C
和 C++ 獨立分開) 用以表達共用記憶體的平行機制。OpenMP 應用程式開發介面 (API) 可在所有架構 (包括 Windows NT 平台在內) 上採用 C/C++ 與 Fortran,來支援多重平台共用記憶體的平行程式設計。由主要的硬體與軟體廠商群組所聯合定義的 OpenMP,是一種可攜式的調整型模組,為共用記憶體平行程式設計師提供一個簡單且富彈性的介面,針對從桌上型到超級電腦等平台的範圍,作為開發平行應用程式之用。
可支援 OpenMP 的編譯器如下:
- 由 Compaq 所發行的 Compaq Fortran
- 由 The Portland Group 所發行的 PGF90、PGF77 及 PGCC
- 由 Kuck 與 Associates 所發行的 Guide
和 C++
程式庫與軟體
提供了許多可供 Windows NT 與 Windows 2000 型平行運算使用的數學、圖形及數值程式庫與軟體。
Intel 效能程式庫套件
Intel
網站所提供的 Intel® 效能程式庫套件
包含了五個程式庫:
- 訊號處理程式庫
- 辨識基本程式庫
- 影像處理程式庫
- 數學核心程式庫Math Kernel Library
- JPEG 程式庫
這些程式庫可從 Intel 開發人員
網站下載。
LAPACK 與 LINPACK
LAPACK
提供了可用來解決同步線性方程式系統、線性方程式系統之最小平方解決方案、特徵值問題,以及單數值問題的常式。 LAPACK 被設計成可在共有記憶體向量超級電腦上有效率地執行,已取代在 1970 年代和 1980 年代早期所開發出供超級電腦使用的 LINPACK 程式庫。
PLAPACK
Parallel Linear Algebra Package (PLAPACK)
是種以高階抽象方式來撰寫線性代數演算法的基礎結構。雖然在設計較複雜的演算法時,以高階抽象方式來撰寫,須犧牲效能作為代價,但卻能以高階效能作為回收。在與 ScaLAPACK 經過效能比較之後發現,在某些解決程式 (Cholesky、LU 及 QR 因子) 方面, PLAPACK 的效能較佳。
ScaLAPACK
ScaLAPACK
(或調整型 LAPACK) 程式庫包含了 LAPACK
常式的子集合,這是專為分散式記憶體、多重指令、多重資料 (MIMD) 平行電腦所重新設計的。ScaLAPACK 程式庫可將 LAPACK 擴充到分散式記憶體架構 (如 Cray T3E、IBM SP-2,以及 Intel Paragon)。
BLAS
Basic Linear Algebra Subprograms 或 BLAS
是個高品質「建置區塊」常式 的程式庫,用來執行基本向量與矩陣運算。Level 1 BLAS 可用來進行向量對向量運算;Level 2 BLAS 可用來進行矩陣對向量運算;Level 3 BLAS 可用來進行矩陣對矩陣運算。由於 BLAS 具有效率、可攜性,以及廣泛的適用性,因此常被用來開發高品質線性代數軟體。Windows 版的 BLAS 是屬於 Intel 數學核心程式庫的一部分,可從 Intel 的開發人員網站
取得。
MATLAB
MATLAB
是由 MathWorks, Inc.
所發行的商用程式庫,由數值運算、進階圖形與視覺效果,以及高階程式設計語言所組成。MATLAB 可應用於各種不同的應用程式上,包括:訊號與影像處理、控制系統設計、財務工程,以及醫學研究。針對 MATLAB 學生版本
所提供的優惠價格,適用於美國與加拿大地區的學生。
CMTM
Cornell
Multitask Toolbox for MATLAB
(CMTM) 是由 Cornell Theory Center 所發行的,這是一套多工工具箱,可讓多重 MATLAB 複本在工作站的網路上同時執行,進行矩陣交換,因此可提升平行運算效能。此外,它還可更全面地發揮多處理器機器的效能,以提供程式設計師能在單一機器上一致性的執行多個 MATLAB 執行個體的能力。CMTM 可從 CMTM 下載網頁免費散佈。
IMSL
International
Mathematical and Statistical Library (IMSL)
是由 Visual Numerics, Inc
所發行的一組數學與統計程式庫。提供適用於 Fortran 90、Fortran 77,以及 C 程式設計語言的數值程式庫。
NAG
Numerical Algorithms
Group (NAG)
提供一套廣泛的素質與統計程式庫。請參閱適用於 Windows 平台之NAG 程式庫的完整清單
。
OpenGL
OpenGL 是在開發互動式二維與三維 (2-D 與 3-D) 圖形應用程式方面最廣泛採用的 API。OpenGL 包含了影像表現、紋理對應、特殊效果,以及其他強大的視覺效果函式。OpenGL (DLL) 是隨附於 Windows NT 與 Windows 2000 產品內。如需更多有關 OpenGL 的資訊,請造訪 Microsoft
MSDN
與 OpenGL
網站。
PETSc
The
Portable, Extensible Toolkit for Scientific Computation (PETSc)
是個資料結構與常式套件,提供可用來在平行 (和序列) 電腦上設計大規模應用程式程式碼的建置區塊。PETSc 2.0 是採用 MPI 標準來進行所有的訊息傳送通訊。適用於 Windows 平台的 PETSc 可從 Argonne 的 National Lab 網站
下載。
其他資源
請查閱 Cornell Theory Center 網站, 以得知有關數值程式庫與數學軟體的擴充清單。其他有用的網站還包括 Netlib 存放庫和《可用的數學軟體指南》 。
|