• 検索結果がありません。

JAIST Repository: 北陸先端科学技術大学院大学情報科学センタ利用の手引

N/A
N/A
Protected

Academic year: 2021

シェア "JAIST Repository: 北陸先端科学技術大学院大学情報科学センタ利用の手引"

Copied!
98
0
0

読み込み中.... (全文を見る)

全文

(1)

Japan Advanced Institute of Science and Technology

JAIST Repository

https://dspace.jaist.ac.jp/

Title

北陸先端科学技術大学院大学情報科学センタ利用の手

Author(s)

志田, 和人; 河瀬, 剛; 宮崎, 純; 井口, 寧

Citation

Technical memorandum (School of Information

Science, Japan Advanced Institute of Science and

Technology), IS-TM-94-0002M: 1-91

Issue Date

1994-11-11

Type

Others

Text version

publisher

URL

http://hdl.handle.net/10119/8442

Rights

Description

テクニカルメモランダム(北陸先端科学技術大学院大

(2)

北陸先端科学技術 大学院大学

情報科学 セ ンタ 利用の手引

志 田 和 人,河 瀬 剛,宮 崎 純,井 口 寧 1994年11月11日 IS-TR-94-0002M 北 陸 先 端 科 学 技 術 大 学 院 大 学 情 報 科 学 研 究 科 〒923-12石 川 県 能 美 郡 辰 口 町 旭 台15 [email protected],[email protected],[email protected],[email protected] OKazuhitoShida,TakeshiKawase,JunMiyazaki,YasushiInoguchi,1994 1SSNO918-7561 o.●

(3)

巻頭言

本 書 は北 陸 先 端 科 学 技 術 大 学 院 大 学(JAIST)情

報 科 学 セ ン タ ー の 保 有 す

る超 並 列 マ シ ン等 の 利 用 方 法 を書 い た ユ ー ザ ー ・マ ニ ュ ア ル で あ る.

JAISTは1992年

の 発 足 以 来,キ

ャ ンパ ス ・ネ ッ トワ ー クFr・ntnet上

超 並 列 マ シ ンや ミニ ス ー パ コ ン ピ ュ ー タ を研 究 ・教 育 の た め の 基 本的 な イ

ン フ ラ ス トラ クチ ャ と して 整 備 して き た.当

初 は そ れ ぞ れ の マ シ ン の 利

用 者 が 整 備 を進 め る こ と を原 則 と し て きた が,利 用 者 の 関 心 が 高 ま り,か

つ 利 用 者 数 が 漸 増 す る よ うに な っ た.そ

こ でJAIST情

報 環 境 を 実 質 的 に

支 え て い る 「Fron七ier利 用 者 の 会 」 の 中 の 若 手 有 志 が 立 ち上 が り,本 書 を

CM-5,nCUBE-2お

よびConvexC-3440の

利 用 の 手 引 と して ま とめ た わ け

で あ る.本 書 が 超 並 列 マ シ ン等 の 利 用 の 一 助 と な る こ と を期 待 す る と と も

に,マ ニ ュ ア ル と して の 改 善 につ い て利 用 者 か ら執 筆 者 グ ル ー プ へ の フ ィー

ドバ ッ ク をお 願 い した い.

これ か らの 時 代 の 激 変 す る 情 報 環 境 の 推 移 を考 え る と,最 先 端 の マ シ ン

の サ ポ ー トは そ れ を実 際 苦 労 し て使 い こ な して い る利 用 者 グ ル ー プ が,こ

の よ う な利 用 者 の 目か らみ て 有 用 な情 報 を提 供 す る こ とが 必 要 で あ る.情

報 科 学 セ ン タ ー に あ る 他 の 超 並 列 マ シ ン等 に つ い て も,こ の よ う な情 報 共

有 の 動 きが 続 くこ と を期 待 す る.

1994年9月

情報科学セ ンター長

國藤 進

(4)

も く じ

1CM-5 1.1コ ネ ク シ ョ ン マ シ ンCM5の 概 要... 1.1.1特 徴... 1.1.2ハ ー ド ウ エ ア 構 成.._.... 1.1.3基 本 的 な 利 用 法...,. 1.1.4ソ フ ト ウ ェ ア... 1.2CM-Fortran:簡 単 な プ ロ グ ラ ム 例... 1.2.1ソ ー ス の 書 き 方.._... 1.2.2コ ン パ イ ル の し か た... 1.2.3コ ン パ イ ル... 1.2.4実 行 の し か た... 1.2.5並 列 化 す る ス テ ー ト メ ン ト... 1.2.6コ ン パ イ ラ オ プ シ ョ ン... 1.2.7計 算 機 資 源... 1.3デ バ ッ グ... 1.3.1デ バ ッ グ の し か た... 1.3.2グ ラ フ イ カ ル デ バ ッ ガPRISM. 1.4 1.5 1.6 1.7 1.8 1.9 行 列 の 乗 算... パ フ ォ ー マ ン ス.. ... 1.5.1仮 想 プ ロ セ ッ サ の 配 置 1.5.2演 算 子 の 数... 1.5.3不 規 則 演 算... 失 敗 例 の 研 究... 1.6.1乱 数 発 生... 1.6.2配 列 の 大 き さ... 1.6.3配 列 の 最 適 化... 移 植...,... CMSSLル ー チ ン の テ ス ト., 1.8.1行 列 積 算... 1.8.2行 列 対 角 化... 1.8.3高 速 フ ー リ エ 変 換.,. CMMD. 1.g.1基 本 的 な 関 数... 1.9.2簡 単 な プ ロ グ ラ ム... 1.9.3コ ン パ イ ル... 1 2 2 2 3 4 8 8 n u n n 15 16 18 B 19 班 % 25 26 26 29 29 30 34 37 39 39 39 40 狙 41 9 " .-'耐"…噸 噛 剛 噛 醐 ■ 繭 圏圏 ■ ■劇 ■■闘■■■圏■■■■ ■ ■■

(5)

1.9.4実 行 例...。... 1.9.5実 行 で き な い 時... 1.9.6最 後 に..._... 1.10そ の 他 の 機 能... 1.10.1SDA. 1.10.2チ ェ ッ ク ポ イ ン ト 機i能... 1.10.3CMX11. 1.10.4ア セ ン ブ ラ... 1.11CM5で 何 を す る の か... 2NCUBE/2 2.1nCUBE/2の 構 成... 2.1.1ArrayNodes 2.1.21SONodes.. 2.1.3プ ロ グ ラ ミ ン グ 環 境... 2.2nCUBE/2を 利 用 す る た め の 準 備.... 2.2.1パ ス の 追 加... 2.2.2有 用 な コ マ ン ド....,... 2.3プ ロ グ ラ ム の ス タ イ ル..._... 2.3.11dentify 2.3.2Messagepassing 2.3.3Time... 2.3.4Barriersynchronization 2.3.5Fileaccess.. 2.4プ ロ グ ラ ム の コ ン パ イ ル と 実 行... 2.4.1コ ン パ イ ラ... 2.4.2make... 2.4.3実 行..._... 2.5プ ロ グ ラ ム の デ バ ッ グ... 2.5.1ndbデ バ ッ ガ を 用 い た デ バ ッ グ. 2.5.2デ バ ッ グ の テ ク ニ ッ ク... 2.6注 意 事 項... 3convex 3.1概 要..._._... 3.1.1ハ ー ド ウ ェ ア 構 成.,_... 3.1.2フ ァ イ ル シ ス テ ム.,... 3.1.3パ ス... 3.1.4サ ポ ー ト さ れ て い る ソ フ ト ウ ェ ア 3.2簡 易 使 用 法 と 並 列 化.._... 3.2.1簡 易 使 用 法... 3.2.2ベ ク ト ル 化 と 並 列 化... 3.3FORTRAN 3.3.1特 徴..., 5 5 6 7 7 7 7 7 8 4 4 4 4 4 4 4 4 4 0 0 0 0 2 3 3 4 5 5 5 8 8 9 1 1 2 2 4 4 5 6 7 8 8 8 9 9 0 0 1 7 7 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 ・一 一繭 顧幽藺 圏醐 ■■一 ■■■ 嗣 ■ 閾 ■■ ■ 圏■■■■■ ■■■

(6)

3.4 3.5 3.3.2他 の コ ン パ イ ラ と の 関 連... 3.3.3FORTRANプ ロ グ ラ ム の コ ン パ イ ラ 起 動 方 法... 3.3.4FORTRANコ ン パ イ ラ の 主 な オ プ シ ョ ン... バ ッ チ キ ュ ー の 使 用 法....,... 3.4.1概 要... 3.4.2バ ッ チ ジ ョ ブ ク ラ ス...,... 3.4.3バ ッ チ ジ ョ ブ の 投 入... 3.4.4バ ッ チ キ ュ ー ・ ジ ョ ブ の 操 作... チ ェ ッ ク ポ イ ン ト ・ リ ス タ ー ト... 3.5.1概 要... 3.5.2制 限 事 項... 3.5.3コ マ ン ド に よ る チ ェ ッ ク ポ イ ン ト... 3.5.4バ ッ チ ジ ョ ブ の チ ェ ッ ク ポ イ ン ト... ●o ・o 畢 o ● ● .78 .78 .79 .82 82 .82 .82 .83 85 85 .86 86 .88 一 一一 醐 一剛幽醐 ■■■蘭■■■■■圏闘■ ■■■■■■■圏

(7)

第1章

CM-5

志 田 和 人:shida◎jaist.ac.jp 河 瀬 剛:kawase◎jaist.ac.jp 本 章 で は,コ ネ ク シ ョ ンマ シ ンCM5に つ い て解 説 す る. 最 初 は 箇 条 書 き風 の 簡 単 な も の を 意 図 し て 執 筆 し て い た の だ が,あ る 筋 か ら の 強 い 要 望 に よ っ て 以 前 に 書 い たCM5利 用 法 の レ ポ ー ト を無 理 に と り入 れ た結 果,内 容 は か な り豊 富 に な っ た が 構 成 が 乱 雑 で 言 葉 使 い の ぞ ん ざ い さ が 目 立 つ もの に な っ て し ま っ た. 加 え て,以 前 の レ ポ ー トは 約 一 年 前 の もの で あ る た め,こ の 一 年 に 新 し く分 か っ た 内 容 の 記 述 が 不 足 し て い る し,著 者 の 思 い ち が い やOSの バ ー ジ ョ ン ア ップ に よ っ て 生 じ た くい ち が い も,可 能 な 限 りで修 整 す る よ う努 力 した が,不 安 の 残 る と こ ろ で あ る. この よ うな 事 情 で 分 りに くい 文 章 に な っ て い る こ と を こ の 場 で お わ び し て お くが,内 容 は現 実 にCM5を 利 用 し よ う とす る 人 に と っ て は読 ん で 損 は し な い 程 度 に は ま と ま っ て い る と思 う. 必 要 な 部 分 だ け 読 め ば よい よ う に,以 下 に 各 セ ク シ ョ ン を要 約 す る. セ ク シ ョ ン1で はCM5の ハ ー ド ウ ェ ア とそ れ で で き る こ との ア ウ ト ラ イ ン を説 明 す る. セ ク シ ョ ン2か ら セ ク シ ョ ン8でCM-Fortranを 説 明 す る.CM-Fortranは コ ネ ク シ ョ ン マ シ ン 上 の 標 準 言 語 の 一 つ と考 え て よ い. セ ク シ ョ ン2が 言 語 の概 要,セ ク シ ョ ン3が デ バ ッギ ン グ,以 降 の 章 はCM-Fortranを 用 い て行 な った い く つ か の 実 験 に つ い て ま とめ て あ る.こ れ ら はCM-Fortran入 門 編 とい う に は 極 め て 不 充 分 だ が,あ ち こ ち に 断 片 的 に ソ ー ス コー ドの 例 が 掲 載 して あ る の で そ う い う風 に使 用 す る こ と もで きな く も な い. セ ク シ ョ ン9は 佐 藤 研 究 室 の 河 瀬 君 が 書 い て くだ さ っ た もの で,CMMD,つ ま りMIMDモ ー ド で のCM5の 利 用 法 の 基 本 を 実 例 付 きで 説 明 す る. セ ク シ ョ ン10はCM5に 装 備 され て い る もの の,今 回 は 解 説 で きな か った 機 能 の 一 覧 セ ク シ ョン11はCM5 利 用 の 現 状 の ま とめ と,正 統 的 で は な い が 読 ん で み る とお も しろ い と思 わ れ る,コ ネ ク シ ョ ンマ シ ン 関係 の い くつ か の 文 献 の 紹 介 で あ る. 一一一一一 一螺繭劇■闇關■蘭■■ ■■闘願■ ■■■■闘■■■

(8)

1.1コ ネ ク シ ョ ン マ シ ンCM5の 概 要 1.1.1特 徴 本 学 情 報 科 学 セ ン タ ー の 超 並 列 計 算 機Connecti・nMachineCM5は,64プ ロ セ ッサ で 構 成 さ れ,最 大 で 毎 秒80億 回 の 浮 動 小 数 点 演 算 が 可 能 で あ る.現 状 で はFrontnet上 で 最 高 速 の ハ ー ド ウ ェ ア とな っ て い る. 使 い こ な す の が か な り困 難 な 一 面 もあ る が,適 当 な 問 題 に お い て プ ロ グ ラ マ が 注 意 深 く使 用 す れ ば非 常 に 高 い 性 能 が 得 られ る.主 な特 徴 は 以 下 の 通 りで あ る. 1.最 大 で8192CPUま で の拡 張 性 2.分 散 記 憶,メ ッ セ ー ジ パ ッ シ ング ア ー キ テ ク チ ャ 3.単 位 プ ロセ ッサ に ベ ク トル 演 算 機 構 を付 加 した こ とに よ る高 速 性 4.合 計2Gバ イ トの 記1意域,23Gバ イ トの デ ィス ク ア レ イ(SDA) 5.多 様 な ソ フ トウ ェ ア 環 境 ConnectionMachineCM5の 利 用 環 境 は こ れ らの 複 雑 な 混 合 物 で あ る.以 下,ハ ー ド ウ ェ ア,ソ フ トウ ェ ア そ れ ぞ れ の 構 成 要 素 につ い て 説 明 す る. 1.1.2ハ ー ドウ ェ ァ 構 成 CM5の ハ ー ド ウ ェ ア 構 成 を イ メー ジ す る た め に,64プ ロ セ ッサ の 結 合 ネ ッ ト ワ ー ク を図 示 す る と以 下 の よ う に な る. Frontnet DataNetwork  ロ が が cm5-cpl  ロ ねゆに cm5-cp2 0 ProcessingNodes 63Di skArray 図1.1:64プ ロ セ ッ サ のCM5の 結 合 ネ ッ ト ワ ー ク 一一 一一 一一 ■劇 一 ■■騨 ■■■■■闘 嗣 ■國■ ■ ■■ ■■ ■■■圏

(9)

単 一 処 理 要 素(ノ ー ドプ ロ セ ッサ)は 以 下 の もの に よ っ て 構 成 され る.こ れ は 一 つ の 完 結 した コ ン ピ ュ ー タで あ り,オ ブ ジ ェ ク ト コ ー ドは そ れ ぞ れ の ロ ー カ ル メモ リ に ロ ー ド さ れ,実 行 さ れ る. ・SparcIU,FPU(33MHz,22Mips,4.2Mflops) ・Memory(32Mbyte) ・VectorProcessingUnit(16MHz,32Mflops)X4 ●NetworkInterface(20Mbyte/sec)×2 パ ケ ッ ト交 換 に よ る メ ッセ ー ジ パ ッシ ン グ 通 信 網 は,木 結 合 の 一 種 で あ るFatTreeと よ ば れ る構 造 を採 用 して い る.ほ と ん ど の 場 合,こ の 構 造 は ユ ー ザ ー に 隠 蔽 さ れ て お り,各 プ ロ セ ッサ は そ のIDだ け で 指 定 で きる. イ ン ター フ ェ ー ス ユ ニ ッ トは 上 記 の 数 値 分 の パ ケ ッ ト発 信 能 力 を持 っ て い る の だ が,ノ ー ド プ ロ セ ッサ 自 体 が 低 速 で あ る た め,ノ ー ド対 ノ ー ド の 通 信 能 力 は 最 良 で も10MByte/sec程 度 に 制 限 され る. フ ロ ン トエ ン ド,コ ン ソ ー ル と して5台 のSparcStation2が 使 わ れ て い る.こ れ らは そ れ ぞ れ 割 り当 て ら れ た 用 途 が あ る.問 題 を避 け る た め ユ ー ザ ー はcm5-cp1,cm5-cp2の み を 使 用 す る こ と. 以 上 か ら,64CPUの 総 計 で は,

演算速度

主記憶容量

合成転送能力

対SDA転 送能力 1,408Mips,268.8M且ops(ベ ク ト ル ユ ニ ッ ト 未 使 用 時) 8,192Mflops(ベ ク ト ル ユ ニ ッ ト使 用 時) 2Gバ イ ト

5120Mbyte/sec

33Mbyte/sec

に な る は ず な の だ が,よ く知 ら れ て い る よ っ に全 体 が 部 分 の 総 和 以 下 に な っ て し ま うの が 超 並 列 計 算 機 の重 大 な 技 術 課 題 で あ る.コ ンパ イ ラ の オ プ テ ィマ イズ 能 力 は 限 られ た もの で あ り,中 に は ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス の よ う に,(お そ ら く意 図 的 に)他 の 部 品 との か ね あ い で 絶 対 に使 い 切 ら れ な い よ う な 無 駄 な 能 力 を装 備 して い る 部 分 もあ る.し か し利 用 者 は こ れ らの 問 題 を よ く研 究 す る こ と に よ っ て 膨 大 な 処 理 を必 要 とす る 課 題 を実 際 に解 く こ とが で き,ま た 並 列 計 算 の 実 際 に 対 す る 知 見 を も得 られ る.適 切 な準 備, 問 題 の 設 定 と プ ロ グ ラ ミ ング の も とで は,1000Mips/1000M且ops級 の 性 能 が 実 用 可 能 で あ る と考 え られ る ・ 1.1.3基 本 的 な 利 用 法 ● プ ロ グ ラ ム 実 行 はcm5.cp2 ● そ れ 以 外(コ ン パ イ ル な ど)はcm5-cp1 の フ ロ ン トエ ン ドか ら使 用 す る. 他 に もcmpsコ マ ン ド に よ る状 況 の チ ェッ ク な ど,並 列 プ ロ セ ッサ 群 に か か わ る こ とはcm5-cp2か ら行 な う.そ れ 以 外 の 操 作 を全 てcm5-cp1で 行 な う の は,cm5-cp2の 負 担 を減 少 させ,並 列 プ ロセ ッサ 群 を高 効 率 で 動 作 させ る た め で あ る.と い うの もcm5-cp2で の 負 荷 の 上 昇 は,ts-daem・nへ のCPU時 間 の 配 分 を減 少 させ て し ま い,こ れ に 並 列 部 も影 響 を受 け る た め,ス ー パ ー コ ン ピュ ー タ と して のCM5の 性 能 を い ち じる し く落 と して し ま うの で あ る. CM5の 並 列 部 は,存 在 す る プ ロ セ ッサ を全 部 使 用 す る だ け で な く,32個 以 上 の2のn乗 個 の 複 数 の 「パ ー テ ィ シ ョ ン」 に 分 割 す る こ とが で き る.そ し て各 「パ ー テ ィシ ョ ン」 が 動 作 す る た め に,対 応 す る フ ロ ン ト エ ン ド従 ってcp1 ,cp2に32個 ず つ わ りあ て て両 方 で 使 用 す る こ と も可 能 だ が,そ う し て い な い だ け で あ る. こ の 構 成 の 切 りか え 自体 は オ ペ レー タ ー コ ン ソ ー ル か らrootが ソ フ ト的 に行 い,あ っ とい う間 に で き る の だ が,走 っ て い る ア プ リ ケ ー シ ョ ン を止 め ず に行 う こ と は で き な い.つ ま り,ア プ リ ケ ー シ ョ ン とパ ー テ ィ シ ョ ン の 関 係 は 固 定 的 で あ る.

(10)

こ れ ら の マ シ ン 上 で 専 用 コ ン パ イ ラ,リ ン カ な ど に よ って オ ブ ジ ェ ク トを作 る. つ ま り,ど の よ う な 通 常 の計 算 機用 の プ ロ グ ラ ム で も,そ の ま まで はCM5上 で 使 用 す る こ と は で きず,他 人 の 迷 惑 に な る だ け で あ る. 専 用 オ ブ ジ ェ ク トが で きた ら,あ と は 通 常 のUNIXと 同 様 に こ の オ ブ ジ ェ ク ト を起 動 で き る.例 え ば, YourWS%is*.fcm parallelsort.fcm並 列 フ ォ ー ト ラ ン の ソ ー ス コ ー ド YourWS%rlogincm5-cpi Password: cm5-cp1[1]%ccparallelsort.c。ccmmdソ ー ス の コ ン パ イ ル cm5-cp1[2]%cmmd-ldparallelsor七.o-compcc-oPSORT.oリ ン ク YourWS'/.rlogincm5-cp2 Password: cm5。cp2[1]%pSORT.o&並 列 化 さ れ た オ ブ ジ ェ ク ト の 実 行 [1]863 cm5-cp2[2]Zcmp8実 行 状 態 の チ ェ ッ ク 64PNSystem,28464Kmem.free,6996KVUmem.free,1procs USERP工DCMPIDTIMETEXTII、H you*86320:001304K488K cm5-cp2[3]ipslgrep863 863p4RO:01PSORT.o 工LS... 48K... COMMAND PSDRT.o cmpsコ マ ン ドは 並 列 部 で の 実 行 状 況 を 表 示 す る が,全 て の 並 列 化 さ れ た プ ロセ ス に は フ ロ ン トエ ン ド で 動 作 す る 通 常 のUNIXプ ロ セ ス が 一 つ 付 属 す る.上 の 例 で は そ のPIDが863で あ り,実 際 に そ の よ うな プ ロ セ ス が 存 在 す る こ とが 示 さ れ て い る.そ して,こ のUNIXプ ロセ ス に対 して 本 来 の プ ロセ ス コ ン トロ ー ル 機 能 が ほ ぼ そ の ま ま利 用 可 能 で あ り,こ れ に並 列 実 行 さ れ て い る プ ロ セ ス の 方 が した が う. cm5-cp2[1]ypSORT.o<sortdatalhead-10パ イ プ と リ ダ イ レ ク シ ョ ン [1]8203 cm5-cp2[2]%kill8203強 制 終 了 フ ロ ン トエ ン ドの デ ィ レ ク ト リ構 成 に つ い て は, ●/usr/cm5の 下 に 各 種 ソ フ ト ウ ェ ア の オブ ジ ェ ク トや デ モ ●/usr/include/cmの 下 にCM5関 連 の ヘ ッダ な ど と な っ て い る の で,欠 け て い て 実 行 で きな い と き は適 当 に パ ス に つ け くわ え る こ と. 1.1.4ソ フ トウ ェ ア 現 在CM5上 で 利 用 可 能 な ソ フ ト ウ ェ ア,ツ ー ル を まず 列 挙 して み る.そ れ か ら,こ れ らの 間 の 同 時 に使 用 不 可/可 能 の 関 係 を説 明 す る.さ ら に,個 々 の ソ フ ト ウ ェ ア に つ い て 説 明 を加 え る.

(11)

名称

CM-Fortran C* STARLISP Prism CMMD CMSSL CMX11 pndbx CMView CMFS CMNA CDPEAC

概要

限 定 的 な 自動 並 列 化 コ ンパ イ ラ言 語,拡 張Fortran90 限定 的 な 自動 並列 化 が で きる拡 張C言 語, Commonlispの 並 列 拡 張 並 列 グ ラ フ イカ ル デ バ ッガ,兼 簡 易 ビ ジ ュ ア ラ イ ゼ ー シ ョ ン メ ッセ ー ジ パ ッ シ ング を提 供 す る ラ イブ ラ リ 並列 数値 演算 ラ イブ ラ リ 低 レベ ル グ ラ フ ィッ ク出 力 ラ イブ ラ リ 並 列用 デ バ ッガ ハ イ パ ー テ キ ス ト風 オ ン ラ イ ン マ ニ ュ ア ル SDA用 並列 入 出力 ライブ ラ リ 低 レベ ル 通 信 ラ イブ ラ リ VectorUnit用 ア セ ン ブ ラ マ ク ロ こ の 也に,パ ブ リ ッ ク ド メ イ ン そ の 也でCM5で 使 用 で きる ツ ー ル な ど もあ る の で,非 常 に 多 様 な ソ フ ト ウ ェ ア環 境 と言 っ て も 良 い だ ろ う. た だ し,通 常 の マ シ ン用 のCやFortranを そ の ま ま並 列 化 で き る よ う な ッ ー ル は イ ン ス トー ル さ れ て い な い の で,CM5の 利 用 の た め に は必 ず な ん らか の 形 で 専 用 の プ ロ グ ラ ム を 書 くか 並 列 計 算 機 用 に 書 きか え る 必 要 が あ る.つ ま り,こ れ ら を 用 い てCM5上 で な ん らか の ア プ リ ケ ー シ ョ ン を行 な う場 合,現 状 で は 仕 事 の 手 順 は つ ぎの い つ れ か の よ う に な る だ ろ う. ●CM-Fortran,C*を 利 用 し, Prismの 支 援 の も と に, 並 列 化 手 法 は あ る 程 度 コ ン パ イ ラ ま か せ に, CM5を バ ー チ ャ ルSIMDマ シ ン と し て 利 用 す る コ ー ド を 作 成 す る. ●CMMDを 採 用 す る. CMMDは メ ッセ ー ジパ ッ シ ング す る だ け な の で,Cやf77と くみ 合 わ せ る. こ の コ ー ド は各 ノ ー ドに 分 散 さ れ る が,互 い に協 調 させ る の は プ ロ グ ラ マ の 仕 事 に な る.CM5を ハ ー ド本 来 のMIMD(SPMD)の 形 で 利 用 で き る よ うに な る. 次 に,こ れ ら複 雑 な 開 発 環 境 間 の 排 他 的 関 係 を説 明 す る.次 表 で 縦 に並 ん で い る もの は 単 一 の プ ロ グ ラ ム の 中 で 混 ぜ て使 用 で き る が,各 表 の 間 で 混 ぜ る こ と は で き な い. 基 本 的 方 式(α) リ ン カ デ バ ッガ ラ ン タ イ ム プ ロ セ ッサ 問 通 信 数 値 演 算 ラ イブ ラ リ デ ィス ク ア レ イ グ ラ フ イッ ク ベ ク トル ユ ニ ッ ト CM-Fortranお よ びC*(b) cmld prism,pndbx. CMRunTimeSystemを 使 用 す る 言 語 に 内 包,隠 蔽 CMSSL CMFSで 並 列 にread/write CMX11 コ ンパ イ ル 時 の 指 定 で 利 用 で き る.CDPE で 機 械 語 レ ベ ル で プ ロ グ ラ ム で き る.

(12)

基 本 的 方 式(α) リ ン カ デ バ ツガ ラ ン タ イ ム プ ロ セ ッサ 間 通 信 数 値 演 算 ラ イ ブ ラ リ デ ィス ク ア レ イ グ ラ フ ィッ ク ベ ク トル ユ ニ ッ ト ノ ー ド上 で個 別 実 行 さ れ る プ ロ グ ラ ム(c) cmmd-ld prismは 利 用 で き な い. CMRunTimeSystemを 使 用 し な い CMMDメ ッ セ ー ジ パ ッ シ ン グ(d) 対 応 す る 機 能 な し CMMDのUNIXI/0サ ポ ー ト(e) 対 応 す る 機 能 な し(ノ) CDPEACを 使 っ て 機 械 語1/ベ ル で プ ロ グ ラ ム す る 必 要 が あ る. (α)パ ラ ダ イ ム と言 うべ き か? (b)多 分STARLISPも こ こ に 入 れ て 良 い.CM-F・rtranとC*の 相 互 コ ー ル は 可 能 (c)現 状 でCとf77が 使 用 で きる.イ ン ス トー ル さ え す れ ばC++も 利 用 可 と され て い る. (のCMNAで 同 じ よ う な こ とが で き る はず だ が,困 難 な の で や め た 方 が 良 い. (e)こ れ はFrontnet上 の 全 デ ィス ク にNFSで ア ク セ ス で きる.た だ し並 列 入 出 力 は不 可 能. (f)普 通 のXlibを 無 理 に使 用 可 か?? 「混 ぜ て 」 と い う の は,他 言 語 で サ ブ ル ー チ ン を書 い て 組 み こ む よ う な 関 係 の こ と を指 し て い る,例 え ば C*で 作 った サ ブ ル ー チ ン をCM-Fortranか ら呼 べ るが,dとCMMDで 作 った サ ブ ル ー チ ン は無 理 で あ る. ま た,「 一 個 の ノ ー ド の 上 で 動 く」 モ ー ド(Nodal-mode)のCM-FortranとC*を 使 う こ と もで き る ・こ れ は 説 明 しに くい が,1CPUのCM5のCM-Fortran,C*と い う よ う な も の で あ る.文 法 な ど は通 常 の もの と同 じで,た だ し他 の ノ ー ド と の 通 信 はCMMD等 でexplicitに 書 い て や ら な け れ ば な らな い.

基本的方式

リ ン カ デ バ ッガ ラ ン タ イ ム プ ロ セ ッサ 間 通 信 数 値 演 算 ラ イブ ラ リ デ イス ク ア レ イ グ ラ フ イッ ク ベ ク トル ユ ニ ッ ト NodalCM-Fortranお よ びNodalC* cmmd-ld Nodalprism(α) CMRunTimeSystemを 使 用 す る CMMDメ ッ セ ー ジ パ ッ シ ン グ(b) 対 応 す る 機 能 な し CMMDのUNIXI/0サ ポ ー トO 対 応 す る 機 能 な し 自 動 的 に 使 用 さ れ る (α)prismを 一nodeオ プ シ ョ ン付 きで 起 動 す る. (b)通 常 のCM-Fortran,C*の 言 語 に 内 包,隠 蔽 され た 通 信,例 え ば,配 列 の 総 和 や シ フ トは,そ の ノ ー ド内 だ け の 操 作 と して 実 現 さ れ て い る.だ か ら1CPUのCM5のCM-Fortran,C*と 言 え る. (c)こ れ はFrontnet上 の 全 デ ィス ク にNFSで ア ク セ ス で き る.た だ し並 列 入 出 力 は 不 可 能 こ のNodal-modeの プ ログ ラ ム は 通 常 のCM-Fortran,C*と 「混 ぜ て 」 使 用 で き る.そ の た め に配 列 の 相 互 変 換 関 数 な どが 用 意 さ れ て い る. ソ フ ト ウ ェ ア 環 境 は 以 上 の よ うに 複 雑 な もの で,ま たOSの バ ー ジ ョ ンア ップ の た び に細 部 が変 化 しつ づ け て い る が,オ ン ラ イ ンブ ラ ウ ジ ン グ ツ ー ルCMViewが 利 用 の 際 の 大 き な手 助 け と な る.使 用 法 は,適 切 な X11の 環 境 下 で あ れ ばcm5-cplに 入 り, cm5-cpi[1)'/.setenvDISPLAYyourWS:0.0 cm5-cpi[2]'/.cmview& ・一一醐 一 一 噛噂闘胴 ■闘 ■胴■ ■■圏■■■ ■■■■■■

(13)

とす る だ け で あ る.数 秒 後 にCMViewの ウ イ ン ド ウが 開 くが,こ こ か らGUI操 作 に よ っ て,現 段 階 に お け るCM5の マ ニ ュ ア ル の ほ ぼ全 て を 閲 覧 す る こ と が で き る.

(14)

1.2CM-Fortran:簡 単 な プ ロ グ ラ ム 例

CM5に 装 備 さ れ て い る 言 語 は 全 て 並 列 処 理 が 可 能 だ が,こ こ で は 主 にCM-Fortranを 説 明 す る.

CM-FortranはFortranの 並 列 拡 張 で あ る.CM-FortranはFortran90お よ び 従 来 のFortranと 高 い 親 和

性 を 持 っ て お り,高 速 な 演 算 ラ イ ブ ラ リCMSSLの 利 用 が 可 能 な の で,大 量 の 浮 動 小 数 点 処 理 を と も な う 科 学 技 術 演 算 に 適 し て い る.一 方C*はANSICの 並 列 拡 張 と さ れ て い る.こ れ ら 二 つ の 文 法 に は 大 き な 相 異 が あ る が,実 行 時 に は 同 じCMRTS(C・nnecti・nMachineRunTimeSystem)を 利 用 し て 実 行 さ れ る の で, C*の 方 が や や 柔 軟 性 に 富 ん で い る も の の 実 際 の 機 能 は か な り類 似 し て い る.そ こ で こ こ で はCM-Fortran の 方 に し ぼ っ て あ ら ま し を 解 説 す る. ま ず,非 常 に 簡 単 な 例 を 使 用 し てCM-Fortranに よ る プ ロ グ ラ ミ ン グ の 要 点 を 説 明 す る.CM-Fortranの 言 語 と し て の 位 置 づ け は,「CM-FortranRefernceManual」 の 冒 頭,introductionの 章 に 書 か れ て い る.1 CM-Fortranは,あ る 程 度 ま で の 自 動 並 列 化 機 能 を 有 す る.言 い か え る と,CM-Fortranの 流 儀 に こ ち ら が 合 わ せ て 書 い て や れ ば,ど う 並 列 化 す る か に つ い て プ ロ グ ラ マ が 考 慮 す る 必 要 は な く,SIMD的 な ス タ イ ル で 自 動 並 列 化 す る.2CM-Fortranの 立 場 は,従 来 のFortranに 慣 れ た プ ロ グ ラ マ とCM5と の イ ン タ ー フ ェ ー ス に な る こ と と 考 え ら れ る だ ろ う. 1.2.1ソ ー ス の 書 き 方 CM-Fortranの ソ ー ス コ ー ド は 名 前 が *.fcmも し く は*.FCM で なけ れ ば な らな い.拡 張 子 がFCMの 時 に は,ソ ー ス は コ ンパ イ ラ よ り先 にCPPに か け ら れ る た め,Cの プ リプ ロ セ ッ サ 機 能 が 利 用 で き る,ま た,C*の ソ ー ス コ ー ド は *.CS で な け れ ば な ら な い. エ デ ィッ トは どの マ シ ンで して も同 じだ が,コ ンパ イル は コ ンパ イ ラ な ど を持 っ て い る フ ロ ン トエ ン ドで な け れ ば で き な い.そ し て こ れ ら は並 列 部 自体 は使 用 しな い が 負 担 が 大 な の で,cp1の 方 で や る こ と. reala(1024) realb(1024) a=1.0 b=2.0 b=b+a do100i=1,1024 write(6,*)b(i) 100continue end こ の プ ロ グ ラム をreptest.fcmと して入 力 した とす る.小 文 字 と大 文 字 は コ ンパ イ ラデ ィレ クテ ィブ の 指 示 を例 外 と して 混 用 さ れ る.た だ し7桁 目 か ら書 か な け れ ば な ら な い の は そ の ま ま で あ る.ま た,フ ォー ト 1図 が ま ち が え て い る よ うな 気 が す る の だ が . 2MIMD的 な ス タ イ ル で ,つ ま りは っ き り とプ ロ セ ッ サ 群 に 相 互 に 異 な っ た こ と を や らせ る に は,f77でCMMDラ イ ブ ラ リ を使 用 して 書 く. 一一一 鞠幽 繍 ■噛 鯛 醐■■ ■■■胴 閣 ■ ■闘■闘 ■■ ■ ■ ■■■ ■

(15)

1 2 3 4

18盈

響 鐸

2謬 置88

38習

習 盈

a 1 2 3 4 A=0.3 1B=0 .5 A=0.2 B=0.5 A=0.3 B=0.4 A=0.1 B=-0.2 A=0.7 211 A=0.2 B=04 A=0.3 B=0.3 A=0.3 B=0.9 A=0.6

3B =0.7 B=O.dA=0.6 B=0.3A=0.4 B=0.3A=0.1

A=0.94 B=1.2 A=0.5 B=0.5 A=0.2 B=0.1 A=0.3 B=0.5 図1.2:16個 の プ ロ セ ッサ と,そ れ に 分 配 さ れ て い る そ れ に 配 列 変 数,A(4,4),B(4,4)が 分 配 さ れ て い る所 の 模 式 図.二 重DOル ー プ で 全 て の 砺 に 対 してAiゴ ニBわ+砺 の 計 算 を させ る か わ りに,各 プ ロ セ ッサ で 独 立 にA・=B+Aを 実 行 す る.同 時 に 異 な る プ ロ セ ッサ で,異 な るデ ー タ に 同 等 な こ と をす る か ら,Single InstructionMultiData,も し くは,デ ー タ並 列 と言 え る.こ の 場 合,A(4,4),B(4,4)は 同 じ形,同 じ大 き さの 配 列 で あ る.こ う い っ た 場 合 に は 最 も 自然 な 形 と して こ の よ う に 対 応 す る 要 素 が そ れ ぞ れ の プ ロ セ ッサ で 重 な る よ うに な る.こ れ を,二 つ の 配 列 が コ ン フ ォ ー マ ル で あ る と言 う.コ ン フ ォー マ ル で な い と こ の 場 合 の よ う な処 理 は 不 可 能 だ が,コ ン フ ォ ー マ ル で な い 配 列 がCMの な か に 混 在 す る こ と 自体 は 問 題 が 無 い. ラ ン77そ の も の の 部 分 が 混 在 し て お り,こ れ は フ ォ ー ト ラ ン77そ の ま ま の 意 味 と し て 翻 訳 さ れ る が,こ れ ら77の 文 は 自 動 並 列 化 は さ れ な い.並 列 化 動 作 の た め に は,か な ら ず 何 ら か の は っ き り し た 並 列 化 す る ス テ ー ト メ ン ト と 一 緒 に 使 用 し な け れ ば な ら な い.書 く ほ う も そ う い う つ も り で77の 文 法 を 使 用 す る こ と に な る.3 ConnectionMachineFortranの 並 列 化 の 基 本 的 な 考 え 方 は,こ の3つ の 代 入 文 か ら分 か る よ う に,配 列 を ひ と か た ま り の 物 と し て 操 作 す る こ と と,配 列 の 記 憶 領 域 を 各 プ ロ セ ッ サ に 分 配 す る こ と に よ っ て,自 然 に そ れ ら に 対 す る 処 理 の 並 列 化 を 行 う と い う も の で あ る.こ の 分 配 も 配 列 の 宣 言 自 体4に よ っ て 引 き お こ さ れ る の で,基 本 的 に 特 別 な 操 作 は い ら な い. た と え ば,b=b+aは,bの 全 要 素 に 対 応 す るaの 要 素 を 加 え る こ と を 意 味 し て い る.並 列 化 す る ス テ ー ト メ ン ト と い っ た の は こ の よ う な 書 き 方 の こ と で あ る.た と え ばA(1,1)=8の よ う に77の 書 方 で こ れ ら の 配 列 に な ん ら か の ア ク セ ス を し た 場 合 に は,わ ざ わ ざ 必 要 な 情 報 を 対 象 に な る 配 列 要 素 を 所 持 し て い る プ ロ セ ッ サ と の 問 に や り と り し て,パ ー テ ィ シ ョ ン マ ネ ー ジ ャ が 処 理 し て や る 格 好 に な る.こ れ は 非 常 に 効 率 が 低 下 す る. 上 の 例 で,1024と い う の はCM5の プ ロ セ ッ サ の 数 よ り多 い が,実 際 に は こ れ は コ ン パ イ ラ が ど う に か して く れ る.こ れ を1024個 の 「仮 想 プ ロ セ ッ サ 」 を 用 意 す る と 考 え る.5こ の た め,基 本 的 に 配 列 の 大 き さ は,パ ー 3た とえば入 出力 や ,実際 に あ る操 作 をn回 連 続 して逐 次 的 に行 い たい場 合,プ ログ ラム 全体 の流 れ につ いて 影響 す る よ うな条 件判 定 な どで あ る.こ の場合,フ ォー トラン77そ の ま ま とはい って も,whileやcaseな どの構 造 化言 語風 の制御 文 が拡 張 され て いる ので, 純77よ りは使 いや す いか も しれ ない.ま た,実 例 は不 明 だが,記 憶構造 に直接 関係 す る ような 書式 な どは並 列 部へ の適 用 な どが 制 限 されて い る ら しい.た とえばEQUIVALENCE文 であ る. 4例 と して あげ た プ ログ ラ ムで,フ ォー トラ ン77そ の ま まの配 列宣 言 を して い るが,も っ と フ ォー トラ ン90ら しい書 き方 もあ る. 全体 と しての 考 え方 は並 列演 算 な ど を追加 した フ ォー トラ ン77の ア ッパ ー コ ンパチ ブ ルで あ る. 5実 プ ロセ ッサ1個 が仮 想 プ ロセ ッサ16個 を模 擬 す る こ とにな る.ベ ク トルユ ニ ッ トを使 用 しな い と きは,ノ ー ドのSparcチ ップ が1頂に16個 分 の計 算 をす れ ば よい し,使 用 す る ときは 長 さ16/4の ベ ク トル処 理 に な る.配列 の大 き さ=仮 想 プ ロ セ ッサ数 が は んぱ ・一 一 一繍一 馴圏一闇胴■暉闇 ■■■闘■■■■■闘■■■■ ■■ ■

(16)

テ ィシ ョ ンの プ ロ セ ッサ 数 の 倍 数 で あ る必 要 もな い.配 列 の 形 に対 して も同 様 で,任 意 のnl*n2*n3*...n7 の 形 に対 して 自動 的 に分 配 が 行 な わ れ る.自 動 的 な 分 配 は,配 列 をプ ロ セ ッサ 数 だ け の そ れ ぞ れ が 連 続 な 領 域 に 分 割 す る こ とで 行 な わ れ る.6な ぜ な ら,自 然 な モ デ ル 化 が プ ロ グ ラ ミ ン グ に採 用 され て い れ ば 配 列 内 で 近傍 の 要 素 との 通 信 が 多 い と考 え ら れ,こ の 分 配 手 法 は そ うい っ た 場 合 の 通 信 の 量 を最 少 化 す る か らで あ る.7 配 列 の 大 き さ を 実 際 的 に 制 限 す る の は,そ れ に 要 す る 各 プ ロ セ ッサ で の 記 憶 容 量 で あ る.た だ し,配 列 の 大 き さ をパ ー テ ィ シ ョ ンの プ ロ セ ッサ 数 の2n倍 な ど に した 場 合,性 能 に変 化 が あ らわ れ る の は確 か な よ う で あ る. 文 字 配 列,並 列 ス テ ー ト メ ン ト に よ っ て操 作 され て い な い 配 列 な ど は そ れ に 関係 す る記 憶領 域 をパ ー テ ィ シ ョ ン マ ネ ー ジ ャ に と る の で,自 然 に そ れ に 対 す る処 理 は パ ー テ ィ シ ョ ン マ ネ ー ジ ャ が や る こ とに な る.配 列 がCMに お か れ る か,PMに お か れ る か,つ ま り ど こ に あ る か と い う こ と を 配 列 の 「ホ ー ム 」 と呼 ぶ.上 記 の プ ロ グ ラ ム で の 例 で は,A,Bの ホ ー ム はCMだ が,iの ホ ー ム はPMで あ る. こ れ を ま と め る と,配 列 に対 す る操 作 が か な らず 並 列 に で きる わ け で は な い し,並 列 化 の 効 率 も場 合 に よ る とい う こ とで あ る. ま た,プ ロ セ ッサ 問 の 通 信 の こ と も考 え に い れ る べ き で あ る.差 分 法 や 行 列 に 対 す る操 作 な ど は,ど う考 え て み て も配 列 の あ る 要 素 を値 を計 算 す る の に,自 分 自 身 か他 の 配 列 の 違 う場 所 に あ る デ ー タ を必 要 とす る し,配 列 の 値 の 合 計,積 分 操 作 な ど も同 様 で あ る.8こ の よ うな 場 合 に プ ロ セ ッサ 間 通 信 が 発 生 す る が,プ ロ グ ラ マ は 配 列 に式 を代 入 し た り,合 計 を 求 め る 関 数 をCALLし た りす る だ け で あ る.プ ロ セ ッサ 間通 信 自体 をす る た め の 命 令 とい うの は無 い.い ず れ に せ よ,こ う い っ た処 理 が 仮 想 プ ロ セ ッサ が 自分 で 持 つ デ ー タ に 対 して 演 算 す る よ り コス トが 高 い の は 確 実 な よ うで あ る. 配 列 の分 配 に た い して プ ロ グ ラ マ が 明示 的 にで き る 唯 一 の 指 示 は,LAYOUT,ALIGN,COMMONデ ィレ ク テ ィブ で あ る.コ ンパ イ ラの 自動 判 断 で は 不 十 分 だ と感 じた 場 合 に使 用 す る.9COMMONデ ィ レ ク テ ィ ブ はCOMMONブ ロ ッ クの ホ ー ム を強 制 的 に 決 め る.AHGNデ ィ レ ク テ ィブ は あ る 配 列 をず ら して 他 の 配 列 の 要 素 と仮 想 プ ロ セ ッサ 上 で 重 な る よ う にす る. ALIGNとLAYOUTデ ィ レ ク テ ィブ は 普 通 の 配 列 の ホ ー ム を強 制 的 に 決 定 す る. 同 時 にLAYOUTは,そ の 配 列 が 実 際 に ど ん な風 に プ ロ セ ッサ 上 に わ りつ け ら れ るか を決 定 す る.プ ロ セ ッ サ 間 通 信 が 無 け れ ば こ の機 能 は ど うで も良 い の だ が,配 列 は ど れ で もn次 元 メ ッシ ュ に似 た 構 造 に な っ て い る の に,実 際 の プ ロセ ッサ 問 ネ ッ トワ ー ク は 図1の 箱 の 中 に示 した 「FatTree」 で あ り,わ りつ け 方 に よ って 得 意 な 通 信 の パ タ ー ン とそ うで な い の が 出 て くる の で,LAYOUTで あ らか じめ 有 利 な よ う に 設 定 す るの で あ る.プ ロ セ ッサ 間 通 信 は 数 種 に分 類 さ れ る.こ れ らが ハ ー ド上 で ど う異 な る か は不 明 だ が,後 述 す るPrism の 出 力 に よ っ て種 類 を識 別 す る こ と は 可 能 で あ る.LAYOUT文 で,:NEWSも し くは:SENDと す る こ とで, 配 列 の あ る 軸 をそ の タ イプ の プ ロセ ッサ 間 通 信 に 向 い た 形 に 配 列 させ る こ とが で き,2次 元 以 上 の 場 合 は各 軸 に つ い て プ ロ セ ッサ 間 通 信 オ プ テ ィマ イ ズ の 重 視 度 を数 字 で 設 定 す る こ とが で きる.10ま た,:SERIAL と指 定 す る こ と に よ り,そ の 軸 に そ っ て 全 要 素 を 同 一 プ ロ セ ッサ の メ モ リ に積 ませ る こ と もで き る.も し も な値のときで も,適当にNOPか 待 ち時間をす ることによって問題 を解決で きると考 えられる.た だしこれはプロセ ッサの遊休率を高 くしていることになるので性能は低 下する し,またベク トル処理の場合はその処理速度がベク トル長 に大 きくかつ非線型的に依存す ることを考慮すべ きである. 6ひ ど くこみいっているので説明 しないが,各PN内 でのベク トルユニ ットへのデータ分散 も同様 な方式 を踏襲する. 7後述するコンパ イラデ ィレクテ ィブは,実際はこの分配とプロセッサへのアサインを制御する. 8合計,最大値の ような全部 まとめた結果について単一の結果が出るような ものは,プロセッサ問通信 ネットワークを通 じて,収集 しなが ら計算す るのだそ うだ.特 に収集/処理 されるデー タがInt型 の場合 には,その処理 はネ ットワーク ・ハードウェア自体で行な われる らしい. 9た とえば,コンパイラにまかせた結果 としてプログ ラマが考えているのと違 うことをオブジェクトがやってしまう場合である.「 バ ッグ」の項参照. 10しかし,これで うまく性能を向上で きたことがあまり無い.「 失敗例の研究」の項で一つだけうまくいった事例 を示す.ホ ームを 変えさせるだけが 目的な らば,普通 は全軸 に対 して:NEWSを 指定すれば良い.

(17)

全 軸 に対 して:SERIALを 指 定 す る と,強 制 的 に ホ ー ム をPMに す る こ と に な る. また,LAYOUTデ ィレ ク テ ィブ に よ って,よ り仮 想 プ ロセ ッサ の シス テ ム を 介 さず,よ り物 理 的 な プ ロセ ッ サ の 構 成 に 近 い と こ ろ で 並 列 部 へ の わ り当 て を 指 定 す る こ と,ま た,パ ー テ ィシ ョ ンの 大 き さ を変 更 せ ず に 使 用 す る 物 理 プ ロ セ ッサ 数 を変 更 す る こ とが 可 能 の よ う で あ る.こ の 方 法 は,現 時 点 で は なぜ か マ ニ ュ ア ル に は 出 て い な い よ うだ が,講 習 会 で 使 用 さ れ た 資 料 の 方 に は 掲 載 さ れ て い る.11 1.2.2コ ン パ イ ル の し か た 1.2.3コ ン パ イ ル ●CM-Fortranの コ ン パ イ ラ 名 は,cmf ●C*の コ ン パ イ ラ 名 は,cs で あ る. cm5-cpi[1]'/.cmfffttest.fcm-o-vu-gPSORT.o cmf[CM5VecUnit2.1.1-2] Compilingparallelsort.fcm cm5-cpi[2]'/.cs-sparccmprot.cs C*driver[CM5SPARC7.1.1] Compilingcmprot.cs こ れ で オ ブ ジ ェ ク ト フ ァ イ ルa.outが で き る.通 常 の コ ン パ イ ラ と 変 わ り な い. 1.2.4実 行 の しか た 通 常 の プ ロ グ ラ ム と同 じで,オ ブ ジ ェ ク トフ ァ イル の 名 前 を入 力 す る だ け で 良 い.リ ダ イ レ ク シ ョ ン な ど もそ の ま ま利 用 で き る. CM5(64VII):garage[24]%a.out>res a.out>res CM5(64VU):garage[25]'/.wcres weres 1024102412288res CM5(64VU):garage(26]'/.head-7res headres 3.000000 3.000000 3.000000 3.000000 3.000000 3.000000 3.000000 CM5(64VII):garage[27]'/, 前 章 で 述 べ た よ う に,こ れ はCM5の 並 列 プ ロ セ ス 管 理 手 法 に よ っ て い る.あ る プ ロ グ ラ ム は あ る パ ー テ ィ シ ョ ン 上 で プ ロ セ ス と な り,こ の 時 パ ー テ ィ シ ョ ン の 全 ノ ー ド に ひ と つ ず つ の プ ロ セ ス,ま た パ ー テ ィ シ ョ

iiCM -Fortranの 各 文 の 実 際 の 使 用 例 な どは 「CM-FortranReferenceManual」 に 出 て い る.特 に,LAYOUT,AHGN,COMMON デ ィ レ ク テ ィ ブ に つ い て は,「Arrayallocation」 「Appendix:CompilerDirectives」 の 両 項 を 参 照.

(18)

欄 PartitionManager

HCommand,Input/Output 匡 亘]匝 互]・ ・[PN63] 図1.3:CM5の プ ロ セ ス の イ メ ー ジ ン マ ネ ー ジ ャ に そ れ ら の 「代 表 プ ロ セ ス 」 が 一 つ 生 成 さ れ る.そ して こ れ らが ひ と く く りの 「並 列 プ ロ セ ス 」 と して あ つ か わ れ る. や や こ しい の は こ うい う構 造 はCM-Fortranか らは 見 え な い と い う点 だ が,頭 に入 れ て お く と実 際 に使 用 す る 際 に便 利 で あ る.12 1.2.5並 列 化 す る ス テ ー ト メ ン ト 並 列 化 す る ス テ ー ト メ ン トに つ い て ま とめ る.あ ま り複 雑 な プ ロ グ ラ ミ ング を して み た わ け で は な い の で,詳 細 は マ ニ ュ ア ル を見 て も ら う こ と に して,ど うい う種 類 の 物 が あ って ど う い う特 性 を持 っ て い る か だ け を書 く.後 続 の 章 に 挙 げ た 例 題 プ ロ グ ラ ム の 中 か ら書 き方 の 例 を探 す こ と もで き る だ ろ う. 配 列 に 対 す る代 入 文 先 の プ ロ グ ラ ム で 使 用 した もの で あ る. 例 え ば, A=B*C の よ うな ス テ ー ト メ ン トが こ の よ う な 配 列 変 数 に対 して 実 行 され る と,対 応 す る 配 列 の 要 素 の そ れ ぞ れ に つ い て, for2p=Oto乞Omα 記 ノori1=Oto¢1mα ¢ for22=Oto22m。x Ai。 ,2、,2、,_=BZ。,2、t2、,_*α 。,2、,2、,.. end end end とい う操 作 が,そ れ ぞ れ の 仮 想 プ ロ セ ッサ で,独 立 に,か つ セ マ ンテ ィ ク ス の 上 か ら見 て,「 同 時 に」 行 な わ れ る. こ れ が,こ の よ う な言 語 で 書 い た プ ロ グ ラ ム が 多 次 元 メ ッ シ ュ 型 の トポ ロ ジ ー を持 つ 仮 想SIMD型 の 超 並 列 計 算 機 と して 動 作 す る こ と を,ま た,通 常 の 逐 次 型 言 語 で はZp,21,ZZに 対 す る 多 重 ル ー プ に よ っ て 記 述 す る の と同 等 の こ と が 上 記 の よ うな 単 一 の ス テ ー ト メ ン トで 記 述,実 行 で き る こ と よ り,コ ンパ イ ラ が 限 定 さ れ た範 囲 で の 自動 並 列 化 能 力 を持 つ とい え る こ と を意 味 す る. こ れ は 最 も単 純 な形 で,マ ニ ュ ア ル を調 べ れ ば こ れ だ け で 結 構 い ろ い ろ な こ とが で きる の が分 か る.調 べ きれ て い な い の で 一番 お も し ろ い 例 だ け を紹 介 す る. 12別 にCM -Fortranで なくとも常にこうなる.CMMDHostlessモ ードで もパーテ ィションマネージャに 「代表プロセス」は現れ る. '一一一幽嘲■一 闘圏嗣 ■■■■ ■■■■ ■■ ■■■■圏■■

