著者
中村 晃一 野瀬 貴史 稲葉 真理 平木 敬
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2011-HPC-130, no.63, pp.1-10, 2011-07-20

高性能計算分野では他の分野では使われる事の少なくなってきた Fortran・C 言語が使われ続けている.これらの言語はその生産性の低さと並列計算機向けの最適化の困難さが問題であり,高級なプログラミング言語を使用可能とする事は今後の重要な研究課題である.その様な目的の研究では並列構文を備えた専用の言語の研究・静的型付けの関数型言語の研究が主流であるが,これらが計算科学者にとって使い易いものであるとは言い難い.我々は Ruby を用いて高性能計算を行う試みを行っている.Ruby はその記述の容易さ・高機能さから広く使われており,本言語に高性能計算に使用可能な性能を与える事の恩恵は大きい.本稿では我々の試みの第一歩として,Ruby の為の型解析手法の提案を行う.動的言語である Ruby は静的言語に比べ解析が困難であると考えられているが,部分評価手法と抽象解釈手法を組み合わせることにより十分な精度での解析を行う事が可能である.また,我々は開発した解析手法に基づいて,Ruby の実行前最適化コンパイラ HPC Ruby を開発した.本稿時点では単一プロセッサ向けの基本的な最適化を実装している.NAS Parallel Benchmark を用いた性能評価では最新の Ruby 処理系と比べ 100 倍以上の高速化を達成し,C 言語の性能の約 90% を実現する事が出来た.
著者
王 竺 平木 敬
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会技術研究報告. CPSY, コンピュータシステム (ISSN:09135685)
巻号頁・発行日
vol.114, no.155, pp.209-213, 2014-07-21

近年Node.jsの特長を生かされ,ウェブアプリケーションを開発するときにNode.jsがよく使用されている.しかし,Node.jsはシングルスレッドの実装であるため,同時に複数のタスクのCPU処理を同時に行うことができない.特にCPU-boundタスクを処理する際バまかのタスクがブロックされて,応答性が劣っている.このような問題を解消するために,子プロセスのプール生成かマルチスレッド化による静的にスケールアウトして並列処理方法通常に採用されている.しかし,既存のツールを利用してマルチスレッド化をする際に安定性と機能性が失うことがあり,子プロセスを生成する手法では,子プロセスの数は実行時に変更できないため,タスクの数が増加するにつれ,並行処理し切れないケースも存在する.これを改善するために,本稿では自動スケーリングによる並行処理の手法を提案する.また比較実験を行い,改善の効果を示した.
著者
中村 晃一 野瀬 貴史 稲葉 真理 平木 敬
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2011, no.63, pp.1-10, 2011-07-20

高性能計算分野では他の分野では使われる事の少なくなってきた Fortran・C 言語が使われ続けている.これらの言語はその生産性の低さと並列計算機向けの最適化の困難さが問題であり,高級なプログラミング言語を使用可能とする事は今後の重要な研究課題である.その様な目的の研究では並列構文を備えた専用の言語の研究・静的型付けの関数型言語の研究が主流であるが,これらが計算科学者にとって使い易いものであるとは言い難い.我々は Ruby を用いて高性能計算を行う試みを行っている.Ruby はその記述の容易さ・高機能さから広く使われており,本言語に高性能計算に使用可能な性能を与える事の恩恵は大きい.本稿では我々の試みの第一歩として,Ruby の為の型解析手法の提案を行う.動的言語である Ruby は静的言語に比べ解析が困難であると考えられているが,部分評価手法と抽象解釈手法を組み合わせることにより十分な精度での解析を行う事が可能である.また,我々は開発した解析手法に基づいて,Ruby の実行前最適化コンパイラ HPC Ruby を開発した.本稿時点では単一プロセッサ向けの基本的な最適化を実装している.NAS Parallel Benchmark を用いた性能評価では最新の Ruby 処理系と比べ 100 倍以上の高速化を達成し,C 言語の性能の約 90% を実現する事が出来た.Computational scientists have been using Fortran and C which are being used less than before in other fields. Because these languages have low productivity and optimization of them for massively parallel computers is difficult, it is important to make high performance computation using high-level languages possible. Although, for this purpose, study of dedicated parallel languages and study of statically-typed functional languages are mainstream, these languages are not easy to use for computational scientists. We have been studying high performance computation with Ruby. Giving high performance to Ruby brings significant benefits since Ruby is widely used because of its rich functionality and flexibly. This paper proposes a versatile method of static type analysis that is sufficiently efficient for Ruby. It combines partial evaluation framework and abstract interpretation framework to make analysis of dynamic language possible. We have implemented an ahead-of-time optimizing compiler, HPC Ruby, which performs classical optimization techniques based on the analysis targeting single core processors. HPC Ruby has achieved hundred times of speed-up against to latest Ruby interpreter in experimentation with Nas Parallel Benchmarks. Its performance has reached almost 90% of performance of C.
著者
泊 久信 平木 敬
雑誌
情報処理
巻号頁・発行日
vol.55, no.2, pp.168-175, 2014-01-15

