著者
外崎 由里子 大野 和彦 中島 浩
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.43, no.3, pp.82-82, 2002-03-15

PCクラスタやデュアルCPUマシンなどの普及により近い将来,研究者だけでなく一般のエンドユーザが並列環境を利用できるのが当たり前になると予想される.逐次計算機上では,Cなどの高性能なコンパイラ型言語処理系とともに,Perlなどの手軽なスクリプト言語処理系が使用されてきた.並列計算機上では前者に対してHPC++などが開発されているが,後者に相当するものの研究は進んでいない.そこで我々は,エンドユーザが容易に並列計算機資源を有効利用できる環境を実現するため,並列性を簡易に記述できるようにPerlを拡張した,並列スクリプト言語(Perl)+の設計・開発を行っている.(Perl)+では指定した計算機を並列環境に追加し,RPCにより任意のサブルーチンを実行することができる.その返り値は遅延評価されるため,ユーザは複数のサブルーチン呼び出しを容易に並列タスクとして実行できる.また,並列タスク間では通信用に擬似的なファイルストリームを開くことができ,Perlの入出力関数を使ってデータを送受信できる.これらの機能はCで実装し,PerlとCを組み合わせるためのツールであるXSを使ってPerlモジュールPerlplus.pmを構築している.このため,ユーザは本モジュールを取り込むだけで(Perl)+の機能を利用できる.本モジュールは起動時に各ホスト上にPerlプロセスを生成し,PVMによりRPCや通信を実現している.また,各プロセス上で実行スレッド/受信スレッドを生成することで,RPCの実行と並行して受信処理を行えるようにしている.The spread of PC clusters and multi-CPU machines makes multiprocessors environment available not only for the reseachers but also for the end users.On the uniprocessor machines,we can use both effcient languages such as C and simple script languages such as Perl.On the multiprocessors,the languages of the former type such as HPC++have been developed.However,the latter type is not researched enough.Thus,we designed and implemented a parallel script language named (Perl)+as an extension of Perl.(Perl)+supports parallel task generation using RPC.Since the return value of a subroutine is lazily evaluated,the subroutine is executed in parallel to its caller.In addition to the communication through input arguments and return value,a user may open quasi file streams for the communication between parallel subroutines.Through this stream,any type of Perl data may be transferred using input/output functions of Perl.We implemented these functions in C.The user-interface is built as a Perl module Perlplus.pm,using XS for the linkage of C and Perl. This module adds speci fied hosts to the PVM virtual machines and creates Perl processes.We also introduced multi-threads for concurrent execution of user 's Perl code and PVM message receiving.
著者
丸山 真佐夫 山本 繁弘 大野 和彦 中島 浩
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.43, no.3, pp.80-80, 2002-03-15

再演実行を基礎とする従来の並列プログラムのデバッギング手法では,バグの原因をたどる過程で,頻繁にプログラムの再実行をしなくてはならない.実行の行き過ぎによる再実行の回数を減らすためには,実行途中でブレークポイント設定が必要になり,ユーザの負担が大きくなる.そこで我々は,再演実行手法に基づきながら,プログラム先頭からの再実行をせずに並列プログラムを過去の状態に戻し,そこから実行を再開することを可能にする"巻き戻し実行"機構を提案する.本提案の巻き戻し実行機構では,並列プログラムを構成する任意のプロセスを,任意の受信イベントの時点に戻すことができ,これを基礎にすべてのプロセスまたは一部のプロセスだけをプログラムの途中から実行させることができる.我々は並列言語Orgel に対して巻き戻し実行機構を実装し,性能評価を行った.その結果通常実行に対して,イベント順序保存実行で7%,巻き戻しのための状態保存実行で13%増という,小さいオーバヘッドで動作させることができた.In debugging a parallel program with conventional replay based method, the programmer has to rerun the program repeatedly from its beginning, because the code the programmer wants to examine next might have already gone beyond the breakpoint. To prevent the program from overrunning, the programmer must set breakpoints with much care in the complicated parallel program. Thus we propose a rollback mechanism, which allows the programmer to rerun the program halfway of it. Using this mechanism, the programmer may rollback any process of the target program to any receive event on its event graph. We applied our rollback mechanism to a parallel programming language named Orgel, and evaluate the overhead of logging and rollback. The result shows that execution time of event logging and computational state saving mode for rollback are only 7% and 13% larger than normal execution respectively.
著者
秋田 直己 佐々木 敬泰 大野 和彦 近藤 利夫
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告計算機アーキテクチャ(ARC) (ISSN:09196072)
巻号頁・発行日
vol.2007, no.79, pp.109-114, 2007-08-02
参考文献数
8
被引用文献数
1