(19)

配 列i(64),r(64)が あ って,CMが ホ ー ム だ っ た とす る.iに は,64,63,62,61._._3,2,1と い う数 列 を収 容 し て い た とす る.こ こ で, r=r(i) とい うの を 実 行 す る と,rの 内 容 は そ っ く り天 地 逆 転 す る.完 全 に ラ ン ダ ム な値 の 入 っ て い る ポ イ ン タ に 対 す る代 入 命 令 み た い な の を一 遍 で で き る こ と に な る.お も し ろ い の は,二 つ ず つ の 組 み に し て考 え る と, デ ー タが 互 い を す りぬ け て ス ワ ップ して し ま う こ とで あ る.た だ し こ の よ うな ラ ン ダ ム な プ ロ セ ッサ 問 通 信 は,規 則 正 しい もの に 比 し て低 速 ら しい.13 ア レ イ コ ン ス トラ ク タ こ の 計 算,代 入 も独 立 に行 な わ れ る の だ ろ うが,等 差 級 数 程 度 しか 代 入 で き な い.上 記 の 配 列 に対 す る 代 入 文 の 例 で 出 て きた 配 列iに あ の 数 列 を代 入 す る の は, i=[64:1:-1] とす る.つ ま り カ ッ コ の 中 はDOル ー プ の 変 数 指 定 と同 様 で あ る.こ れ も簡 単 な 例 で,実 際 は も っ とい ろ い ろ な こ とが で き る. FORALL文 正 式 な 書 式 を省 略 す る が, ・FORALL(多 重DOル ー プ の制 御 変 数 とそ の 範 囲 指 定 だ け を抜 き 出 した の に そ っ く り な部 分)代 入 文 とい う形 で,代 入 文 は, ・ そ の 制 御 変 数 で ア クセ ス さ れ て い る 配 列e「 表 現 」 で な け れ ば な ら な い.こ れ は 「表 現 」 に,カ ッ コ 内 で 使 用 した 制 御 変 数 を 書 い て 良 い と こ ろ が 特 性 で あ る. そ の 「表 現 」 の 値 を各 部 分 で 独 立 し て計 算 して独 立 に代 入 す る. た と え ば,電 磁 気 学 的 な 計 算 な どの 際 に,ポ テ ン シ ャ ル は 空 間 メ ッシ ュ 上 の 位 置,つ ま り配 列 の 添 え 字 に よ っ て 各 点 で 決 ま る わ け で,表 現 に は そ れ を表 す 関 数 形 を書 い て や れ ば 良 い. WHERE文 ・WHERE(条 件) ● 文 ・ENDWHERE とい う形 で,配 列 の な か で 条 件 を 満 た す 部 分 だ け に あ る操 作 を行 う. 例 え ば,あ る 関 数 の 離 散 的 な各 点 ご との 値 が 一 次 元 配 列fに お さ め られ て い る と して,そ れ が 一 定 値 以 上 の 区 間 の み に お い て,一 次 元 配 列gに お さ め ら れ て い る別 な 関 数 に 加 算 す る とい っ た よ うな プ ロ グ ラ ム は, 通 常 の プ ロ グ ラ ム 言 語 の 場 合,ル ー プ 構 文 を用 い,そ の 制 御 変 数 を イ ンデ ッ クス と して 一 次 元 配 列f,gの 各 内 容 に ア クセ ス して い く とい う もの に な る だ ろ う.こ れ に対 して,CM-Fortranで は, real*8F(1024),G(1024),S integer*4i 13こ の 手 の 処 理 の 例 は ,先 日行 な わ れ たThinkingMachine社 に よ る 講 習 会 の 資 料 に た く さ ん 出 て い る の で,見 る と 良 い だ ろ う.

