著者
菱沼 利彰 五十嵐 亮 寺村 俊紀 森田 直樹 井原 遊
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2021-HPC-180, no.3, pp.1-11, 2021-07-13

近年,プロセッサアーキテクチャの多様化が進んでいる.数値シミュレーションを様々なアーキテクチャで行うことを考えたとき,CPU では BLAS や LAPACK を用いれば密行列に対する演算が統一された API で利用できるが,アクセラレータでは多くの場合データ通信の制御や API の変更が必要になる.疎行列に対する演算は,一部のハードウェアベンダ製ライブラリが疎行列に対する演算を備えているが,全てのアーキテクチャで動作はせず,統一された API は定義されていない.著者らは,真に有用な線形代数ライブラリは実用されているすべてのアーキテクチャで動く必要があるとの考えから,各ベンダやライブラリのデータ型,行列格納形式,データ通信 API などを扱うための統一された API を定義し,すべてのアーキテクチャで動作する可搬性の高いオープンソースライブラリ monolish を提案する.本研究ではこの第一段階として,シングルノード,シングルデバイス向けに開発した提案ライブラリの性能を評価した.行列行列積,LU 分解,共役勾配法のプログラムを 8 つの環境で実行し,提案したライブラリを用いることですべての環境でプログラムを変更せずに動作する高性能かつ可搬性の高いプログラムを実現できることを示した.
著者
加藤 誠也 須田 礼仁 玉田 嘉紀
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012, no.5, pp.1-11, 2012-05-25

近年 GPU は計算能力において目覚しい発展を続けており,NVIDIA の CUDA C に代表される演算用の言語の導入などによって,科学技術計算分野において重要な役目を担うようになっている.その一方で,CUDA のプログラミングモデルである SIMT (Single Instruction Multiple Threads) の特徴として,ダイバージェンスと呼ばれる問題があり,GPU の実行率が低下するため,GPU は CPU に比べると条件分岐の影響を受けやすい.そのため,条件分岐の最適化がより重要になっている.本論文では,GPU のダイバージェンスを削減し,実行率を向上させるための手法として,動的割り付け・分岐統一化の 2 つの手法を提案する.動的割り付けは主にデータごとに長さの異なるループが実行されるカーネルに対して適用可能である.これは,CUDA におけるブロック単位でデータを割り当て,ブロック内で各スレッドに動的にデータを割り当てることで,各スレッドに割り当てられるデータの処理量を均等にし,GPU の実行率を高める手法である.分岐統一化はデータに応じた条件分岐によって処理の大半が分かれているカーネルに対して適用可能である.これは,各スレッドに複数のデータを割り当てて,ある分岐方向の処理を行う際に,各スレッドが自分の持つデータの中からその方向に分岐するデータを選んでそれに対して処理を行うようにすることで,各スレッドに各条件分岐の実行中に実行するデータがあるようにして,GPU の実行率を上げることができるという手法である.これらの手法の有効性は,サンプルコードを用いた実験によって確認した.Recently, GPUs have progressed tremendously in computational power. Thus, the role of GPUs has become important in the field of computational science with the introduction of programing languages for GPU computation such as NVIDIA CUDA C. On the other hand, a problem called branch divergence has appeared as the feature of the programming model of CUDA called SIMT (Single Instruction Multiple Threads). Because of this, GPUs are more likely to be affected by conditional branch instructions than CPUs. Therefore, optimization of conditional branch is very important on GPUs in order to utilize the entire computational power. This paper proposes two techniques for reducing branch divergence on GPUs. Dynamic work assignment is applicable when almost every part of the kernel is a loop whose number of iterations is different with respect to input data. This technique increases the GPU execution rate by assigning data to each CUDA block and assigning data to each thread dynamically in the block so that the amount of computation of each thread becomes equal to others in the block. Branch path unification is applicable when almost every part of the kernel executes the different branch path by a conditional branch depending on data. This technique increases the GPU execution rate by assigning multiple data to a thread and exchanging the order of data assigned to threads so that the same branch path is executed by as many threads as possible and all the branch paths are executed one after the other. The effectiveness of these techniques has been confirmed by the experiments with the sample codes.
著者
中澤 隆久 田浦 健次朗
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012-HPC-135, no.12, pp.1-7, 2012-07-25