古くなった計算機は,多くは保存されることはなく,産業廃棄物として処分されている.保存される一部についても,動作する状態を維持されることはまれで,プロセッサなど代表的部品のみでの保存や,運良くシステム全体が揃っていても,長い期間通電させないことにより動作しなくなっている場合もある.本稿では,古いコンピュータを動作する状態で保存(動態保存)する取り組みについて紹介する.また,計算機の動態保存により得られる知見の一例として,新旧の計算機で性能と電力を統一した条件で測定し,比較した結果を示す.
著者
対木 潤 田中 清史 松本 尚 平木 敬
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告計算機アーキテクチャ(ARC)
巻号頁・発行日
vol.1995, no.80, pp.25-32, 1995-08-23
被引用文献数
4

既存の逐次計算機を置き換えるものとしての汎用超並列計算機への要求から、将来の汎用並列計算機にはスケーラビリティと汎用環境での使用を支援するための機構が求められる。本研究では、将来の汎用並列計算機の柔軟かつ強力なプロトタイプとしてハードウェアサポートされた同期機構を持つスケーラブルな並列計算機:お茶の水5号の設計、および実装を行なっている。本稿ではお茶の水5号の分散共有メモリ、プロセッサベース同期機構、メモリベース同期機構について述べる。Mechanisms for supporting efficient use under general environment and Scalability are necessary for future general purpose parallel processing systems, so that they can be exchangeable for existing sequential processing systems. We designed OCHANOMIZ 5: scalable parallel processing system with hardware-supported synchronization mechanisms, as a flexible and powerful prototype of future general purpose parallel processing systems. In this paper, we describe distributed shared memory, processor-based synchronization mechanisms and memory-based synchronization mechanisms being implemented on OCHANOMIZ 5.
著者
笹田 耕一 卜部 昌平 松本 行弘 平木 敬
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.2, pp.25-42, 2012-03-30

我々は,高性能なRuby処理系の開発を行っている.Ruby処理系は仮想マシン(VM)を用いて実現されているが,現在のVMでは,同時にたかだか1つのRubyスレッドのみ実行するという制約があり,並列実行をサポートしていない.また,複数のRubyプロセスを用いて並列実行すると,計算に必要となるオブジェクトの転送がプロセス間転送となり,オーバヘッドが大きいという問題がある.そこで,我々は1つのプロセスに複数のVMを並列に実行できるマルチ仮想マシン(MVM)の開発を行っている.各VMはオブジェクト空間を独立に管理するが,各VMが同一プロセス内にあることを活かしたVM間の高速なオブジェクト転送を行うことができる.また,これらの機能をRubyから利用するためのプログラミングインタフェース(API)を設計した.さらに,Rubyの遠隔メソッド呼び出し機構であるdRubyをMVM上で利用できるように拡張し,MVMの利用を容易に行うことができるようにした.MVMの実装は,現在の処理系との互換性を維持するため,既存の処理系のプロセス全体で共有されるデータ,たとえばC言語のグローバル変数やI/O資源などを,VMごとに保持するようデータ構造を変更することで行った.本論文では,開発しているMVMの設計と実装について述べ,MVMを用いるためのAPIを説明する.そして,MVMを用いた並列処理の現在の実装での性能評価について述べる.
著者
泊 久信 平木 敬
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2011, no.45, pp.1-7, 2011-07-20