(20)

where(F>S) F=G+F endwhere end の よ う に な る.こ こでwhere/endwhere構 文 は 条 件 文 を満 足 す る仮 想 プ ロセ ッサ の み に お い て構 文 の 内 部 を 実 行 す る.つ ま り同 一 の サ イ ズ を もつ 複 数 の 配 列 の対 応 す る 要 素,例 え ば,

{f(945),g(945)}

が 一 つ の 仮 想 プ ロ セ ッサ と見 な さ れ る わ け で あ る.こ れ はC*言 語 で は 配 列 の サ イ ズ つ ま り仮 想 プ ロ セ ッ サ の 構 成 をShapeと い う型 の 一 種 と見 な して,よ り厳 密 に 制 御 さ れ る. f77のIF文 は プ ロ グ ラ ム の 流 れ 自体 を変 更 す る が,WHEREは 条 件 を満 た さ な か っ た 仮 想 プ ロ セ ッサ を,ENDWHEREま で の 間 一 時 停 止 させ る.そ の あ い だ に 問題 の仮 想 プ ロ セ ッサ 群 に 与 え られ た命 令 は 一 時 停 止 して い な い プ ロ セ ッサ だ け が 実 行 す る の で,仮 想 プ ロ セ ッ サ ご と に 処 理 の 流 れ を変 更 で き る こ と に な る.つ ま り並 列 版 のIF文 と言 っ て い い.14 そ の 他 イ ン ト リ ン シ ッ ク な 関 数 配 列 を引 数 に と っ た り,配 列 を 出 力 す る イ ン ト リ ン シ ッ ク 関 数 と して 種 々 の も の が 用 意 さ れ て い る, こ れ ら を用 い,画 像 処 理 や偏 微 分 方 程 式 の 逐 次 解 法 とい った,各 要 素 に比 較 的 一 様 な操 作 を 要 求 され る ア プ リケ ー シ ョ ン を作 成 す る こ とが で きる と考 え られ る,例 え ば 差 分 方 程 式 が 与 え ら れ て い る 場 合,CM-Fortran の 書 式 は よ り 自然 に こ れ を記 述 で き,か つ か な り効 率 の 良 い オ ブ ジ ェ ク ト を生 成 で き る.3次 元 ラ プ ラス 方 程 式 の 場 合,そ の差 分 法 に よ る プ ロ グ ラ ム の 中 心 部 は, real*8d(DXDYDZ) real*8d2(DXDYDZ) integeriota integeri d2=(1.0/6.0)*( cshift(d,i,1)+cshift(d,i,-1)+ cshift(d,2,1)+cshift(d,2,-1)+ cshift(d,3,1)+cshift(d,3,-1)) iota=sum(abs(d2-d)) d=d2 と,ほ とん ど一 つ の 代 入 文 だ け で 書 け る.こ こ で, ●cshift配 列 の 内 容 をあ る軸 に そ っ て ず らす. ●absあ る 配 列 の 内 容 の 絶 対 値 が 代 入 さ れ た 配 列 を 与 え る. ・sum配 列 の 内 容 の 合 計 が 代 入 さ れ た ス カ ラ ー を 与 え る. 14ど の仮 想 プ ロセ ッサが 活動 して いて どの 仮想 プ ロセ ッサ が活 動 して い ない か,と い うことをTMCで は一 貫 して 「コ ンテ クス ト」 と呼 んで い る.そ して た しか,コ ンテ ク ス トはサ ブル ーチ ンコー ルの ときにデ ー タ と一緒 にわ た され るそ うで あ る.こ れ を利 用 すれ ば, かな り面 白い処理 が 可能 にな るだ ろ う. 一一一'一一 嘲一 一 一 闇■ ■ 劇■■■ ■■ 闘圏 ■ ■ ■ ■■ ■ ■■