昨今、並列性能の重要性が高まっているが、代表的なソートアルゴリズムであるクイックソートは逐次実行部分のクリティカルパスの長さのため、並列性能が高いとは言い難い。本研究では並列性能の高いソートの一つである bitonic sort を基盤として、その利点である並列性能の高さを維持しながら、実用においての欠点であるほぼソートされた列に対しての無駄な処理の削減を達成した鋸ソートを提案する。実験の結果、鋸ソートはランダム列に対しては bitonic sort と同等のスケーラビリティを持ち、ほぼソートされた列に対してはごく短い時間でのソートを実現した。
著者
一場 利幸 津金 佳祐 新井 正樹 田原 司睦
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2019-HPC-168, no.17, pp.1-5, 2019-02-26

近年,HPC 用途の ARM プロセッサが開発されており,注目が集まっている.そのため,AArch64 をターゲットとしたコンパイラの最適化機能の重要性が増している.しかし,コンパイラ基盤 LLVM の AArch64 向け最適化は,GCC に比べて不十分であることが報告されている.具体的な例の 1 つとして,LLVM は,GCC に比べて多くのスピルコードを挿入する.LLVM が生成したコードを分析すると,空いているレジスタがあるにも関わらず,スピルコードが挿入される場合があった.本研究では,LLVM で挿入される不要なスピルコードについて述べ,それらを削減する方法を提案する.これは,従来通りに LLVM のレジスタ割付けを行った後に,その結果を変更してスピルコードを削減する方法である.2 パターンの不要なスピルコードに対して,提案方法を NPB に適用した結果,パターン 1 については平均 1.25%,パターン 2 については平均 2.87% のスピルコードを削減できた.
著者
Mateusz Bysiek Mohamed Wahib Aleksandr Drozd Satoshi Matsuoka
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2018-HPC-165, no.38, pp.1-7, 2018-07-23

We present a method for accelerating the execution of Python programs. We rely on just-in-time automatic code translation and compilation with Python itself being used as a high-level intermediate representation. We also employ performance-oriented code transformations and compiler directives to achieve high performance portability while enabling end users to keep their codebase in pure Python. To evaluate our method, we implement an open-source transpilation framework with an easy-to-use interface that achieves performance better than state-of-the-art methods for accelerating Python.
著者
井上文雄 宇野篤也 塚本俊之 松下聡 末安史親 池田直樹 肥田元 庄司文由
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2014-HPC-146, no.4, pp.1-5, 2014-09-25

「京」 では現在,通常は小中規模のジョブ (36,864 ノード以下) を実行し,大規模ジョブ (36,865~82,944 ノード) は特定の期間 (以下,大規模ジョブ実行期間) に実行するという運用を行っている.通常の運用では 「京」 の消費電力は契約電力内に収まっているが,大規模ジョブ実行期間において契約電力を超過する事例が発生した.頻繁な契約電力の超過は電力契約の見直し等につながり,運用に及ぼす影響は無視できないものである.そこで,これを回避するために,投入予定の大規模ジョブを消費電力の観点で事前に審査することにした.すなわち,過去の動作実績等から推測した大規模ジョブ実行時の消費電力が運用上の上限を超えないことが確認されたジョブのみ投入を許可することにした.加えて,消費電力を 24 時間監視できる体制の構築,及び最大電力量を超過した際のジョブ停止プロセスの整備など運用方法の変更を実施した.本稿では,これらの対策と今後の取り組みについて報告する.
著者
平櫛貴章 高橋大介
出版者
一般社団法人情報処理学会
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013, no.12, pp.1-6, 2013-05-22

近年,様々な分野で巨大なグラフが出現しており,そのようなグラフを高速に処理する方法が必要となりつつある.また,GPU を搭載したクラスタシステムの台頭も著しく,Top500 ランキングにおいても複数の GPU クラスタが上位にランクインしている.しかし,LINPACK ベンチマークで示された性能に対して GPU クラスタのグラフ処理能力はあまり高いものとなっておらず,アルゴリズムの改善によるさらなる高速化が必要であると考えられる.そこで,本稿では GPU クラスタにおいて大規模なグラフの幅優先探索を高速化する手法を提案し,実装および評価を行った.その結果,GPU を利用することで CPU のみを用いた場合に比べてより高速に幅優先探索を行うことができることが分かった.
著者
遠藤 敏夫 額田 彰 松岡 聡
出版者
情報処理学会
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:18840930)
巻号頁・発行日
vol.2010, no.11, pp.1-6, 2010-12-09

