並列計算機のハードウェアとソフト ウェア (parallel virtual machine) mpi (message...

30
並列計算機のハードウェアとソフト ウェア

Upload: vokiet

Post on 24-Mar-2018

227 views

Category:

Documents


6 download

TRANSCRIPT

並列計算機のハードウェアとソフトウェア

ベクトル計算機

専用並列計算機– Fujitsu VPP700, NEC SX-5, CP-PACS– Fujitsu AP3000, NEC Cenju 4, HITACHI

SR2201, IBM SP2

クラスター・コンピューティング– PVM (Parallel Virtual Machine)– MPI (Message Passing Interface Standard)

利用可能なシステム

超並列計算機(国内)

開発元 富士通 富士通 日本電気 日本電気 日立

製品名 VPP7 00 AP3 000 SX- 5 Cenju 3 SR2201方式 MIMD MIMD MIMD MIMD MIMD

PE専用チッ

プU ltra

SPARC専用チッ

プVR10000 PA-RISC

PE数 8- 2 56 1024 512 1 024 2 048

トポロジークロスバー

2次元トーラス

クロスバー ・HIPPI

多段接続3次元クロ

スバー

最大演算速度

(GFlops)6 14.4 ? ?? 4 000 4 00 6 00

超並列計算機(アメリカ)

開発元シンキングマ

シンクレイ IBM

製品名 CM-5E Cray-T3D SP2方式 MIMD/ SIMD MIMD MIMD

PESuper

SPARCDEC Alpha Power

最大PE数 16384 2048 128

トポロジーファット・ト

リー3次元トーラ

スHPS

最大演算速度(GFl

163.84 307.2 33

Fujitsu VPP500

1つのPEで、論理ピーク性能1.6 GFLOPS800MB/秒の高速データ転送メモリ容量: 1~222GB (256MB~1024MB/PE)

Fujitsu VPP700

2.4GFlops最大2GByte

Fujitsu AP1000+

50MHz SuperSparc : 最大1024CPU

Fujitsu AP3000

CPU:UltraSPARC-II,64bit,296~360MHz

RAM: 32~256MB

OS:Solaris 2.6

Fujitsu AP3000の構造

NEC SX-5

CPU:高速RISC最大512CPU最大16CPU/ユニット

共有・分散メモリ

NEC Cenju-4

3800万円から

HITACHI SR2201

PA-RISC最高速度: 600GFlops

CP-PACS最高速度614.4GFLOPS最大2048PU

並列プログラミング言語

並列プログラムの記述方法

並列プログラミング言語

逐次プログラミング言語

+超並列コンピュータ用並列処理ライブラリ

逐次プログラミング言語

+標準的メッセージ・パッシング・ライブラリ

並列プログラミング言語

Fortran系

High Performance Fortran (HPF)Fortran DVienna Fortran

オブジェクト言語系

DataHPC++,MPC++HPJava

High Performance Fortran

HPF ForumHPF-1

1992. SuperComputing '92 conferenceScientific Programming, Vol. 2, no. 1-2 (Spring and Summer 1993), pp. 1-170, John Wiley and Sons.

HPF-21997Language Definition was released in 1997.01.

HPFの特徴

Fortran90ベース

データ並列プログラミングをサポート

MIMD,SIMDの両方に対応

!HPF$で始まるコマンド行により並列処理を実現

HPFでコンパイルすれば実現される

FORTRAN77ではコメント行

HPF Compilers (Prototype)

PRODUCT VENDOR/DEVELOPER SUPPORT

ADAPTOR GMD-SCAI F-+

Annai Tool Environment CSCS / SCSC O+

The D System Rice Univ S+

HPFC Ecole de Mines de Paris, FR S+

PANDORE IRISA S

PARADIGM CRHPC - University of Illinois at Urbana-Champaign S

shpf University of Southampton O+

vfcs Institute for Software Technology and Parallel Systems S+

HPF Compiler (Commercial)

PRODUCT VENDOR/DEVELOPER SUPPORT

EXPERT HPFACE O

Fortran 90 HPFDigital Equipment Corporation F+

HPF MapperN.A. Softwar O

Paragon HPFIntel F (?)

pghpfPort lar F-

TM/HPFThinking Machines Corporation O+

VAST-HPFPacific Sierra Research Corporation F-

xHPFApplied Parallel Research S

XL HPFIBM S

ADAPTOR

ADAPTOR (Automatic DAta Parallelism

TranslaTOR)

GMD (German National Research Center

for Information Technolog)のプロジェクト

Public domain HPF compilation system

ADAPTOR

HPF -> Distributed-memory machines

ADAPTOR対応ハードウェア

専用機Thinking Machines CM-5; Cray T3D, T3E; Intel Paragon, Intel iPSC/860; IBM SP 1 and SP 2; SGI Miltiprocessor Systems NEC Cenju-3, SX-4; Fujitsu VPP architectures Meiko CS 2, KSR, Parsytec

クラスター・システムWSネットワーク(SUN,HP-UX,DEC-ALPHA,IBM) PC's running LINUX

ADAPTOR対応MP

PVM (Parallel Virtual Machine)MPI (Message Passing Interface)PARMACS System V Shared Memory Segments Intel NX/2 (for iPSC/860, Paragon XP/S and Meiko CS-2) Thinking Machines CMMD 3.0 IBM AIX Parallel Environment

Fortran D

HPFに基づき、最新版はFortran D95大規模なデータについてout-of-core計算を実現

非構造型・粗マトリックス演算のためのirregular dataレイアウト

陽な並列アルゴリズムのためのタスク並列化

The dHPF CompilerThe D Editor *The dPablo Performance Tool *

Vienna Fortran

HPF+ -> Fortran90/MPIコマンドラインで実行

VFC (Vienna Fortran Compiler)入力言語はfull Fortran 90, HPF+,HPF-2VFCの並列化はSIMD(SPMD);通信はMPIHPCはSolarisで動作

プログラムはQSW CS-2、NEC Cenju3、WSクラスターで動作

HPC++

並列計算機用のC++クラス・ライブラリやテンプレート・ライブラリを提供する

タスク並列、データ並列の両方をサポート

利用可能ホストWSクラスター

並列専用機 (SGI Power Challenge, SGI/Cray Origin 2000) 分散メモリ・コンピュータ (IBM SP2など)

HPC++とJava

NexusRMI (Java RMIの一種 )GUI開発におけるJavaの有用性に着目

NexusRMIを用いてJavaとHPC++のコミュニケーションを実現

NexusJavaNexusに基づく他言語とJavaプログラムが通信を行うためのJavaパッケージ

Nexusマルチスレッド通信機能を提供するライブラリ

HPJava

シラキュース大学

SIMD、特に分散メモリコンピュータの並列

プログラミング環境

Procsクラスのサブクラスが、多次元仮想

プロセッサを物理プロセッサにマッピング

Procs2 p = new Proces2(2,3)