近年,モバイルコンピューティングからハイパフォーマンスコンピューティングに至るまで,幅広い分野において低消費エネルギーと高性能の両立が要求されており,様々な手法が研究されている.現在行われている低消費エネルギー化の手法の一つとしてDVSがある.しかし,この手法は将来的に消費エネルギー削減効率の低下が予想される.なぜなら近年CMOSの電源電圧は低下の一途をたどり,電源電圧の下げ幅は小さくなっているからである.そこで我々は,電源電圧に依存しない低消費エネルギー手法として可変パイプライン段数アーキテクチャ(VSP)を提案している.VSPとはパイプライン段数を動的に変化させ,同時にグリッチの緩和を行うことで,高性能と低消費エネルギーの両立を目指す手法である.VSPは高性能と低消費電力の両立を実現できるが,VSPの要素技術であるLDS-Cellを導入することでパイプラインレジスタの遅延増大を招くという問題があった.LDS-cellとはパイプラインステージ間に存在するD-FFの動作を動的にD-ラッチへ変化させることでパイプライン統合と同時にグリッチの緩和を行うものである.そこで本論文ではVSP手法を実現する上で重要なセルであるLDS-cellの改良及び評価を行った.提案手法を詳細設計し,評価したところ,従来のLDS-cell と比較して15%程度高速化できた.Recently, in the field of not only mobile computing but also high performance computing, the achivement of low energy computing and high performance computing is required simul taneously. The DVS (Dynamic Voltage Scaling) is one of the current major methodoligics for low power devices. However by DVS, the lower the chip voltage becomes in the future, the less energy saving we get by DVS. So, in order to reduce the power consumption for lower voltage devices, we propose VSP (Variable Stages Pipeline) processor with the LDS-cell that unifies pipeline stages dynamically and also decreases power consumption caused by glitch propagations on low energy mode. But, because the delay of the LDS-cell is larger than a D-FF, the maximum clock rate for VSP must be lower than the original processor. So this paper improves the LDS-cell to reduce latency and power consumption. According to evaluation results, the improved LDS-cell can achieve 15% faster than the conventional LDS-cell.
著者
松尾 治幸 大野 和彦 中島 浩
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.43, no.4, pp.855-865, 2002-04-15

共有メモリ型並列計算機における同期処理オーバヘッドを削減する手法として,我々は同期操作に後続するメモリアクセスを同期成立確認以前に実行する機構specmem を提案してきた.この機構の特徴は,投機失敗の検出やそれに伴う計算状態の復元を,機能メモリを用いたコヒーレント・キャッシュの簡単な拡張により実現することにある.これまでの評価では,負荷の変動によって同期区間が伸縮するようなプログラムに対してspecmem が有効であることが確かめられている.しかし同時に,投機によりキャッシュ・ミスペナルティが増加し,プログラムによっては性能が低下してしまうことも明らかになっている.そこで本報告ではspecmem の改良方式として,投機的更新を示す新たな状態の追加と,通常のメモリで構成される2次キャッシュの導入を提案する.SPLASH-2ベンチマークを用いた評価を行った結果,Radix Sortでの性能劣化を8.6%から0.7%まで削減できることや,LU分解の性能向上率が14%から16%に増加することが明らかになった.
著者
大野 和彦 中島 浩
出版者
三重大学
雑誌
特定領域研究
巻号頁・発行日
2009