計算機が高性能になったことにより,より大きな問題を解くことができるようになった.入力が計算結果として出力されるまでに演算器を通る回数も,問題の規模と反復回数に応じて大きくなった.計算アルゴリズムの中には,演算器を通る回数が増えると誤差が蓄積していくものがある.このようなアルゴリズムを,より高性能な計算機を用い大規模な問題に対して適用するためには,より高精度な浮動小数点演算が必要である.ところが,高精度な浮動小数点数を扱うハードウェアは市販品としては少なく,結果としてソフトウェア実装を用いるのが一般的であった.ソフトウェアによる実装は幅広い環境で動作させることができる利点がある一方,性能を出しにくいという欠点がある.性能が出ない場合,そもそも高精度な浮動小数点数を扱う必要性は低い.本研究では,IEEE 754 規格を拡張して,8 倍精度 (256-bit) 浮動小数点数を定義した.評価では,POWER7 マシンでの倍精度の演算と,8 倍精度演算の 64 ビットPowerPC アセンブリでの実装との性能を比較し,8 倍精度が倍精度の 1/44 程度の性能の劣化になることを確認した.ハードウェア実装として,CPU の FSB に FPGA が結合された,Convey HC-1 を用いて,高性能な演算器を実装した.この FPGA ベースの実装を用いた場合,POWER7 の 8 コアのシステムに比べ,約 4.5 倍の 8 倍精度浮動小数点処理性能を実現した.The faster the processor becomes, the larger grows the size of the problem that the processor is capable of solving. The number of operations that are applied to input data is subject to the size and the number of iterations. There are algorithms where the error accumulates as the size or the number of iterations increases. To apply these algorithms to the larger set of problems that are solved on the next-generation computers, a higher-precision floating point format is required. Notwithstanding the need, there are little support for arithmetic on floating point numbers of quadruple or more precisions. When they really needed it they tend to implement them using software. Using software to process higher-precision floating point number benefits from portability, but at the grave cost of the performance. When the performance is limited, we often do not need higher precision floating point numbers in the first place. We propose an extension to the IEEE 754 floating point number formats to define a octuple-precision (256-bit) floating point numbers. We compared the performance of our octuple precision implementation to the double-precision operations on IBM POWER7. On POWER7, octuple precision operations take about 44 times more processing time than double-precision counterparts. We implemented FPGA-based arithmetic unit for the data format on Convey HC-1 system, where FPGA chips are connected to the host using the front side bus. On this system, octuple precision operations are 4.5 times faster than those on the 8-core POWER7 system.
著者
西川 泰治 平木 敬三 合田 四郎 中川 和実 玉暉 宗夫
出版者
公益社団法人 日本化学会
雑誌
日本化学会誌
巻号頁・発行日
vol.1975, no.9, pp.1479-1484, 1975
被引用文献数
1

水溶液中の単核鉄(III)錯イオンを多核錯イオンから分離する方法として8-キノリノールークロロホルム抽出法を検討した。またこの方法により抽出される鉄(III)のイオン種が単核錯イ=オンであることを,鉄(III)イオンの加水分解反慈における紫外吸収スペクトルの変化および限外源過法による分子量の分画の結果と対比して考察同定した。鉄(III)の加水分解反応における8-キノリノール抽出鉄量は二次反応速度即こしたがう。この反応について25~40。Cの温度域で速度論的検討を行なった。Arrheiusプロヅトから得られた活性化エネルギーとして39.5kcal/mol,活性化自由エネルギーおよび活性化エントロピーとしてそれぞれ16,4kca1/mol,73e.u。([Fe3]:(1.4±0.1)×104mol/1,pH3.40±0.05)なる値を得た。その結果,鉄(巫)の加水分解反応の初期過程においては次式に示す機構を含む反応で進行するものと推定される。
著者
平木 敬 笹田 耕一 定兼 邦彦 牧野 淳一郎 井田 茂 稲葉 真理
出版者
東京大学
雑誌
基盤研究(S)
巻号頁・発行日
2009-04-01

