RISTニュース No．
５９（２０１５）

新ベンチマクソフトウェアのスパコンピュタ
6京7
上での性能改善      


理化学研究所計算科学研究機構 運用技術部門
熊畑清、南一生
世界で最も高速なコンピュータシステムの上位５００位までを定期的にランク付けし、評価するプロジェクトとして
５００がある。
５００プロジェクトは、１９９３年に発足したが、そこで用いられているベンチマークプログラムが浮動小数点演算性能の評価に重きを置いているために、近年ではベンチマーク結果で示された性能と、実際のアプリケーションを実行した際の性能の乖離が指摘されるようになってきた。そこで
５００プロジェクトの提唱者である

博士より、実アプリケーションで使われる計算手法の性能評価に重きを置い
ベンチマー   


たベンチマークプログラムとして



０
１４年１２月に開催された
１４において、日本の「京」を含む世界のトップククが提案された。２
ラスのスーパーコンピュータのベンチマーク結果のランキングが発表され「京」は２位となった。本稿では我々が行った、「京」上でのベンチマークへの取り組みについて報告する。
タの性能が発表された際に、「京」は世１．はじめに世界中のスーパーコンピュータの性能をラ界２位にランクされた。本稿では我々が行っンキングする
５００プロジェクトで用いらた、「京」上でのベンチマークへの性能れるベンチマークは長年にわたり改善の取り組みについて報告する。

スーパーコンピュータの性能指標として使わ２．

れてきたが、本ベンチマークは浮動小数点演算性能の評価に特化しているため、通信性能

は有限要素法などの実用アプリケーやメモリ性能などの重要な特性が測定結果にションで頻出する疎で対称な係数行列を持つ反映されにくく、結果として、近年では実際連立一次方程式を、ガウス・ザイデル法をスのアプリケーションを実行した際の性能指標ムーサーとして用いたマルチグリッド法前処としては適切ではないという声がある。そこ

理付き共役勾配法［２］で解く際の性能を測で
５００プ ロ ジ ェ ク ト の 提 唱 者 で あ る定するベンチマークである。



博士により、新しいベンチマーク
プ ロ グ ラ ム と し て





計算科学的な特長から言うとは疎行列・ベクトル積であり、アプリケーションがベ ン チ マ ー ク（以 下要求する
値が大きいタイプの計算となる）が提唱された［１］。我々は「京」の単体性能が出しにくいアプリケため、性能の評価と改善を行っており、そのーションである。また、ベクトルへのアクセ

結果、２０１
４年１１月に開催された
１
４におい

スがリスト値を介した不連続なアクセスとなて世界のトップクラスのスーパーコンピューるため、通常の要求値が大きいアプリケ−−RISTニュース No．
５９（２０１５）ーションよりさらに性能を出しにくい。この行時間が必要であるが、ここではパラメータ意味では要求値が小さいとはファイルを書き換えて測定時間を１０分間とし対極にあるベンチマークプログラムであるとた。また、この際コンパイルオプションとし言える。ては「京」
で典型的に用いられる推奨オプショ

プログラムとしてのの実行は、①パンである






を用いた。これ

ラメータに応じたサイズの行列生成、②行列により化やソフトウェアパイプライニデータの最適化、③最適化の検証、④測定、ングなどのコンパイラによる自動最適化と、⑤結果出力の５つのフェーズに大別することによるマルチスレッド化が適用さが出来る。②の行列データの最適化フェーズれる。

はデフォルトの状態ではなにも実行せず、ユーザが独自に実装する。③の最適化の検証
フェーズは②でユーザが行った行列データの最適化が正当であるかを検証する。④ではを複数回実行しその時間を測定するのであるが、複数回実行する前に１回だけ実行した際の時間から、複数回実行に要する時間がパラメータファイルで指定した時間以上となるように実行回数を動的に決定する。正式には実行時間が１時間を超える必要がある。⑤
図１ 「京」上でのオリジナルコードのスケーラビリティ（赤丸は３２７６８プロセスで約９５００）では③の検証結果や、④の測定結果を結果提出用のファイルに出力する。
性能チューニングに際して手を加えて良いのは③の最適化フェーズと、④で呼ばれる関数及び行列・ベクトル積や、内積、マル測定結果を図１に示す。図中横軸は利用しチグリッド前処理でスムーサーとして用いるた数（１プロセス当たり１利用）、ガウス・ザイデル関数などに限定されており、縦軸はの最終出力ファイルに記載されなおかつ数値解法自体の変更や、特定の行列た値である。一見して判るとおりデータに特化したチューニングは行えない。