(21)

な ど はCM-Fortranの イ ン ト リ ン シ ッ ク 関 数 で あ る.absは 単 な る 通 常 のabsの 拡 張 に 過 ぎ な い が,cshiftと sumな どの は イ ン ト リン シ ック 関 数 は 本 来 な ら当 然 プ ロ セ ッサ 間 通 信 を必 要 とす る の だ が,実 際 に書 い て や らな け れ ば な ら な い こ と は これ らの 関 数 や サ ブ ル ー チ ン を配 列 を引 数 と して 使 う こ と の み で あ る. ま た,例 え ばd2に 関 す る代 入 文 が 各 仮 想 プ ロ セ ッサ に つ い て 「同 時 に 」行 な わ れ る よ う に 見 せ る こ とは, 本 来 な ら 同 様 に複 雑 な プ ロ セ ッサ 間 の 同期 操 作 を必 要 とす る.こ れ ら の 並 列 計 算 機 に お い て 不 可 避 な 問 題 が,CM-Fortranに お い て は 仮 想 プ ロ セ ッサ,擬 似SIMDの 考 え 方 に よ っ て完 全 に 隠 蔽 さ れ る とい う大 き な 長 所 が あ る. ま た,特 にC*に お い て は 仮 想 プ ロ セ ッサ 問 に 上 記 の よ う な規 則 正 しい もの の 他 に 不 規 則 な パ ター ンで の 通 信 の 記 述 力 も強 化 され て お り,こ れ に よ って 数 百 万 個 の ラ ンダ ム な コ ネ ク シ ョ ン を も った 並 列 計 算 機 と し て の 使 用 が 可 能 に な っ て い る.た だ し,い つ れ の 場 合 も,CSHIFTの よ うな 規 則 正 しい パ タ ー ンで の 通 信 の 方 が 代 入 に よ る ラ ン ダ ム な 転 送 よ り も高 速 と さ れ て い る. ユ ー テ ィ リテ ィ サ ブ ル ー チ ン と言 う一 群 の サ ブ ル ー チ ン が あ っ て,な ぜ か ヘ ッダ を イ ン ク ル ー ド し,リ ン カ に は 特 別 な 指 示 な しで 使 用 す る よ う に な る. 実 行 効 率 な どは不 明 だ が,こ れ で しか で き な い よ うな 処 理 が あ る よ うな の でぜ ひ一 遍 目 を通 す べ きで あ る. ヘ ッダ は /usr/include/cm/CMF_defs.h に あ る.各 ル ー チ ン の 説 明 は,「CM-FortranUser'sGuidef・rtheCM-5」 に 掲 載 さ れ て い る. 15 1.2.6コ ン パ イ ラ オ プ シ ョ ン オ ブ ジ ェ ク トの 名 前 とか リ ン カへ の 指 令 とい っ た オ プ シ ョ ンは 普 通 のf77やccと 何 も変 わ っ て い な い の で,CM5の 性 質 を よ く示 して い てcmfに 特 有 な 物 を 紹 介 す る.大 部 分 がC*の フ ロ ン トエ ン ド,csと 共 通 で あ る. 一list ソ ー ス コ ー ド と,変 数 の 一 覧,コ ンパ イ ル 時 の 状 況 な ど の リス ト を作 っ て くれ る.こ うい っ た も の は 普 通 の コ ンパ イ ラ に もあ る が,わ ざ わ ざ こ こ で 述 べ る の は こ の リス トの 中 に,配 列 の ホ ー ム,つ ま り並 列 部 に そ れ が 置 か れ て い る か ど うか が 表 示 さ れ て い る か らで あ る.   -crosim CM5の オ ブ ジ ェ ク ト で は な く,フ ロ ン ト エ ン ド で そ れ を シ ュ ミ レ ー ト す る オ ブ ジ ェ ク ト を 作 る.こ の オ ブ ジ ェ ク ト は,完 全 に フ ロ ン トエ ン ド だ け で 動 く.Ts-Daemonの 無 いPM上 で,こ れ をPrismで 観 察 す る こ と さ え 可 能 で あ る.さ ら に は,CM5と 関 係 の な い 個 人 のSS2で さ え 動 作 さ せ る こ と が で き る.ま た,厳 密 に 計 っ た こ と は 無 い の だ が,こ の 時 の 方 が コ ン パ イ ル は 早 く 済 む よ う な 気 が す る.だ か ら 文 法 チ ェ ッ ク 用 に 有 効 か も し れ な い.た だ し,記 憶 容 量,実 行 速 度,さ ら に ア ー キ テ ク チ ャ そ の も の が 比 較 の し よ う も な い ほ ど 異 な っ て い る の で,実 行 時 エ ラ ー を 予 期 す る 能 力 は0と 見 て 良 い だ ろ う.16 15並 列 の入 出力 とい うの もあ るが,専 用 の デバ イス に対 して しか 使用 で きない ので,上 の例 では 普通 のwrite文 に した.専 用 デ バ イ