Intel プロセッサに加え NVIDIA GPU を備え,2010 年 11 月に稼働開始したヘテロ型スパコンである TSUBAME 2.0 における Linpack ベンチマークの実行について報告する.本システムは 2CPU と 3GPU を備えた計算ノードを約 1400 台持ち,それらはフルバイセクションのファットツリー構造を持つ QDR InfiniBand ネットワークにより接続される.理論演算性能は TSUBAME 1.0 の約 30 倍となる 2.4PFlops であり,それを TSUBAME 1.0 とほぼ同じ規模の電力で実現している.Linpack ベンチマークのコード改良およびチューニングを GPU を用いた大規模システムの特性に合わせ行い,実行速度として 1.192PFlops を実現した.この結果は日本のスパコンとしては初めて PFlops を超えるものであり,Top500 スパコンランキングに 4 位にランクされた.We report Linpack benchmark results on the TSUBAME 2.0 supercomputer, a large scale heterogenous system with Intel processors and NVIDIA GPUs, operation of which has started in November 2010. The main part of this system consists of about 1400 compute nodes, each of which is equipped with two CPUs and three GPUs. The nodes are connected via full bisection fat tree network of QDR InfiniBand. The theoretical peak performance reaches 2.4PFlops, 30 times larger than that of the predesessor TSUBAME 1.0, while its power consumption is similar to TSUBAME 1.0. We conducted improvement and tuning of Linpack benchmark considering characteristics of large scale systems with GPUs, and achieved Linpack performance of 1.192PFlops. This is the first result that exceeds 1PFlops in Japan, and ranked as 4th in the latest Top500 supercomputer ranking.
著者
島田 明男 バリ ゲローフィ 堀 敦史 石川 裕
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012-HPC-135, no.3, pp.1-8, 2012-07-25

エクサスケールのスーパーコンピュータ実現に向けてメニーコアアーキテクチャが注目されている.メニーコア環境では,ノード内の計算処理の並列化が重要となる.本研究では,マルチプロセス型並列アプリケーションにおいて,低コストなプロセス間通信を実現するためのプロセスモデルとして,Partitioned Virtual Address Space (PVAS) を提案する.PVAS を用いることで,プロセス間通信で発生するコストを低減し,従来よりも効率的なノード内並列化を実現することができる.PVAS のプロセス間通信を利用する MPI 通信を実装し,評価したところ,通信のレイテンシとスループットを大幅に改善可能であることが分かり,本提案の有効性を確認することができた.
著者
坂本真貴人 藤井昭宏 田中輝雄
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013-HPC-138, no.6, pp.1-7, 2013-02-14

行列行列積を計算する DGEMM の性能は,さまざまな科学技術計算において重要である.DGEMM の高速化の手法の 1 つに Strassen のアルゴリズムがある.これは再帰的アルゴリズムであり,適用する回数を増やすことで計算量を O(N3) から O(Nlog7) まで削減することができる.しかし,計算機や行列サイズに合わせた適切な回数を選択しないと高速化できない.本研究では,Strassen のアルゴリズムを,自動チューニング機能付きの線形代数ライブラリである ATLAS をベースにして組み合わせた.そして,最適な適用回数を自動的に選択する機能をもつ行列行列積計算ライブラリを試作し,計算性能の評価を行った.実験の結果,さまざまな行列サイズで ATLAS 単体より高い性能を引き出すことができた.また,通常の方法に比べて誤差がどの程度になるか確認した.
著者
宇野篤也 庄司文由 横川三津夫
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012, no.22, pp.1-6, 2012-09-26

スーパーコンピュータ 「京」 や地球シミュレータなどの大規模システムでは,計算ノードのファイル I/O 性能を確保するために 2 階層のファイルシステムを採用しており,ジョブ実行の一連の作業としてファイルシステム間でファイルを移動させるファイルステージング機構をジョブスケジューリングに組み込んでいる.本稿では,ファイルステージングがジョブスケジューリングに与える影響等についてソフトウェアジョブシミュレータを用いて評価したので報告する.
著者
大辻弘貴 建部修見
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012, no.29, pp.1-6, 2012-12-06

大容量のデータ処理にあたって,高性能な共有ファイルシステムが求められている.共有ファイルシステムにおいては,アプリケーションはネットワークを介してデータアクセスを行うが,この部分がボトルネックになると十分にシステムの性能を発揮することが出来ない.従って,高性能なネットワークを効率よく使用する必要がある.そこで,ここでは, Infiniband に備わる RDMA (Remote Direct Memory Access) を用い,低オーバヘッドのファイルアクセスを行う.また,大容量データの保管にあたり,ストレージ領域を節約するための冗長記録についても評価を行った.さらに,冗長記録されたデータをストレージノードの負荷分散に用いる方法についても提案し,それを評価した.
著者
鷹津冬将 平賀弘平 建部修見 GabrielAntoniu
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013, no.22, pp.1-7, 2013-02-14