非常によいスケーラビリティが得られており、並 列 化 効 率 は１００％ に 近 い。そ れ ゆ え

３．
「京」上での性能評価とチューニング方針

我々は並列性能に関するチューニングは必要コードの「京」上での特性を把握し、ないと判断した。一方で値は低く、性能チューニングの方針を決めるために、初各利用時のピークに対する効めに何も手を加えていないオリジナルコード率はいずれの場合も０．
２３％弱であったためを「京」上で実行し性能評価を行った。

単体性能のチューニングが必要である

まず初めに１プロセス当たりの問題サイズことは明白である。

を固定にしたまま並列プロセス数を増やす

次いで単体性能のチューニングのため、プ

ウィークスケーリング測定により並列性能のロファイラを用いてホットスポットの調査を

３

調査を１プロセス当たりの問題サイズを１２８行った。

として行った。前述したとおり測定に際し結なお測定条件はウィークスケール測定時と果を正式に提出するためには最低１時間の実同様である。の全実行時間に対する、各−−RISTニュース No．
５９（２０１５）

下位処理の実行時間が占める割合を図２に示

２５６本の倍精度浮動小数点レジスタを備える。

す。これによると全実行時間の約９８％程度が命令により一度に２つの積和演算器を二つの処理で占められていることが判る。

同時に動作させることができ２つの命

ここで 
 は疎行列ベ令を同時に発効可能なためコア当たりクロッ

ク ト ル 積（以 下）で あ り、クサイクル毎に８個の浮動小数点演算が可能




 はマルチグリッド前である。よって全体で１２８の性処理のスムーサーとして用いる対称ガウス・能を持つ。理論メモリバンド幅は６４
でザイデル法（以下）である。これらある。

２つのルーチンは計算のみを行うものであ５．メモリ配置の改善る。ま た、各 ル ー チ ン 名 に 付 い て い る サ
 は参照実装であることをとは共に処理としては疎行示しており、ユーザはこれらを書き換えて性列とベクトルの積を実行するものであり、行能チューニングを行う。

列データが頻繁にアクセスされる。でフィックス

は行列データを疎行列の格納形式の一つである形式で保持しているが、各行の非ゼロ値と非ゼロ値の列番号を保持する配列のメモリを確保するに際して、各行ごとに動的メモリ確保を行っている。そのため、メモリ空間上では図３に示すように各行の情報が連続して配置されず、及びの処理時には処理が次の行に移るごとに不連続なメモリアクセスが発生する。
図２

実行中の各下位処理の時間分布

我々はこれら２種の処理に対し、メモリ配置の改善、データアクセス順序の改善、マルチスレッド化、ループ最適化などを施し性能

図３ メモリ空間の不連続性
各行ごとの情報が連続していない（
は非ゼロ値、
は非ゼロ値の列番号を保持する）改善を試みた。
４．「京」の概要
ここでは単体性能チューニングに際して「京」のについて述べる。
「京」の

また、
「京」ではメモリからのデータ転送は１個の計算ノードは、１個の，１６の

１２８
のキャッシュライン単位で行われるメモリ、計算ノード間のデータ転送を行うイが、このような不連続なメモリ配置ではメモンターコネクト用（  

リアクセスが不連続になるという問題以外に）で構成されている。は、８も、各行の非ゼロ値の情報を保持する配列のつのプロセッサコア、コア共有の６の２サイズが１２８の整数倍でない際には余計次キャッシュメモリ、メモリ制御ユニットかなデータ転送が発生してメモリバンド幅を消らなる。各コアはラインサイズ１２８で２費するという問題も生ずる。そこで我々は行構 成 の３２の１ デ ー タ キ ャ ッ シ ュ、

列データの格納に必要なメモリを一括して確−−RISTニュース No．
５９（２０１５）６．データアクセス順序の改善保するよう実装を変更した。これによりメモリ配置は連続となった。

マルチグリッド法のスムーサーとして用いメモリ配置改善前後の実行時間の比較

る 対 称 ガ ウ ス・ザ イ デ ル 法 の 処 理 で あ るを図４に示す。ここでコンパイル条件はウィには前進ループと後退ループの２つークスケーリング測定時と同様である。実行のループが含まれる。図５にの後退

条件は１プロセス当たりの問題サイズは同じ