ス とは,た とえ ば並列 磁気 デ ィス ク,DataVaultな どであ る.JaistのCM5に も,SDA,ScarableDiskArrayと い うのが 本体 に内臓

されて い る.そ して その 入 出力 命令 が,こ のユ ーテ ィ リテ ィサ ブ ル ーチ ンか,CMFS(C。nnecti。nmachinefilesystem)ラ イブ ラ リ

か らで ない とで きな い よ うにな って い る.

16並 列 計 算機 に よる高速化 効 率 を議論 す る際 に,使 用 す るCPUの 数 をパ ラ メー タに して 計算 速度 を考 察 す る例 が多 い.-cmsimオ

プ シ ョンに よる オブ ジ ェク トは,一 つ だ けのSparcチ ップ で実 行 される よう コンパ イル した こ とにな るか ら この場 合 に役 に立 ちそ う

(22)

一VU ベ ク トル ユ ニ ッ ト を使 用 す る.こ の ベ ク トル ユ ニ ッ ト とい う の が 普 通 の 数 値 演 算 加 速 用 の 付 加 処 理 装 置 と い うの と か な り性 格 が 異 な る た め,数 値 演 算 だ け で は な く,ほ と ん どす べ て の 場 合 に こ れ を使 用 した オ ブ ジ ェ ク トの 方 が 高 速 に 実 行 さ れ る.た だ し例 外 も あ る よ う な の で,場 合 に よ っ て は 両 方 で 実 際 に速 度 を比 較 さ れ る こ と を推 奨 す る。17 腰veccode ベ ク トル ユ ニ ッ トの ア セ ン ブ ラ,dpeacに よ る 表 記 で コ ンパ イ ル の 途 中 結 果 を示 し た フ ァ イル を作 る.ふ つ うの コ ンパ イ ラ の 一Sオ プ シ ョ ン と 同様 だ が,dpeacに よ る 表 記 は こ れ で な い と得 られ な い.18CM5の ア セ ンブ ラの 研 究 に 役 立 つ だ ろ う.19 一g ,-cmpro$le