本課題の目的は、ITシステム基盤を支える実用技術の一環として超大規模計算タスク群のスケジューリング手法を開発することであり、高精度でスケーブルかつ他の基盤技術との協調を目指しでいる。従来の研究成果であるタスクの実行性能モデリング技術と、それ利用したスケジューリング手法をベースとし、これを発展させる形で研究を行っている。本年度は実環境の性能変動に対応するため、動的スケジューリングの研究を行った。動的な変動に対し良いスケジューリング長を保ち続けるには変動のたびに静的スケジューリングを再実行する動的再スケジューリング手法が有効であるが、頻繁に変動が生じる実環境ではスケジューリングコストが大きく実用的でない。そこで、変動をトリガーとする従来の手法に対し、タスクの終了をトリガーとする手法を提案した。さらに、スケジューリング結果に大きく影響するタスクの終了時のみをトリガーとすることで、再スケジューリング回数を大幅に削減した。シミュレーション評価の結果、提案手法により再スケジューリング回数が数百分の一に抑えられる一方で、スケジューリング長の悪化は5%程度にとどまった。また、前年度の成果である大規模ワークフローの縮約手法について、詳細な設計および実装・評価を行った。性能評価の結果、完全縮約可能な場合の必要メモリ量は規模に依らず、ランダムなワークフローで80KB程度、単純な実ワークフローでは2KBであり、100万タスクで200MBほどを必要とする従来手法に対し、大幅に削減できた。さらに、性能モデルの高性能計算への応用として、多次元配列を時間方向にタイリンゲすることでキャッシュを有効活用する最適化手法を時間発展シミュレーションに適用する際の最適パラメータ推定を行った。京大のT2K Open Supercomputer上で評価した結果、2次元拡散方程式の陽的求解や3次元FDTD法においてほぼ最適なパラメータが得られ、前者ではタイリングを使用しない場合に対して約2倍の速度向上を得ることができた。
著者
深野 佑公 山本 繁弘 大野 和彦 中島 浩
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.44, no.2, pp.47-47, 2003-02-15

我々は並列言語Orgel の開発を行っている.Orgel は,並行/並列の実行単位であるエージェントをストリームと呼ぶ通信路で結び,明示的なメッセージ送信を行う言語である.Orgel では,プログラマが問題をエージェントという並列実行単位に切り分けることに加え,ストリームによる通信路接続網の構造をすべて宣言的に記述するので,コンパイル時に並列モデルが明確になっており精度の高い静的解析が可能である.本発表では,このOrgel の特徴を生かして,動的なオーバヘッドを最小限にした最適化を行う手法を提案する.プログラム全体の構造および粒度,通信量が完全に把握できれば,すべて静的に最適化することも可能である.しかし,Orgel では再帰的な接続も記述できるため,実際に生成されるエージェント個数および構造は必ずしも静的には決まらない.また,通信対象は分かっても送信するメッセージの個数やエージェントの粒度は実行時にしか分からない.したがって,各プロセッサの処理量が偏らないよう静的に全体をスケジューリングすることは困難である.そこで,コンパイラは静的にエージェントの持つ量的な性質を解析し,エージェント割当てやスケジューリングをするための情報をランタイムに渡す.ランタイムは,この情報をもとにノード数やプロセッサの現在の負荷などを考慮して,負荷が均等になり通信量が多いエージェントは同一プロセッサになるように割り当てる.また,同一プロセッサ内では依存解析等に基づいてスケジューリングを行う.本手法を実装し,14 クイーンを解くプログラムで従来のOrgel ランタイムと性能比較を行った.その結果,従来版と比べ最大1.7 倍の速度向上が得られた.We are developing a parallel language called Orgel.In the execution model of Orgel,a set of agents are connected with abstract communication channels called streams.The agents run in parallel sending asynchronous messages through the streams.In an Orgel program, each unit of parallel execution is speci ?ed as an agent by the programmer.The connections among agents and streams are declaratively speci ?ed.Thus,parallel execution model is clear and the highly accurate static analysis is possible.Utilizing these features,we propose an optimization scheme that minimizing the dynamic overhead.If the complete structure of the whole program is known at compile time,static optimization will be sufficiently effective. However,in Orgel,the number of agents and structures actually generated are not always static,because recursive connection is supported.Moreover,although a communicating pairs of agents are known at compile time,the number of messages and the granularity of agents are known only at runtime.Therefore,it is difficult to balance loads on the processor by whole static scheduling.Thus,in our scheme the compiler outputs an analysis result to instruct the runtime how to allocate and/or schedule an agent when its quantitative attributes are known. Considering the number of processors and the present load of each processor,the runtime uses this information for optimization;it allocates agents balancing loads and minimizing inter-node communication.It also schedules agents on each node considering dependencies. We designed and implemented the system.As the result of evaluation using 14-Queen solver, we obtained 170%speed-up.
著者
山本 繁弘 大野 和彦 中島 浩
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.43, no.3, pp.83-83, 2002-03-15