ループのソース概要を示す。

３

１２８とし、実行プロセス数は８プロセスとした。また、２節で述べたようにの実行回数は初めに１回だけを実行した際の時間から、全実行時間がパラメータファイルで指定された実行時間を超えるように実行回数を動的に決定している。そのためチューニングに伴い１回当たりの実行時間が短縮されると、実行回数が増加してしまい、チューニング前後での比較が難しくなる。よってこれ以降の実行回数は５回に固定している。
図５

の後退ループのソース例

この実装中では後退ループであるため外側ループの回転方向は逆方向であるのに対して、内側ループの回転方向は順方向となっている。そのため外側ループ
が次の回転に移った際に、内側ループで最初にアクセスするメモリアドレスはキャッシュに乗っていない可能性が高い。図６は外側ループの回
図４

転が
１００から９９に移った際のメモリ空間メモリ連続化の効果の模式図であるが、内側ループが０でアクメモリ配置の連続化により５回分の実セ ス す る 位 置 は 図 中の 位 置 で あ る た め

行 時 間 は３９．
１％ 短 縮 さ れ た。最 終 的 なキャッシュに乗っている可能性が低いことが値 は２．
３２（８利 用 時判る。しかし内側ループの実行順序に制約の 演 算 性 能１０２４の０．
２２６％）か らが無いため内側ループの回転方向を外側ル３８２（同０．
３７３％）へと向上した。

ープと同じにしてやることで、外側ループ

このときのメモリスループットはでが次の回転に移った際に、内側ループ
が最１９
０２、で は２２９
であった

初に触るアドレスは、直前にアクセスしたアが、ベンチマークで測定した「京」ドレスの近隣となり、キャッシュに乗っていの実効メモリスループットは４６．
６である可能性が高くなる。

ることから、性能向上の余地をまだかなり残していると言える。
−−

RISTニュース No．
５９（２０１５）

ラ指示子の挿入などにより簡単にマルチスレッド化することができない。一方で内側ループにはデータ依存性がないためマルチスレッド化できるが、扱っている行列が疎行列
図６であるため、多くの場合内側ループの回転の後退ループでのアクセス順序数は小さく、そのためマルチスレッド化の効の後退ループにおいて最内ループ果はない。これはの前進ループにつの回転方向を反転した後の実行時間の比いても同様である。

較を図７に示す。反転により５回分の実のループにマルチスレッド化を適

行時間は２％ほどしか改善しなかった。最終用するためにはデータ依存性を除去するしか的な値は、３．
８２（０．
３７３％）無く、ここではデータ依存性除去のため、単から３８９（０．
３８０％）にとどまった。

純なカラーリングと、データをブロック化した後カラーリングする手法を検討した。
７．
１．単純なカラーリング
ここで言う単純なカラーリングとは、データ依存性のある計算対象、すなわちここでは行列の各行に対しそれぞれ異なるカラーを割り当て、同じカラーを割り当てられた行にはデータ依存性がないようにする手法である。
同じカラーの行にはデータ依存性が無いた

図７

め、マルチスレッドで処理することが出来

ループ回転方向反転の効果

る。ここでは図８に示すように行列の行間のしかしループ方向反転には全く改善の効果

隣接関係を、行は節点、隣接関係は辺としてが無いかと言えばそうではなく、メモリスル表すメッシュ構造として捉え、隣接する節点ープットの観点ではの後退ループはに異なるカラーを付している。

２．
２９

から２．
６０
へと向上した。これ

さらにメモリアクセスが連続となるようには外側ループの回転による参照メモリアク同じカラー内で行の番号が連続となるよう並セスの移動が連続的になったためプリフェッべ替え、最終的にはメモリ配置が連続となるチがうまく働くようになったためと思われよう並べ替える必要がある。

る。この改変は、原理的に副作用がなく、ある程度は確実に効果があることから、実行時間の削減という観点では大きな効果がなかったもののこれ以降も採用している。
７．マルチスレッド化
図５を見るとの後退ループでは、内側ループ
中では参照され、外側ループ
で図８は更新されるベクトルについてのデータ依存性があるため、外側ループ
はコンパイ−−

単純なカラーリング模式図

RISTニュース No．
５９（２０１５）

図９はカラーリングに対応したメモリ配置

るためコンパイラ指示子の挿入によりマルチの、並べ替えを示している。図中１、ス レ ッ ド 化 す る こ と が で き る。図１０に は