一9オ プ シ ョ ン を つ け な い とdbxと 同 様,Prismに か け ら れ な い.-cmprofileオ プ シ ョ ン が 無 い とPrism

で の 所 要 時 間 と 実 行 形 態 の 測 定 機 能 が 使 用 不 可 に な る. 一〇 オ プ テ ィマ イ ズ す る.具 体 的 に 何 が ど う な る の か は 不 明 な の だ が,オ プ テ ィマ イズ す る と コ ー ド の 実 行 結 果 が 変 更 さ れ る 場 合 が あ る,と い う注 意 は 普 通 の 計 算 機 よ り深 刻 に受 け と っ た 方 が 良 い よ うで あ る.ま た, こ の オ プ シ ョ ンは あ る か 無 い か の み で あ っ て,-02や 一〇4と い うの は 無 い. 一fecomrnon COMMONブ ロ ッ ク を デ フ ォ ル ト で フ ロ ン トエ ン ド に も っ て く る. 1.2.7計 算 機 資 源 こ こ で,重 要 な 二 種 類 の 資 源 に つ い て そ の 算 出 法 に つ い て 述 べ る.そ れ は メ モ リ使 用 量 と演 算 時 間 で あ る. つ ね に 論 理 パ ー テ ィ シ ョ ン の 全 プ ロ セ ッ サ,つ ま り64個,が 使 用 さ れ,仮 想 プ ロ セ ッ サ の 考 え が 導 入 さ れ て い る 以 上,可 能 な 計 算 の 大 き さ を 決 定 す る の は 仮 想 プ ロ セ ッサ の 内 容 が 収 容 さ れ る メ モ リ の 大 き さ で あ る. メ モ リ使 用 量 は 自 動 的 に 取 得 さ れ る 作 業 領 域 の 存 在 な ど 種 々 の 避 け ら れ な い 事 情 か ら,配 列 の 大 き さ か ら 単 純 に 割 り 出 す こ と が 困 難 で あ る.cmpsコ マ ン ド を フ ロ ン トエ ン ド に 入 力 す る こ と に よ り実 際 に プ ロ グ ラ ム が 動 い て い る 時 の メ モ リ 使 用 量 を 知 る こ と は で き る.例 と し て プ ロ グ ラ ム が 一 つ も 動 い て い な い 場 合,cmpsコ マ ン ド は だが,未 確認 だがCM5の 構 造 を模 倣 す るた めの オ ーバ ーヘ ッ ドが か な りか か ってい る ので は ない か?と 思 われ る し,ベ ク トルユ ニ ッ トを使 用 す る と話 が 全 く異 な って きて しま う 17ベ ク トルユ ニ ッ トを実際 に どう使 用 す るか は コ ンパ イ ラが 考 え る.結 果 としてどう使 っているかは実行時にcmpsコ マ ンド を入