広域分散ファイルシステムでは,クライアントの場所にかかわらずファイルシステムにアクセスすることができる.しかしながら,既存の広域分散ファイルシステムは特定のメタデータサーバへのアクセスが必要であり,クライアントとメタデータサーバ間の遅延の大きさが性能を左右している.本稿では,拠点ごとにメタデータサーバ等を設置し,クライアントが行うすべてのオペレーションを拠点内で完結させる広域分散ファイルシステム BlobSeer-wan/HGMDS の設計・実装を行い,評価を行った.ひとつの拠点内における評価では,ほぼすべてのオペレーションについてクライアントが 8 ノードの場合の際に BlobSeer-wan/HGMDS が Gfarm に比べ高い性能を示した.特にファイルを作成しデータを書き込み同期を行う評価ではクライアントが 8 ノードの場合に Gfarm の性能の 10.9 倍の性能を示した.また,拠点間の遅延が大きい二つの拠点における評価においても,各拠点における性能差が小さいこと,及びクライアントのノード数に比例して BlobSeer-wan/HGMDS の性能が高くなることを示した.拠点ごとのクライアント数が 4 ノードの際における BlobSeer-wan/HGMDS の各拠点の結果の和の値は Gfarm のその値に比べ,Directory Creation で 2.5 倍,Fire Creation で 1.1 倍,Directory stat で 1.5 倍,File stat で 2.5 倍,File removal で 3.7 倍の値を示した.
著者
鴨志田 良和
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012-HPC-135, no.20, pp.1-6, 2012-07-25

本稿はクロスコンパイルされた実行ファイルとそうでない実行ファイルを判定する機構と,execve システムコールをフックし,クロスコンパイルされた実行ファイルを実行しようとすると,自動的にリモートホストへ実行を転送する機構を有する TLDT というツールを提案する.TLDT を利用することにより,ローカルホストから通常の実行ファイルとリモートホスト向けの実行ファイルが透過的に実行可能になるため,ATLAS を始めとするインストール時自動チューニングを行うソフトウェアなど,クロスコンパイル環境でのビルドが困難なソフトウェアを容易にビルドできるようになる.
著者
佐藤 仁 小西 史一 山本 泰智 高木 利久 松岡 聡
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2009-HPC-123, no.6, pp.1-7, 2009-11-23

TSUBAME 上で Hadoop を実行するためのツール 「Tsudoop」 を開発した.Tsudoop は,既存システムの構成や運用方針の変更をすることなく,TSUBAME 上のジョブスケジューラである n1ge や Lustre ファイルシステムなどと協調して動作して Hadoop 実行環境を構築し,ユーザの MapReduce アプリケーションを実行する.予備実験として,このツールを用いて,生物医学系の学術論文を対象にした書籍情報データベースである MEDLINE に対してテキストの全文検索を行うアプリケーションを実行した.その結果,1 ノード (16 コア) での実行と 32 ノード (512 コア) での実行とを比較して 14 倍の性能向上を示し,TSUBAME のような高速な共有ファイルシステムやジョブスケジューラが存在するような計算環境でも,MapReduce アプリケーションの実行が可能なことを確認した.
著者
大島聡史 金子勇 片桐孝洋
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013-HPC-140, no.33, pp.1-8, 2013-07-24

本稿では最新のメニーコアプロセッサ Xeon Phi(以下,Phi) の疎行列ベクトル積演算性能について述べる.Phi は高い演算性能およびメモリ転送性能を備えたハードウェアであり,様々なアプリケーションへの適用について盛んに研究が行われている.また Phi はその性能を従来の CPU 同様のプログラミング手法によって活用できることが重要な特徴・利点としてあげられているものの,実際にはアーキテクチャの特性にあわせた最適化の余地が多く存在することが知られている.一方で Phi はアーキテクチャとしても製品としても新しいものであるため,性能を十分に引き出すための知識や技術のさらなる共有が必要である.本稿では疎行列ベクトル積を対象としてPhiの性能を測定し,他の並列計算ハードウェアと性能を比較して性能評価を行う.なお本稿では Phi として先行提供版の Preproduction Xeon Phi を用いている.
著者
石坂 一久 大野 善之 Sourav Saha 大道 修 小寺 雅司 荒木 拓也
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21888841)
巻号頁・発行日
vol.2022-HPC-187, no.9, pp.1-6, 2022-11-24