本研究開発では、関数型オブジェクト指向言語であるRubyを拡張し、HPC向け高生産言語としてHPC Ruby言語を確立した。また、Rubyの特徴である計算環境の統合を生かし、HPC情報環境における新しいソフトウェア体系を実現した。HPC向け新言語の普及のため地球科学分野、天文分野、離散最適化分野においてRuby言語モデルを用いて問題定式化し、Rubyの科学技術計算位おける優位性を示した。分散実行環境の実証研究では、日米欧を100Gbpsインターネットで結び、その90%を高効率利用する通信方式を確立し、実験により実証した。これらの成果を総合し、Rubyを中心とした科学技術計算の体系を確立した。
著者
亀澤 寛之 野村 真義 平木 敬
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2003, no.80, pp.25-32, 2003-08-04

ネット上でサービスを行うサーバプログラム、特にウェブサーバの性能に関する研究はこれまで多くなされてきた。しかし、家庭内へのネットワークの普及、複雑化するサービス、サービスの種類増大に伴うファイルサイズの増大を考慮すると、サーバの性能向上は未だ重要課題である。コンピュータやネットワークスイッチの価格性能比の向上もあり、近年のサーバ/OSに関する研究は、OS の改善等よりサーバの性能向上を行うより、クラスタ化やハードウェアの性能をあげる事による性能改善を行う議論が多くなされてきた。しかし、サーバプログラムの性能を議論する上では、単一マシン上での実験によるパラメータの計測も不可欠である。本稿では、独自に開発した実験用OS(Orbと呼称)上で、様々なパラメータとシングルスレッドウェブサーバ、thttpd の性能測定を行う。Orb は キメラ的なOSであり、オリジナルなコードを多く含むが、他のOSから流用したコードも含んでおり、Linux2.4 のほとんどインタフェイスに加えて、BSD でサポートされるkqeueue を実装している。thttpd(www.acme.com)は single thread で poll/kqueue mmap と 非同期socket を用いた高速webサーバである。計測結果では、cpu が networkに追いつく場合には個々の要素のオーバヘッド改善よりもスケジュールが問題になる事示す。There are many studies for performance improvement of Internet Servers, especially web servers.Current trend of increasing home internet users, more and more complicated service,large file size with variety of services, show improvementing web server performance is still impotrant problem. With decreasing cost of computers and network switch, recent studies for server/OS are about performance of clustering, hardware enhancement,performance with security,instead of perfomance improvement with new OS interface.However for considering server application program, it is important that performance measurements on single machine. In this paper,we present performance measurement of thttpd\cite{ACME}, on Opereating System ``Orb'' which we developped.Orb is a kimera OS,has original code and imported code from Linux and BSD,and support Linux2.4 interface + BSD's kqueue.thttpd is a very fast web server developped by ACME Laboratory.That is designed as single-threaded web server,using poll/kqueue,mmap,non-blockin socket.From our experiments, when cpu overcomes network,scheduling is more important than each working cost degration techniques.
著者
芝 哲史 笹田 耕一 平木 敬
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.3, pp.1-22, 2012-08-20

近年,様々なスクリプト言語処理系に対してコンパイラが開発されている.これらのコンパイラは処理系に組み込む形で実装されることが多く,新しくコンパイラを開発するために,処理系そのものの再実装や,処理系の大幅な改変が行われている.このため,スクリプト言語処理系に対する新たなコンパイラの開発には多大な労力をともなう.そこで我々は,スクリプト言語RubyのCによって実装された処理系(CRuby)の機能を活用することで,処理系に対して新たに手を加えることなく動作するコンパイラCastOffを開発した.CastOffは,実行時コンパイル,コンパイル済みコードの再利用,プロファイル実行,アノテーションのサポート,脱最適化,再コンパイルなどの機能を持つ.これらの機能を,CastOffはCRubyのCによる拡張ライブラリ(C拡張)としてCRubyにいっさいの変更を加えずに実現している.本稿ではCastOffの設計と実装を述べ,CastOffの機能をRubyのC拡張でどう実現したかを詳細に解説する.そして,CastOffのようにライブラリとしてコンパイラを実装するために,どのような機能が必要かを議論する.
著者
戸塚 米太郎 大津 金光 中里 学 秋葉 智弘 松本 尚 平木 敬
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.36, no.7, pp.1652-1661, 1995-07-15