２、…
と示されている矩形が行の後退ループの例を示しているが、列のある１行分の情報を保持する連続メモリの前進ループも同様である。

領域を示しており、行列中で最も多くの非ゼ単純なカラーリングを行った際の実行

ロを持つ行での非ゼロ個数をとすると、全時間の比較を図１１に示す。カラーリングによての行で非ゼロ値の情報を保持する配列はりがマルチスレッド実行可能となっ個の
、非ゼロ列番号は個のからたため、５回分の実行時間はループ方向なる。図の中段に示すようにカラーリングにの 反 転 か ら５７．
３％ 短 縮 さ れ た。最 終 的 なより各行にそれぞれのカラーがつけられた状値は３．
８９（０．
３８０％）から態を考える。データ依存性のない集合である

８．
６２（０．
８４％）へと向上した。時間赤について処理を行うと、処理する行はの短縮と、値の向上とが一致してい１、

３、
６、…となり、行の番号ないが、これはが値を計算すすなわちメモリ配置が不連続となる。そこでる方法に起因する差異である。

メモリ空間上で同じカラーの行が連続するようにソートする。図では
１を
１の位置に、

３を
２の位置に、
６を
３の位置になるようなソートをして図の下段に示すように各カラーの行が連続したメモリ配置が得ている。これらの処理を２節で述べたユーザ定義の行列データ最適化に実装した。

図１０ 単純なカラーリングに対応したソース
コード例

図９

カラーリングに対応したメモリ並べ替え

これに対応して、ソースコードにはこれまで外側ループだったループの外側にさらにカラーを赤、緑、青、黄などの順番で動かす

図１１ 単純なカラーリングの効果

ループを追加し、ループの回転範囲をカラーに応じたものとなるよう変更する。これによりループ
は同じカラー中の行、すなわちでは２つの方法で値を計データ依存性のない行を処理するループとな算している。一つは問題サイズから理論的に−−RISTニュース No．
５９（２０１５）導かれる演算量を実際の実行時間で割っないループの並列化に効果があった。

たものであり、もう一つは理論的に導かれる

この手法でもまず、７．
２節のカラーリング演算量を、実行時間と、ユーザ定義の行列手法と同様に行列と等価なメッシュ構造を想データ最適化に要した時間に重み係数０１と定する。次いで図１２に示すように、メッシュ実行回数を乗じた時間との合計で割ってを複数のブロックへと分割する。ここで各ブ

算 出 し た も の で あ り、最 終 的 に 提 出 す る

ロックには可能な限り等しい数の節点、すな値としてはこちらが採用される。

わち行が含まれるようにしておく。カラーリ

これまではユーザ定義の行列データ最適化はングは各節点ではなくこのブロックに対して何も実装していなかったためその時間は０秒行う。当然ここでもメモリ配置を連続的にすであったが、ここではカラーリングとそれにるため、前述の手法と同様に、メモリ上で行付随する並べ替え処理を実装したため、最適データの並べ替えを行い、行データを各ブ化時間に約１９秒を要し、結果、実行時間のロック中で連続にする。従って、同じカラー短縮量と、値の向上量が一致しなくに属するブロック間にはデータ依存性がないな っ た。の 実 行 時 間 だ け か ら 算 出 し たので、図１３に示すように、各ブロックをマル値は９．
０９（０．
８８％）である。

チスレッドで処理することができる。一方の後退ループのメモリスループッ

で、あるブロック内の行群にはデータ依存性

トは２．
６０から９．
３４へと向上したが、があるため行をマルチスレッドで処理するこ「京」の実効メモリスループット４６．
６
ととはできない。

比べるとまだ相当に低く、また１スレッド実行から８スレッド実行になったにも関わらず実行時間は約１５５秒から約５２秒と、約６６％しか向上していない。または当初よりマルチスレッド化されているためこの段階ではソースには手を加えていないにもかかわらず、カラーリング及び並び替えの副作用でキャッシュミス率がＬ１データキャッシュで図１２ ブロック化カラー模式図

１４．
８５％から２６．
３３％へ大きく悪化し、その結果実行時間が１０．
９７秒から２４．
７１秒に劣化した。これはオリジナルコードの１８．
１２秒よりも遅く問題である。
７．
２． ブロック化カラーリング
この副作用を避けるために我々は図８に示

図１３ ブロックに対するスレッド割り当てしたメッシュ構造で近隣の節点をある程度の大きさのブロックへと分割し、ブロックをカラーリングする手法［３］［４］を採用した。