データフレームコンパイラを搭載し利便性と高速性の両方を実現するデータフレーム用 Python ライブラリ Ducks を紹介する.データフレームは,github で 35K star を誇る Pandas に代表されるように,データ分析や前処理に広く用いられているが,データ量の増大や分析の複雑化により高速化が求められている.Ducks は HPC で培われてきた実行時コンパイル技術を用いることで,ライブラリ呼び出しを直接実行するのではなく,データフーム用の中間言語(IR)を生成して遅延実行を行う方式を採用している.これにより API とその実行を分離し,Pandas 互換の API を提供しながら,IR 上でのドメイン特化の最適化,ターゲットプラットフォームに最適化されたバックエンドによる IR 実行により高速性も実現する.ベンチマーク集である TPCx-BB,TPC-H に含まれる 45 種類のデータ前処理・分析処理を用いた CPU 上での評価では,ライブラリを選択する impor t文の変更のみで,Pandas に対して最大 17 倍,平均 5.8 倍の性能向上を得ることができ,本方式の有効性を確認した.
著者
松尾 勇気 石川 裕
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2014-HPC-143, no.4, pp.1-4, 2014-02-24

時間発展シミュレーションは定期的に計算結果を出力するため、巨大なデータが生成される。そのデータサイズを縮小するため、データ圧縮技術が使われているが、ある時間ステップにおいて書き出すデータの隣接する値の類似性を活用している。本研究では、予測器に基づいた既存の高速な浮動小数点圧縮アルゴリズムを基にした時系列データ圧縮器 t-FPC を提案する。圧縮率を向上させるため、1 つの時間ステップに出力される中間データを、同一の時間ステップのデータ内部のものではなく、最近の複数の時間ステップで出力されたデータ間の差分を用いて圧縮を行う点でそれとは異なる。さらに、書き出す差分データ全体の bit 長の分布から可変サイズでデータを書き出すことにより圧縮率を向上する。また、連続して同じ値の場合、時間ステップの出力が全て同じ値の場合には、特別なエンコーディングをすることにより、圧縮率をさらに向上させる。時間発展シミュレーションである SCALE 気象・気候モデルの実際のファイル出力データを用いた評価により、t-FPC は、既存の浮動小数点データ専用の圧縮器や一般のデータ圧縮器に比べて、圧縮率や処理スループットの観点において、良い性能を達成していることを示す。
著者
平山 弘
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2014-HPC-143, no.22, pp.1-7, 2014-02-24

倍精度浮動小数点数を 2 個で表現できる 4 倍精度数用の演算ルーチンを作成した。これらの数値の入出力にために C++ 言語で作成した多倍長演算ルーチンを利用した。このプログラムを使うことによって、通常 4 倍精度を持たない C++ 言語に 4 倍精度の演算機能を持たせることができる。この演算ルーチンでは、四則演算だけでなく、絶対値、整数部、指数対数関数、三角関数およびその逆関数、双曲関数およびその逆関数を準備した。このライブラリを利用することによって、既存の C++ 言語のプログラムを容易に 4 倍精度プログラムに変換することができる。多くのプログラムを高精度で計算出来る。
著者
小田嶋哲哉 李珍泌 朴泰祐 佐藤三久 塙敏博 児玉祐悦 RaymondNamyst SamuelThibault OlivierAumage
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013-HPC-138, no.25, pp.1-9, 2013-02-14

GPU クラスタ上でのプログラミングは,様々なプログラミングモデルが直交しており,複雑になってしまうことが多い.本稿では,分散メモリ環境向け高水準並列プログラミング言語である XMP を GPU クラスタ等のアクセラレータを持つ並列計算機向けに拡張した言語仕様 XMP-dev において,GPU と CPU によるハイブリッド協調計算を実現する XMP-dev/StarPU を提案,実装を行った.XMP-dev は,ノード間通信をベースとし,データの分散や GPU へのオフローディングが可能な並列言語である.しかし,CPU を計算リソースとして GPU と並行して用いるには複雑なプログラミングが必要である.これに対し,StarPU をバックエンドのスケジューラとすることで,計算をタスクという単位で GPU や CPU へスケジューリングすることによりワークシェアリングが可能になる.本稿では,実際のアプリケーションに XMP-dev/StarPU を適用することで,GPU のみを計算に利用するときよりも 1.1~1.2 倍ほどの高速化が可能であることを示した.また,指示文ベースのプログラミングモデルである XMP-dev/StarPU は,通常のプログラミングよりもコストが大幅に削減できることも示した.