多くの大規模実用アプリケーションは、並列度の抽出が容易に可能な部分と困難な部分を含む。粗粒度により並列実行可能な部分はプロセッサの台数効果によりスピードアップが可能であるが、粗粒度並列化が困難な部分がボトルネックとなる。並列化が困難な部分にも高速化を達成するために細粒度の並列性の活用が不可欠である。しかし、従来のバス結合型マルチプロセッサでは低オーバヘッドの通信・同期機構が備わっていなかったため、命令レベルの並列性を利用する細粒度並列処理を効率良く行うことは不可能であった。我々が開発したお茶の水1号は市販の高性能マイクロプロセッサを用いた共有メモリ共有バス型のマルチプロセッサである。お茶の水1号は効率的な細粒度並列処理を達成するために、低オーバヘッドで通信・同期を実現するための細粒度支援機構を備えている。細粒度支援機構には共有バスを使用せず極めて小さいオーバヘッドで同期を実現する大域同期機構・メモリベースの通信・同期を融合したデータ駆動同期機構、大規模な配列データを効率的にフェッチする大域構造体先行フェッチ機構、および、最適なスヌープ・プロトコルに動的に切替え可能なスヌープキャッシュ制御機構、等を備えている。本論文ではお茶の水1号におけるこれらの細粒度支援機構の構成について述べ、並列アプリケーションを用いたシミュレーションによる性能を示す。また、お茶の水1号上でプログラムを実行した結果を述べる。
著者
田中 清史 松本 尚 平木 敬
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会技術研究報告. CPSY, コンピュータシステム
巻号頁・発行日
vol.98, no.233, pp.31-38, 1998-08-04

並列/分散システムにおいて、汎用かつ容易なプログラミング環境を提供するために共有メモリが必須である。本稿では階層コヒーレンス管理および一般化されたコンバイニングのサポートにより効率の良い分散共有メモリを軽いハードウェアで実装する方式を述べる。我々の方式においてディレクトリに必要なメモリ容量はクラスタ数の対数オーダーである。このことから、超並列システムを構築する場合に各メモリブロックについて1ワード程度用意すれば十分であり、ディレクトリのアクセスコストも低い。並列計算機プロトタイプお茶の水5号上に軽いハードウェアDSMおよび一般化されたコンバイニングを簡単なハードウェアで実装した。実際のプログラムを実行してお茶の水5号の性能を測定した結果、我々の方式が並列化の効果を得ることが示された。
著者
富田 眞治 平木 敬 田中 英彦 末吉 敏則 金田 悠紀夫 天野 英晴
出版者
京都大学
雑誌
重点領域研究
巻号頁・発行日
1994