力 してVUS/VUHの 欄 を見 れば 良い.OKと か4kと か で なけ れば使 用 されて い る.ベ ク トルユ ニ ッ トはPE当 り四 つ あ るので,こ の

値 の四 倍 が1PEで ベ ク トルユ ニ ッ トが消 費 してい る容量 とな る.ベ ク トルユ ニ ッ トの処 理効 率 を直接 判 定 で きるベ ク トライザの よう な ッー ルは今 の所 存 在 してい ない. 18ベ ク トル ユニ ットは 自分で主 記憶 か ら命令 フ ェッチせ ず,Sparcチ ップ が特 定 の番 地 に書 き こんだデ ー タを インス トラ クシ ョン と して実 行 す る,よ うに な って いる ら しい.し たが っ て一Sオプ シ ョンに よ る普通 の ア セ ンブ ラの 中 に も これ らの イ ン ス トラク シ ョンは 書 き こみ命 令 の オペ ラ ン ド としては っ き りと出 てい る.た だ,dpeacはSparcア セ ンブ ラ を拡張 した マ クロ言語 で あ り,これ らを単 … のベ ク トル命 令 と して表 記す るので 分 か りやす い し,そ れ で書 い た もの を専用 アセ ンブ ラのdpasに よって コンパ イルで きる ら しい. 19役 に立 った ので,ア セ ンブ ラ の マ クロ群 であ るCDPEACで か な り複 雑 で しか も高速 なプ ログ ラム が作 れ る よ うにな っ た.こ れ には,C*も し くはCM-Fortranで 書い た 親プ ログ ラム と連 携 させ るか,CMMDの ノー ドプ ログ ラム に埋 め こ むの と二 つの 方法 が あ る.今 の所 この両 者 の混 在使 用 は不 可能 で あ る.サ ンプル プ ログ ラ ムは,"DPEACReferenceManual"の 末 尾 に掲 載 され て い る. 一一 一一 一 醐脚 ■■ 閣 ■嘲 ■■■■ 圏■ ■圏 ■■ ■■■■ ■

(23)

