アプリケーションとアーキテクチャ
小柳義夫
工学院大学情報学部

2008/8/27

1

アーキテクチャと応用アプリの歴史総括• 何を狙ってそのアーキができて、アプリはどの様に対応してきたか。
• 実装技術、その時の課題、ブレークスルー、応用アプリの特性、高速化技術など。
•小柳氏の過去の講演資料の焼き直しではなく、新たに資料内容を整理していただくことを期待する。

2008/8/27

2

何を言いたかったのか• 日本の次世代スーパーコンピュータ計画「汎用」スーパーである、と強調された。曰く「NWTやcp-pacsや地球シミュレータは専用スーパーであった」• 「『汎用』では設計が出来ない。」 I先生や私が強調。
• 「普通の計算機が『汎用』で、特定目的の計算機は例外」という考え方は非歴史的。
• 「汎用」コンピュータはアンチテーゼとして登場• 仮説「アプリを意識した計算機の方が長生きする。」
を歴史的に証明したかった。
• それは成功したか？？？？
2008/8/27

3

概要
••••
•••••
•
2008/8/27

歯車式計算器におけるアーキとアプリ
計算機第１世代（真空管）
計算機第2世代（トランジスタ）＝HPC第(-3)世代(STRETCH)
計算機第3世代（メインフレーム）＝HPC第(-2)世代(CDC6600, IBM2938)
計算機3．5世代＝HPC第(-1)世代(ASC, Star-100,ILLIAC IV, BSP)
HPC神代時代(Cray-1, 75APU, IAP, DAP, CosmicCube, MPP)
HPC第1世代(FPS, Cyber205, XMP, S810, V200, SX2, PAX, iPSC/1, NCUBE/1, CM-1, T-series)
専用シミュレータ（Ising, QCD, MD）
性能とベンチマーク
コンピュータの設計戦略
4

「汎用」コンピュータの神話• 歴史的に、コンピュータは目的（アプリ）を想定して設計され、製造されてきた。
• アンチテーゼとしての「汎用」コンピュータの概念– チューリング・マシン（計算可能性）– フォン・ノイマン・アーキテクチャ（プログラム内蔵）– IBM System 360 --- 「メインフレーム」の登場– Attack of killer micros• まず、歴史的な「計算器」から
2008/8/27

5歯車式計算器• 最初の計算機械：ウィルヘルム・シッカート(1592－1635)チュービンゲン大学教授（現存せず）• 1642年、パスカル「パスカリーヌ」（加減算）– アプリ：税金計算• 167４年、ライプニッツ（桁ずらしにより乗除算も）– アプリ：天文計算• 1902年、矢頭良一が発明し製作した「自答算盤」– 販売先：陸軍省、内務省、農事試験場• 1923年、大本寅治郎「虎印計算器」、後のタイガー計算器
2008/8/27

6

ライプニッツ(1646年-1716年)• 微分や積分の記号を発明• 形式言語に当たるものを初めて考案• 2進法を研究• どんな推論も代数計算のように単純で機械的な作業に置き換えることができる（人工知能？）• チューリングの先駆？
2008/8/27

7

チャールズ・バベッジ（Charles Babbage ）• 1792～1871• 1822年に階差機関（difference engine）構想– 完成せず。1991年、バベッジの本来の設計に基づいて階差機関が組み立てられ、完全に機能。
– アプリ：天文学、暦• 1830年代、さらに汎用的な解析機関を構想。いかなる数学の関数も計算できる機能を持つ。
– パンチカード（Jacquard Loomで使用）で制御– 世界で初めての「プログラム可能」な計算機– これも実現せず。
2008/8/27

8パンチカードシステム（Punch Card System ）• ハーマン・ホレリスが発明。1890年の米国国勢調査のデータ処理で初めて使用された。
• 余談：Fortranで3HABCのＨは彼に由来。
• 80桁のパンチカード（私も使った）• 1896年、ホレリスはTabulating Machine社を設立（IBM社の源流の一つ）

2008/8/27