本年度は,平成5年度までの研究成果を基に,超並列プロトタイプ・システムを実機として実装可能とするため,LSI,プリント基板,システム筐体の設計を行った.さらに,これと平行してシステムの妥当性を評価するための種々のシミュレーション実験や,入出力機構の開発を行った.以下に代表的な研究成果を示す.1.超並列システムのキャッシュ一貫性制御方式の評価ディレクトリ・ベースのキャッシュ一貫性制御法として提案した疑似フルマップ方式を,本重点領域研究の成果として提案した.Recursive Diagonal Torus(RDT)ネットワーク上に実装した場合の性能をシミュレーションにより評価した.その結果,ネットワークの階層構造を活用したマルチキャストや,ACK回収の効果により,フルマップ方式に比べ,約4倍の処理速度が得られた.また,マルチキャスト法として,LPRA(Local Precise Remote Approximate)法,SM(Single Map)法,ならびにLARP(Local Approximate Remote Precise)法を提案しその評価を行った.その結果,無駄なトラフィック軽減の観点から,宛先ノードが少ない場合にはSM法が有利で,宛先ノードが一定数を越すとLPRA法またはLARP法が有利になることが判明した.さらに,LPRA法とLARP法の優劣は,データのマッピングに強く依存することも判明した.2.超並列システムの高速入出力システムの研究入出力専用の高速ネットワークをRDTと独立に設け,仮想FIFOならびにLANを介して接続されたワークステーション群全体の広大なディスク領域を超並列計算機のファイルシステムとして提供する入出力サブシステムを提案した.さらに,仮想FIFOでHDTVを接続することでビジュアルな計算機環境を構築可能とした。また,画像表示機構の実装に際しては,1画面のフレーム・メモリを16分割し並列計算機からの表示データ転送を分散並列的に行うことで,最大250MB/秒の転送速度を実現し,ハイビジョン画質の動画表示を可能とした.
著者
泊 久信 平木 敬
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2011-HPC-130, no.45, pp.1-7, 2011-07-20

計算機が高性能になったことにより,より大きな問題を解くことができるようになった.入力が計算結果として出力されるまでに演算器を通る回数も,問題の規模と反復回数に応じて大きくなった.計算アルゴリズムの中には,演算器を通る回数が増えると誤差が蓄積していくものがある.このようなアルゴリズムを,より高性能な計算機を用い大規模な問題に対して適用するためには,より高精度な浮動小数点演算が必要である.ところが,高精度な浮動小数点数を扱うハードウェアは市販品としては少なく,結果としてソフトウェア実装を用いるのが一般的であった.ソフトウェアによる実装は幅広い環境で動作させることができる利点がある一方,性能を出しにくいという欠点がある.性能が出ない場合,そもそも高精度な浮動小数点数を扱う必要性は低い.本研究では,IEEE 754 規格を拡張して,8 倍精度 (256-bit) 浮動小数点数を定義した.評価では,POWER7 マシンでの倍精度の演算と,8 倍精度演算の 64 ビットPowerPC アセンブリでの実装との性能を比較し,8 倍精度が倍精度の 1/44 程度の性能の劣化になることを確認した.ハードウェア実装として,CPU の FSB に FPGA が結合された,Convey HC-1 を用いて,高性能な演算器を実装した.この FPGA ベースの実装を用いた場合,POWER7 の 8 コアのシステムに比べ,約 4.5 倍の 8 倍精度浮動小数点処理性能を実現した.
著者
秋葉 智弘 松本 尚 平木 敬
雑誌
全国大会講演論文集
巻号頁・発行日
vol.47, pp.47-48, 1993-09-27

共有メモリー型並列計算機における、並列アプリケーションの最適化を支援するために、様々なハードウェアー機構が提案されている。特に、本論文で取り上げるハードウェアー機構は、Elastic barrier(同期待ちによるアイドルタイムを減少させるために、同期に幅を持たせたり、必要のないバリアーを削減したりできる拡張されたバリアー)とスヌープキャッシュにおけるプロトコルの、データオブジェクト毎の切替えである。本論文では、SPLASHと呼ばれる並列アプリケーション群を用いたシミュレーションにより、これらの機能がどのような性能改善をもたらすかを評価する。SPLASHは、普通のC言語とPARMACSと呼ばれるマクロによって、明示的に並列性を記述した、実際に使用されているアプリケーション群である。SPLASHのこの性質により、より現実に即した性能評価を行なうことが出来ると期待できる。
著者
平木 敬 島田 俊夫 関口 智嗣
雑誌
情報処理学会研究報告計算機アーキテクチャ(ARC)
巻号頁・発行日
vol.1992, no.64(1992-ARC-095), pp.113-118, 1992-08-19