これに対応して、ソースコードにはこれまこの手法は我々が過去に行った有限要素法にで外側ループだったループ
の内側に、さらよる汎用流体シミュレーションコードに対すに、同じカラー内のブロックを動かすループ

るチューニングにおいて、と同様に
を追加し、スレッド並列化のためのコンパデータ依存性があるため単純には並列化できイラ指示子はループに挿入する。図１４には−−

RISTニュース No．
５９（２０１５）

の後退ループの例を示しているが、の前進ループも同様である。

図１５ ブロック化カラーリングの効果

単純なカラーリング適用時には副作用により性能劣化してしまったについては、

図１４ ブロック化カラーリングに対応したソースコード例

ブロック化カラーリングによりＬ１データキャッシュミス率が２６．
３３％から４．
７７％に低 このブロック化カラーリングでは、ある減した。実行時間は２４．
７１秒から５．
８９秒へと一つのブロックに含まれる行は、ブロックの短縮した。

境界面にあるものを除いて、同じブロック中の後退ループの実行時間は単純カの行とだけデータ依存性があり、かつ同じブラーリングの５１．
７５秒から１３．
４９秒へと短縮しロック中ではメモリ上で連続的に配置していた。これはカラーリング適用前の１５５．
４７秒のるため、ベクトルの各成分へのアクセスがおよそ１１１以下であり、実行スレッド数が時間的にも空間的にも局所的になり、キャッ１から８になった以上の効果が出ているが、シュの利用効率が良くなるという長所があカラーリング適用前と比してＬ１データる。

キャッシュミス率は２８．
３４％から５．
３４％に低ブロック化カラーリング適用前後の実減しており、先に述べたようなブロック化カ行時間の比較を図１５に示す。

ラーリングが持つメモリアクセスの局所化のここでは１ブロックが含む行数はおよそ効果によるものである。

１０００とした。ブロック化カラーリングによりメモリスループットの観点ではは

５回分の実行時間は７２．
１％短縮され、最３６．
６９、後退ループは３１．
９６

終的な値は８．
６２（０．
８４％）となっており、性能向上の余地があると考えから３１．
３７ （３．
０６％）に向上した。

られる。

の実行時間のみから算出した値は３３．
２９（３．
２５％）である。

８．ループ最適化
、ともにメモリスループットの観点ではまだ性能向上の余地があるた
め、さらなる最適化を試みた。図１６はのソースの概要であるが、二つの問題、非ゼロ値への参照経路の複雑さと、内側ループの短さがあることが判る。

−−

RISTニュース No．
５９（２０１５）により自動的にソフトウェアパイプラインが適用されている。ループの回転数
は行によって異なるが、中で測定のために生成される行列は最大でも２７回転と小さい。
に限らず有限要素法などの係数行列は疎行列であり行が持つ非ゼロ値の数は小さい
図１６ ソース

ことが多く、このようにループ回転数が小さい場合のソフトウェアパイプラインは効果がまず、非ゼロ値への参照経路の複雑さであ小さい。この場合の改善策としてはループるが、この実装では、ある行の非ゼロ値の情の回転数を２７に固定し、ループをアンロー

報（値と列番号）を得るには、行列の構造体ルすれば良い。ただし回転数をで生成のメンバであるポインタ配列から各行の非される行列に特化した最大２７回転に固定する

ゼロ値の情報を保持する配列の先頭ポインタ

ことは、２節で述べた「特定の行列データにを取得し、そのポインタから非ゼロ値の情報特化したチューニングをしてはならない」とを得るという流れになり複雑である。なぜ一いうルールに抵触する可能性がある。この問

旦ポインタ配列を介すのかというと、オリジ題を解決するために我々は、さまざまな回転ナルのでは５節で述べたように、各行数に特化した複数のループを用意し、の非ゼロ値の情報を保持する配列は行ごとに行列に応じてどのループを通るかを実メモリ空間上で不連続に配置されているため行時に動的に切り替える方式を採用した。こである（図１７上段）。しかし５節のチューニンの手法は我々が過去に行った有限要素法によグにより、各行の非ゼロ値の情報を保持する

る汎用流体シミュレーションコードに対する配列はメモリ空間上で連続的に配置されるよ