我々は並列言語Orgelの開発を行っている.Orgelは,並行/並列の実行単位であるエージェントをストリームと呼ぶ通信路で結び,明示的なメッセージ送信を行う言語である.Orgelでは,プログラマが問題をエージェントという並列実行単位に切り分けることに加え,ストリームによる通信路接続網の構造をすべて宣言的に記述するので,コンパイル時に並列モデルが明確になっており精度の高い静的解析が可能である.本発表では,このOrgelの特徴を生かして,動的なオーバヘッドを最小限にした最適化を行う手法を提案する.プログラム全体の構造および粒度,通信量が完全に把握できれば,すべて静的に最適化することも可能である.しかし,Orgelでは再帰的な接続も記述できるため,実際に生成されるエージェント個数および構造は必ずしも静的には決まらない.また,通信対象は分かっても送信するメッセージの個数やエージェントの粒度は実行時にしか分からない.したがって,各プロセッサの処理量が偏らないよう静的に全体をスケジューリングすることは困難である.そこで,量的な性質が分かった時点でエージェントを,割当てやスケジューリングできるように,コンパイラは静的解析による結果をランタイムに渡す.ランタイムは,この情報をもとにノード数やプロセッサの現在の負荷などを考慮して,負荷が均等になり通信量が多いエージェントは同一プロセッサになるように割り当てる.また,同一プロセッサ内では依存解析などに基づいてスケジューリングを行う.We are developing a parallel language called Orgel.In the execution model of Orgel,a set of agents are connected with abstract communication channels called streams.The agents run in parallel sending asynchronous messages through the streams.In an Orgel program, each unit of parallel execution is speci fied as an agent by the programmer.The connections among agents and streams are declaratively speci fied.Thus,parallel execution model is clear and the highly accurate static analysis is possible.Utilizing these features,we propose an optimization scheme that minimizing the dynamic overhead.If the complete structure of the whole program is known at compile time,static optimization will be sufficiently effective. However,in Orgel,the number of agents and structures actually generated are not always static,because recursive connection is supported.Moreover,although a communicating pairs of agents are known at compile time,the number of messages and the granularity of agents are known only at runtime.Therefore,it is difficult to balance loads on the processor by whole static scheduling.Thus,in our scheme the compiler outputs an analysis result to instruct the runtime how to allocate and/or schedule an agent when its quantitative attributes are known. Considering the number of processors and the present load of each processor,the runtime uses this information for optimization;it allocates agents balancing loads and minimizing inter-node communication.It also schedules agents on each node considering dependencies.
著者
中林 智之 佐々木 敬泰 大野 和彦 近藤 利夫
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J94-D, no.4, pp.646-656, 2011-04-01

近年,モバイル端末等の消費エネルギーの増大が問題となっており,低消費エネルギーと高性能の両立が要求されている.そこで我々は,その要求を満たす手法の一つとしてVSP(Variable Stages Pipeline)を提案している.VSPはパイプライン段数を動的に変化させることで低消費エネルギーと高性能の両立を目指す手法である.また,LDS-cellという特殊なセルを導入することでパイプラインステージ統合によって増加する回路内のグリッチを削減している.しかし,LDS-cellはグリッチを低減するためにクロックを供給する必要があるため,クロックトリーの消費エネルギーが増大する危険性がある.そこで本論文ではLDS-cellの駆動によるオーバヘッドを低減する手法として,LDS-cellへのクロックゲーティング適用と,高性能セミスタティックTSPC DFFをベースとした改良型LDS-cellを提案する.更に,二つの提案手法を併用した場合に発生する問題点を解決する手法も提案する.提案手法を実装し,評価を行ったところ,従来VSPから18%消費エネルギーが低減できた.