命令レベルデータ駆動計算機SIGMA?1におけるコードの最適化の効果を評価する。コードの最適化手法として、ループをアンフォールド実行するために必要な機能を統合化した命令の導入、ループ不変変数の実現を効率化する手法、命令レベルの負荷分散についてデータ駆動計算機SIGMA?1を用いて評価を行なった。つぎに、大規模なプログラムを安全かつ効率良く並列実行するために必要なプログラム文脈に依存する最適化技法として、非同期性と多重代入、資源の回収と再利用、データ配置、大域データに基づく条件分岐などについて述べた。
著者
美添一樹 松本 尚 平木 敬
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.1998, no.72, pp.1-6, 1998-08-06
参考文献数
10
被引用文献数
1

命令レベルより大きい粒度のブロックにプログラムを分割し、各ブロックを投機実行することによりブロックレベル並列性を得るハードウェアについて、いくつかの論文で提案がなされている。我々は投機実行の手法を適用したJava仮想マシンを共有メモリマシン上で実装した。投機実行の対象はループに限定した。単純なループについて実験を行なった結果、インタプリタJava仮想マシンでも10000命令以上のループであれば高速化が可能であった。There have been several proposals about hardware speculative executions, in a larger granularity than instruction level parallelism, by partitioning the target program into blocks. We have applied speculative execution onto Java Virtual Machine. We implemented it on a shared memory machine. The target for speculative execution is limited to loops. We measured speedups for simple loops and found that it is possible to gain speedups for loops which contains more than 10000 instructions by an interpreter Java Virtual Machine.
著者
芝 哲史 笹田 耕一 卜部 昌平 松本 行弘 稲葉 真理 平木 敬
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.4, no.1, pp.90-108, 2011-03-16

本稿では,Ruby 処理系とほぼ完全な互換性を持つ AOT コンパイラの設計と実装について述べる.Ruby は数多くのライブラリを持ち,数多くの環境をサポートしているプログラミング言語の 1 つである.本研究では,Ruby 処理系との互換性,および可搬性に優れた手法を用いて,既存のすべての Ruby プログラムを,Ruby がサポートするすべての環境で高速化することを目標としている.我々は,この目標を達成するために,Ruby スクリプトをコンパイルしたバイトコード列を C 言語に変換し,Ruby 処理系の仮想マシン (RubyVM) 上で動作させる AOT コンパイラを開発した.開発した AOT コンパイラは,生成する C 言語ソースコードを RubyVM のメソッド呼び出し機構,例外処理機構などを利用して動作させることで,Ruby 処理系との互換性をほぼ完全に保ちながら,Ruby プログラムの実行を高速化する.本稿では開発した AOT コンパイラの設計と実装,開発によって得られた知見について詳しく解説する.そして,開発した AOT コンパイラの機能と性能を評価する.
著者
大平 怜 平木 敬
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.46, no.SIG1(PRO24), pp.134-148, 2005-01-15

実行時の安全を保証するための例外機構は一方で速度低下の原因となるため,部分冗長性除去(Partial Redundancy Elimination; PRE)で上方移動を用いて不要な例外命令を削除することが有効である.しかし我々はプログラムの意味を保つために例外命令どうしの順序関係である例外依存関係を保つ必要がある.したがって,従来の部分冗長性除去では例外命令の上方移動が阻害されることが多い.本研究で我々はプログラムの意味を保存しつつ例外依存関係を越える部分冗長性除去,Sentinel PRE を提案する.Sentinel PRE は例外依存関係を無視して上方移動を行い,その後で高速な解析により例外順序の入れ替わりを検出する.順序が入れ替わった例外命令で例外が起きた場合,プログラムの意味を保つために上方移動する前の状態に脱最適化でコードを戻す.現実のプログラムで例外が起きることは稀であるため,ほとんどの場合は上方移動により最適化された高速なコードが実行される.Sentinel PRE は特別なハードウェアのサポートには依存せず,動的なコード書き換えにより脱最適化を実現する.我々はSentinel PRE をJava の実行時コンパイラに実装して実験を行い,Java Grande Benchmark 中のheapsort プログラムで8.4%の性能向上を得た.