cm5-cp2(36)%cmps 64PNSystem,30304Kmem.free,6996KVUmem.free,Oprocs と 回 答 す る が,最 初 の ニ カ ラ ム か ら64プ ロ セ ッサ の パ ー テ ィ シ ョ ンで あ る こ と,ま た メ モ リが 一一つ の プ ロセ ッサ に つ い て あ と30304Kバ イ ト空 い て い る こ と を しめ す. 物 理 メ モ リ は32768KByteあ る の で,こ れ と30304Kバ イ トの 差 の 分 はPNの オ ペ レー テ ィン グ シ ス テ ム が 使 用 して い る.こ こ で 何 か プ ロ グ ラ ム を実 行 させ る と,ま ず そ の オ ブ ジ ェ ク ト コ ー ド20が 各PNに ロ ー ド さ れ る.こ れ で 各PNに お い て,例 え ば200Kbyteず つ 均 等 に メモ リが 消 費 さ れ る. そ の 後,ヒ ー プ,ス タ ッ ク な ど に メ モ リが ア ロ ケ ー ト さ れ,消 費 され て い く.こ の 時,特 にCMMDモ ー ド の 場 合,各PEご と に消 費 量 が 異 な っ て くる こ とが 考 え られ る が,こ うい う場 合 にcmpsが 返 す 値 は ど う代 表 さ れ る の か は不 明 で あ る. こ こ で,-vuモ ー ド で コ ンパ イ ル した コ ー ド の 場 合 は ヒ ー プ,ス タ ッ ク な どが 「ベ ク トル ヒー プ(VUH)」 「ベ ク トル ス タ ッ ク(VUS)」 な ど と して 使 用 され る が,こ れ ら は 四 基 の ベ ク トル ユ ニ ッ ト に対 して均 等 に確 保 さ れ,そ の 量 が 表 示 さ れ る.つ ま り,cmpsのVUH使 用 量 の 欄 に1000KByteと 表 示 さ れ た ら,実 際 に は 4000KByte使 用 さ れ て い る の で あ る. な お,こ うい っ た こ とはPNの オ ペ レー テ ィ ン グ シ ス テ ム のmallocシ ス テ ム コ ー ル に対 応 す る もの に よ っ て実 現 して い る わ け だ が,同 一 プ ロ セ ス の 実 行 が 続 い て い る 間 に こ れ を 開 放 して 再 利 用 す る とい っ た非 常 に 動 的 な メ モ リ の使 用 能 力 につ い て は未 知 で あ る. 第2に,処 理 に 要 す る 時 間 の 測 定 に つ い て,現 時 点 でCM-Fortranの タ イ マ に は い くつ か の 間 題 が あ る. 時 間 測 定 の 方 法 と して, 1.そ の プ ロ グ ラ ム の 外 部 の 正 確 と思 わ れ る時 計 を使 う.例 え ば,正 確 な タ イ マ を も つ ど こ か の プ ロ グ ラ ム に プ ロセ ス 間通 信 で キ ュ ー を 出 す,ま た は,画 面 を見 て い て ス ト ップ ウ ォッチ で は か る. 2.プ ロ グ ラ ム 全 体 の 所 要 時 間 を 教 え て く れ る よ う な 機 構 を 用 い る.例 え ば,timea.outと す る. 3.後 述 す るprismの 時 間 計 測 機 能 を使 用 す る. 4.cm.timer,print関i数 で,画 面 に タ イ マ の デ ー タ を 出 力 す る.

5.cm_timer」 ℃ad関 数 で,F・rtranの 変 数 に タ イ マ の デ ー タ を 代 入 す る.

きち ん と し た カ テ ゴ ラ イ ズ に な っ て い な い と感 じる だ ろ うが,プ ロ グ ラ ム 自 身 が 自 身 の 所 要 時 間 デ ー タ を知 る 手 段 がcm.timer」 ℃adだ け で あ る こ と に 注 目 して ほ しい.そ して現 時 点 で は こ の 関 数 は 時 々全 く理 屈 に合 わ な い よ う な デ ー タ を返 し て くる こ とが あ る. また,処 理 時 間 の 測 定 に お い て は,CM5の 並 列 部 で 動 くプ ロ セ ス は常 に そ の パ ー テ ィ シ ョ ンマ ネ ー ジ ャ で 動 くプ ロ セ ス を と もな う こ と を 思 い 出 し て ほ しい 。何 ら か の 原 因 でcm5-cp2に 過 負 荷 を か け る と,CM5全 体 が 影 響 を受 け る の で,並 列 部 の パ フ ォー マ ンス も変 化 して し ま う. 適 切 な 方 法 は 場 合 に よ っ て 異 な る の で 何 と も言 え な い が,プ ロ グ ラ ム の 性 能 評 価 の さい に は 種 々 の 問 題 が あ る の で 自分 が 何 を測 定 し よ う と して い る の か は っ き りさせ て お き,念 の た め 極 端 な条 件 下 や 繰 りか え し測 定 で の性 能 が 矛 盾 した もの で な い こ と を確 認 す る こ と をす す め た い, 20の ,PNで 実 行 さ れ る 部 分.cmmd-ld,cmjoinな ど の マ ニ ュ ア ル を 見 よ. \ …一一 一 醐 一噸噸 剛■■■■■■願 ■闘■ 圏■■■■■ ■■■

(24)

1.3デ バ ツ グ 1.3.1デ バ ッ グ の し か た 前 述 の よ う に,並 列 部 の プ ロ セ ス は 必 ずPMの 通 常 のUNIXの プ ロセ ス に付 随 して い て,基 本 的 な処 理 の 流 れ は こ の 通 常 のUNIXの プ ロ セ ス に従 う.し た が っ て,ソ ー ス に 変 数 の 書 き 出 しポ イ ン ト を つ け る よ う な古 典 的 なデ バ ッグ の 方 法 も可 能 だ し,CM-Fortranが 強 力 な 処 理 の 枠 組 み を 用 意 して い る た め,PEご と に ハ ー ドの 物 理 的 な構 造 を心 配 す る よ う な こ とは 滅 多 に な い が,21そ れ で も並 列 機 の デ バ ッグ は 困 難 で あ る. 多 少 の経 験 か ら,役 に 立 ち そ う な こ と を挙 げ て み よ う. プ ロ グ ラ ム が 実 行 時 エ ラ ー に よ っ て 終 了 し た とす る.こ の 時 に は つ ぎの 二 通 りの う ち ど ち らか の 事 態 が 起 こ る.前 者 の 例 は SegmentationFault(coredumped) と い っ た 感 じで 止 ま る.も う ひ と つ は, ***RTS-FATAL-IINIX:Floatingpointoperanderror Tracebackfollows: (Onlythefirstlocationisguaranteedtobevalid.) pc=Ox1361c_mont_,line899 pc=Ox135fc_mont_,line899 pc=Ox3460_MAIN_,line268 pc=ox22fgc_main_ Abort(coredumped) 1470.2u8.9s28:3186%0+968k35+446io114pf+Ow と い っ た風 に 止 ま る.こ の 場 合 に は 実 際 にMAINのline268か ら コ ー ル さ れ た サ ブ ル ー チ ンm・ntのline 899で 落 ち て い た.22後 者 の場 合 が ほ とん どだ が,止 ま っ た 場 所 を こ の よ う に指 示 し て くれ る の で,デ バ ッ グ に 大 変 有 効 で あ る.23 ま た,最 初 の 行 のFloatingpointoperanderr・rな ど,実 行 時 エ ラー と して 具 体 的 に何 が 起 こ っ た の か の 情 報 も提 供 さ れ るが,一 度,記 録 を残 して い な い の だ が,配 列 の 添 え字 の 範 囲 を超 過 し た 場 所 に ア ク セ ス し よ う と した 場 合 に, BadPNaddress. と い う よ う な メ ッ セ ー ジ が 返 っ て き た.24こ の 問 題 に な っ た 配 列 の ホ ー ム はCMだ っ た の で,配 列 の 範 囲 の 以 上 が 結 果 と し てPNの ア ド レ ス の 以 上 と し て 表 れ た の だ ろ う.と い う わ け で,言 っ て い る こ と は あ て に で き る の だ が,メ ッ セ ー ジ が 通 常 のUNIXマ シ ン と 多 少 変 わ っ た 表 現 を 使 っ て い る こ と が あ る. ま た,コ ア ダ ン プ が デ バ ッ グ に 利 用 で き る の は 並 列 部 で の 実 行 時 エ ラ ー で も 同 様 で あ る.並 列 部 で の エ ラ ー で はPNの 番 号 を 名 前 に 含 ん だ コ ア が,そ れ も 特 定 の い く つ か のPNに 対 し て 生 成 さ れ る.こ れ は 実 際 に エ ラ ー が そ のPNで 起 こ っ た こ と を 表 す と 考 え ら れ る.解 析 す る の に はpndbxを 使 用 す る の だ が,そ の 方 法 は よ く 実 験 し て い な い.ま た.こ れ ら コ ア の う ち 一・つ は 各 ノ ー ド か ら の 「エ ラ ー メ ッ セ ー ジ 」 例 え ば,PNO で は 異 常 な し,PN1で は 異 常 な し__.PN33で セ グ メ ン ト ・バ イ オ レ ー シ ョ ン.__と い う よ う な 全PN分 21た だ し これ が役 に立 た な くて ,と にか くど う して も落 ちて しま うとい う場 合 に は,配 列 の どこか の内容 に変 な値 が入 って い ないか, また宣言 した範 囲外 の変 な場 所 を アク セス して い ない か念 入 りに注 意す る こと,よ く調査 して ないが,こ れ らは不 可 解 な異常 終 了の最 大 の原 因 にな る よ うで あ る. 22た だ し こ うい うの の通例 と して,実 際 には エ ラーで あ りえな い よ うな行 を指示 して くれ る こ と も一度 あ った ので,注 意 が必 要 であ る. 23こ の両 者 の違 いが,エ ラー のあ る タ イプ を指摘 す るので は な いか と考 えて再 現性 が あ る よ うなエ ラー を含 ん だモ デ ルプ ロ グ ラム を作 ろ うと したが,う ま くいか なか った. 24こ の場合 も ,配列 の ア クセス の仕 方 にお け る特定 の パ ター ンの誤 りを指 示す る ので は ない か と考 え,再 現 性が あ る よ うなモ デ ルプ ログ ラム を作 ろ う と した が,失 敗 してい る. 一 一 ■■■■圏■■■■■■■■■

参照

関連したドキュメント

また,文献 [7] ではGDPの70%を占めるサービス業に おけるIT化を重点的に支援することについて提言して

  BCI は脳から得られる情報を利用して,思考によりコ

謝辞 SPPおよび中高生の科学部活動振興プログラムに

大きな要因として働いていることが見えてくるように思われるので 1はじめに 大江健三郎とテクノロジー

これは基礎論的研究に端を発しつつ、計算機科学寄りの論理学の中で発展してきたもので ある。広義の構成主義者は、哲学思想や基礎論的な立場に縛られず、それどころかいわゆ

指導をしている学校も見られた。たとえば中学校の家庭科の授業では、事前に3R(reduce, reuse, recycle)や5 R(refuse, reduce, reuse,

 学部生の頃、教育実習で当時東京で唯一手話を幼児期から用いていたろう学校に配

 学部生の頃、教育実習で当時東京で唯一手話を幼児期から用いていたろう学校に配