9コンピュータの前夜• 1936年、アラン・チューリングが万能計算機械（チューリングマシン）の論文を発表。計算可能性、unsolvable problem• 1938年、ドイツのコンラート・ツーゼが、機械式の計算機V1（後にZ1と改名）を作成。アプリは暗号か？
• 1939年、ツーゼが演算部がリレー、記憶部が機械式の計算機Z2を作成。
• 1940年、ツーゼが全リレー式のZ3を作成。Z3はプログラム可能な最初の計算機である。その後Z4も作成。
• 1942年、ジョン・アタナソフとクリフォード・ベリーが電子素子を使って演算処理をする世界初の機械 ABCを作成。
アプリは連立1次方程式。実際には稼働せず。
• 1944年、Harvard Mark I出荷（電気機械式計算器）
アプリは？
2008/8/27

10計算機第１世代（真空管）• 1946年：最初の真空管式コンピュータENIACが完成– プログラムは配線による。後にプログラム内蔵へ。
– 10進法の回路。
– アプリ：弾道計算が初期の目的。その後いろいろ。

• まもなく商用化：UNIVAC-1（1951年）、IBM701（1953年）

2008/8/27

11

計算機第２世代（トランジスタ）• 1955年頃からトランジスタが利用される• NEAC2201(1958)、 IBM7090(1958)、 CDC1604 (1958)、
UNIVAC1100(1960)、 TOSBAC2100(1959)、HITAC301(1959)、OKITAC5090(1960)、FACOM222(1961)など• 証券会社、商事会社、保険会社などに納入• 科学技術計算用：浮動小数演算が主。
事務計算用：十進演算が主。
両者が区別されていた。
2008/8/27

12ＨＰＣ（-3）世代• 1956：IBM starts 7030 project (known asSTRETCH) 100 times faster than IBM 704
using transistors (2進法)– Atomic Energy Commission at Los Alamos.
– 1961: first STRETCH computer to LANL (only 7built )– アプリ：三次元の流体力学計算など– much of the technology re-surfaces in the later
IBM 7090 and 7094.
2008/8/27

13

2008/8/27

IBM STRETCH (1960)
http://www03.ibm.com/ibm/history/history/images/ibm_stretch.jpg

14

第３世代（メインフレーム）• 1964年：IBMがICを使った360シリーズを発表• 科学技術用・事務用を問わず360度の全方位に向けたコンピュータを標榜• 汎用コンピュータの歴史が始まる。
• ファミリー概念– 同じアーキテクチャをもった小型機から大型機まで用意– 新機種開発にあたっても過去の機種との互換性を重視
2008/8/27

15

第３世代
• 第３世代メインフレームの代表例• UNIVAC1108(1965) 、GE635/645(1965)、
FACOM230(1965)、HITAC 8400(1966)、NEAC2200(1964)、CDC6400(1966)、B8500(1967)、NCRのCentury100(1968)、
TOSBAC5600(1971)• 汎用大型計算機の時代

2008/8/27

16ＨＰＣ (-２)世代• 1964：Atomic Energy Commission urges
manufacturers to look at "radical” machine
structures. This leads to CDC Star-100, TI
ASC, and ILLIAC-IV.
• 1964: Control Data Corporation produces
CDC 6600（科学技術用計算機）• 1964: Air Force signs ILLIAC-IV contract
with University of Illinois. (Burroughs andTI)
2008/8/27

17

ＨＰＣ (-２)世代• ベクトル計算機の登場– 演算パイプラインによってベクトル演算を高速に実行– 1965年にIBM社のSenzigらによって最初に提案。
– パイプライン方式と並列方式を比較• 石油探査のためIBM 2938 Array Processor(1968)– IBM360のI/Oチャンネルに接続する付加プロセッサとして開発
2008/8/27

18

Vector registers

2008/8/27

出典：IBM Systems Journal 8, #2, pp. 118-135 (1969)19

2008/8/27

20

2008/8/27

21

1.59 MFlops

2008/8/27

22