チューニングにおいて採用した手法であり、うになっており、また行列の保持形式が汎用コードのように様々な入力データを扱う形式であること、つまり各行の非ゼロ値の情必要がある場合に有用である。この改善より報を保持する配列の長さは全ての行で一定でループ
がフルアンロールされ、結果ソフトあるため、ポインタ配列を介さずとも各行のウェアパイプラインは充分に回転数がある上非ゼロ情報の配列にアクセスすることができ

位ループに適用されるようになった。ここる（図１７下段）。

で我々はループのアンロールについても検討し２展開することとした。
図１８にループについて上記の改善を適用したソースコード例を示すがに関しても同様である。

図１７ 複雑なアクセス経路とその改善

次に内側ループの短さであるが、内側ループ
は回転するループであり、コンパイラ−−RISTニュース No．
５９（２０１５）（４．
０２％）を 得 た。こ の 値 は２０１
４年 ６ 月 の
１４で発表されたのプレランキング
では中国の

‐２の０．
５８に続いて２位にランクされた。
１４に向けて、我々はさらにパラメータ最適化と、ユーザ定義の行列データ最適化部の改善を行った。
パラメータ最適化として７節で述べたブロック化カラーリングの１ブロック当たりの行数を調節して、最終的にブロック当たり約２６２５行となるように調節した。
次いでユーザ定義の行列データの最適化部の改善であるが、７節で述べたように

図１８ 改善後ループ例

では最終的に提出する値は、実ループ最適化を行う前後の実行時間の行時間と、ユーザ定義の行列データ最適化に比較を図１９に示す。ループ最適化により、要した時間に重み係数０．
１と実行回数を乗５回当たりの実行時間はおよそ２９．
９％改じた時間との合計で割って算出したものであ

善 さ れ た。最 終 的 な値 はるため、ユーザ定義の行列データ最適化時間

３１．
３７（３．
０６％）から４４．
０１を短縮することが重要である。我々は最適化（４．
２９％）まで向上した。

部分の実装をリファインすることで最適化にの実行時間のみから算出した

要する時間を３．
８８秒から１．
３９秒へと短縮し値は４７．
４９（４．
６３％）である。メモた。

リ ス ル ー プ ッ ト の 観 点 で は、はこの時点で「京」フルノード８２，９４４ノード

ベ ン チ マ ー ク に よ る 測 定 値を用いた測定を行った結果、０．
４６１

４６．
６

を超える４７．
８５
、の後（４．
３４％）を得た。表１に２０１
４年１１月の
１４

退ループは４４．
３８
と充分な値が出た。

で発表されたランキングの上位５つのスーパーコンピュータとその性能を示
１４でのす。このランキングでは「京」はランキングと同様に２位にランクされた。
表１

図１９ ループ最適化の効果

９．その他最適化と最終測定結果
この時点で「京」フルノード８２，９４４ノードを用いた測定を行った結果、０．
４２７
−−でのランキング上位５件

RISTニュース No．
５９（２０１５）

［３］






１０．むすび「京」の結果は   
 ２０１２ （）の性能では「京」よりも  

高 い ア メ リ カ のの０．
３２２よ り
 


も上位であり、また、による値    
に 対 す るに よ る値 の 比 率 が






４．
４％と他のスーパーコンピュータよりも高 

 いことから「京」の性能をよく引き出せてい





２６



 
 

２０１２


［４］
 ると言えるであろう。

      本稿で述べたチューニングによって「京」上でのの性能はおよそ１９．
５倍に向上し

た。コードの要求メモリバンド幅から推定す




 


る方法［５］によって、主要ループである





との「京」上での理論的な性


２０１３


能上限を推察すると５．
７２％および６．
８７％とな
１０
１０１６




２０１３
０５
４２７























 １８



２４９６
２４９９


るが、我々のチューニングでは５．
４２％および［５］南一生，井上俊介，堤重信，前田拓人，

６．
１３％が得られており、ほぼ性能上限に達し

長谷川幸弘，黒田明義，寺井優晃，横ていると考えられる。

川三津夫，「京」コンピュータにおける疎行列とベクトル積の性能チューニン

参考文献［１］
 

グと性能評価，２０
１
２年ハイパフォーマ ンスコンピューティングと計算科学シ    


ンポジウム講演論文集，．
２
３−３１，    （２０１２）．

 １３
５００




２０１３

［２］建部修見，小柳義夫，マルチグリッド
前処理付き共役勾配法，情報処理学会
研究報告ハイパフォーマンスコンピュ
．
６６，．
９−１ー テ ィ ン グ，６，
（１９９２）．

−−