メインフレーム第3.5世代• IBMは1970年にLSIを使ったIBM370シリーズを発表し、各社もこれに追随• 日本では、通産省がIBM対抗機の開発を促進するため行政指導を行って企業連合– 富士通・日立はMシリーズ（IBM互換）– 三菱・沖はCOSMOシリーズ(IBM非互換）– 日本電気・東芝はACOSシリーズ(IBM非互換）• いずれも1974年に発表した。
2008/8/27

23

HPC（-１）世代• ベクトル（パイプライン）計算機– ASC (1972, Texas Instruments社）• 30 MFlops、pipeline 1本、7機製作• 高速性。拡張性のある設計。アプリは？
• Cray-1の登場により一夜のうちに販売停止– Star-100(1973, CDC社）STring ARray Computer• CDC7600の流れ。100 Mflopsを目標。
• Memory-to-memory architecture。立ち上がり遅い。
• スカラー速度を犠牲にした。結局性能は出ず。
• 50 MFlops、4機製作。2台はLLNLへ。アプリは？
2008/8/27

24

HPC（-１）世代
並列計算機– ILLIAC IV (1973, Burroughs社、1976完全稼働）• 並列度64、50 MFlops、1機製作• Illinois大学からNASAへ。アプリ：流体力学など• 並列処理の人材を世界中に（日本にも）送り出した。

– BSP (1974設計開始、1980開発中止、Burroughs社）• 並列とパイプライン技術を併用• 並列度16、理論性能50 MFLops• 17個のmemory unit+ crossbar switch• アプリは？
2008/8/27

25

ILLIAC IV

2008/8/27

26

http://ed-thelen.org/comp-hist/vs-illiac-iv.html

HPC神代時代• Seymour Cray
– CDC (Control Data Corporation) 社において、CDC6600 (1964, 1 MFlops) およびCDC7600(1969、5 MFLops) を設計– 1972年、CDC8600 計画が社内で拒否される– 同社を退社し、CRI社 (Cray Research Inc.) を設立• CRI社は1976年160 MFlopsの性能をもつCray-1を出荷し、ロスアラモス研究所に納入
2008/8/27

27

Cray-1

2008/8/27

http://www.tfh-wildau.de/l202/team2/cray1.jpg28

HPC神代時代（Cray-1)• 実装– 4ゲートのICを高密度に実装するという画期的技術
でこのような性能を実現したことは驚異– メモリを高速化。クロック12.5ns。スカラーも速かった。

• 自動ベクトル化コンパイラ– 画期的であった。でも、– 性能は十分でなく、使いこなすには技能が必要であった• アプリは？ 科学技術計算全般
2008/8/27

29

解
HPC神代時代（富士通）
誤で• FACOM 230-75 APU (1977）

これま– 22 MFlops、2機製作、航空技術研究所に納入– ベクトルレジスタを持つベクトル計算機– AP-FORTRANという拡張言語方式– 間接参照や条件文のベクトル演算をサポートしていた点は注目される（CrayではXMP後半から）– アプリ：流体計算など？

• 商業的には成功とは言えないが、日本の最初のベクトル計算機であった。
2008/8/2730

HPC神代時代（日立）• IAP (Integrated Array Processor)というメインフレームに対する付加プロセッサ– アプリ：汎用• HITAC M-180 IAP (1978),• M-200H IAP (1979, 48MFlops)（筆者が利用）• M-280H IAP (1982, 67 MFlops)– 仮想空間上のデータに対してベクトル演算– 性能向上はほどほど（数倍程度）– 高度な自動ベクトル化コンパイラを装備– TSSでも使える
2008/8/2731

HPC神代時代（日立）• 間接参照、総和、内積、1次漸化式の自動並列化– Cray-1がまだ完全にはサポートしていなかった機能を有していたことが特徴である。

• M-280H IAP は、世界で初めて条件付きdoloopを自動ベクトル化できた。
• キャッシュに頼ったベクトル演算には限界がありメインフレーム自体の高速化とともに姿を消した。
2008/8/2732

HPC神代時代（NEC他）• 日本電気– ACOS-1000 IAP (1982, 28 Mflops)• 三菱電機– MELCOM COSMO IAP– 詳細は不明

2008/8/27

33

HPC神話時代の日本の並列計算機• 1979：GMMCS(群馬大)、PACS-9(京大)• 1980：PPA（北大）、KDSS-1(豊田工大）など1983年までに30近く（高橋義造氏による）。
いずれも実験機。商品はなし。
• マイクロプロセッサの登場により可能– MC6800, Z80, LSI11, i8086など– 専用LSIを用いたものはHAL, QA2など少数• アプリ：シミュレーション、画像、信号処理など
2008/8/27

34

HPC神代時代の外国の並列計算機• 1980：DAP（専用）, CM*(LSI-11), LAU(DF,i8085+Am2901)• 1981：Manchester DFM（専用）• 1983：Cosmic Cube（i8086+i8087), MPP（専用）
括弧内はCPUチップ。

2008/8/27

35

ICL DAP• 1972: paper by Dr Stewart F Reddaway• 1974: prototype 製造開始
• 1979: Queen Mary Collegeに納入– 64x64 1 bit PE (SIMD)– アプリ：？？

2008/8/27

36

Goodyear MPP• 198?: Goodyear's array processor, a4x256 1-bit processing element (PE)computer.
• 1983: Goodyear’s MPP, a 128x128 2-D
array of 1-bit PEs. 納入：NASA Goddard
Space Flight Center– アプリ：初期は衛星画像解析、その後、開口合成
レーダー、海流、宇宙線、NN,レイトレなど。
2008/8/27

37

神代のアプリとアーキ• ベクトル計算機は汎用科学技術用、並列計算機は専用的計算機という位置づけ。
• マイクロプロセッサの登場により、アプリに特化したコンピュータが可能になった。
• 超並列機は、欧米では商品開発、日本では実験機のみ。
• アプリが明確なものは寿命が長い(?)– Cosmic Cube→ipsc→Paragon→ASCI Red– pacs, pax→cp-pacs, pacs-cs– Grape series
2008/8/27

38

1st Generation (1H of 1980’s)
1981
1981
1982
1982

FPS-164 (64 bits)
CDC Cyber 205
400MF
Cray XMP-2 Steve Chen 630MF
Cosmic Cube in Caltech, Alliant FX/8 delivered,
HEP installed
1983 HITAC S-810/20
630MF
1983 FACOM VP-200
570MF
1983 Encore, Sequent and TMC founded,
ETA span off from CDC

2008/8/27

39

1st Generation (1H of 1980’s)(continued)
1984
1984
1984
1985
1985
1985
1985
1985
1985
1986
2008/8/27

Multiflow founded
Cray XMP-4 1260MF
PAX-64J completed (Tsukuba)
NEC SX-2 1300MF
FPS-264
Convex C1
Cray-2
1952MFIntel iPSC/1, T414, NCUBE/1, Stellar, Ardent…
FACOM VP-400
1140MF
CM-1 shipped, FPS T-series (max 1TF!!)
40

専用シミュレータ（この頃から）• この頃からASICが利用可能になった。
• Ising模型シミュレータ：米UCSB(1982)、オランダ
Delft工科大学(1983)、東大(1988)など• 格子ゲージ模型シミュレータ：イタリアのAPE(1986)、筑波大学のqcdpax(1989)とcp-pacs(1996)、アメリカのGF11(1991), ACP-MAPS, QCDSP(1995)、QCDOC(2002)など• 古典粒子系シミュレータ：Delft工科大学のDMDP(1988)、東大のGRAPE(1989～)、理研のMD-GRAPE (1999)、富士ゼロックスのMD Engine(1996)など• モンテカルロ専用機：Monte-4(1993原研、vector型）
2008/8/27

41

専用から汎用へ• 汎用指向の格子ゲージシミュレータ– cp-pacs→SR2201/SR8000– QCDSP, QCDOC→BG/L– APE, GF11（いずれもSIMD)は汎用化せず• その他の例（果たして専用だったのか？）– NWT(数値風洞）→VPP500/300/700– 地球シミュレータ→SX-6/7/8

2008/8/27

42

1990年代のHPC• IBMとCrayの超並列参入– 1993 Cray T3D (Alpha chip)– 1993 IBM SP-1 (Power chip)• ベンチャー超並列企業の倒産・吸収– 1995– 1996

Convex, KSR, nCUBE, Pyramid
MasPar, TMC• アプリケーションとアーキテクチャの関係？？
– 倒産の原因は？アプリが不明確だったから？？

2008/8/27

43

性能とは• コンピュータの性能評価：ベンチマーク
アーキテクチャベンチマークアプリケーション2008/8/27

44

ベンチマーク• Mix, MIPSからLFK, Linpack, Euroben, SPEC,HPCC, ….
• アプリケーションから見れば：自分のアプリケーションの計算速度を推定するためのデータ• アーキテクチャから見れば：アーキテクチャをチューニングする時の目標• ベンチマークの選択：コンピュータの利用目的の選択。
2008/8/27

45

コンピュータの設計戦略• 設計：有限な資源の中での選択「あれもほしい」「これもほしい」ではだめ• 「汎用」の陥穽（おとしあな）：汎用といっても、暗黙のアプリのクラスを前提にしている。無前提の「汎用」はない。
• 多くの成功したHPCは、特定のアプリを前提に設計されている。結果的に多くのアプリでもよい性能を出すことが多い。
2008/8/27

46