発表者名 | タイトル | |
---|---|---|
作元 佑輔 | NAS Parallel Benchmarkの実行時間予測モデルの構築 | 58KB PDF |
澤田 豊志 | 命令セットに含まれる自由度の評価とその応用 | 55KB PDF |
畑 尚志 | 組込みシステムのための浮動小数点演算の実装と評価 | 50KB PDF |
今日,PCクラスタを用いた並列処理は広く用いられている. 様々なPCが混在するクラスタ(不均一クラスタ)環境では,様々な構成で応用プログラムを実行することが可能であり,その中から最適な構成を選択して応用の実行時間を最小化することは重要なテーマである. 岸本 [岸本 2003] は,HPLを例として不均一クラスタ上での実行時間予測モデルを構築し,実際に(準)最適構成が予測可能であることを示した. しかし岸本の手法は,HPL以外の応用では検証されていない.
本研究では,NAS Parallel Benchmark(NPB)の実行時間予測モデルを構築し,その精度を検討することを目的とする. NPBは並列計算機の性能評価を目的として開発されたベンチマークプログラムで,計算流体力学のための5つのカーネルと3つの疑似応用から構成されている. NPBには5つの問題サイズ(クラスS,A,B,C,D)だけが規定されているが,実行時間予測モデルを構築するには多くの問題サイズに対して実行時間を測定する必要がある. そこで本研究では,NPB(ver.2.4)のうち計算サイズが変更できる4つのプログラム(MG,CG,IS,LU)について実行時間予測モデルを構築し,最適なクラスタ構成を予測できるか検証する.
ウィルスやワームによる攻撃は大きな社会問題になっている. これらの不正プログラムは,多くの場合,バッファオーバーフロー等の脆弱性を利用して悪意ある命令列を実行させ,実行制御の乗っ取りを行う.
不正コードのメモリへの注入(injection)を防止する手法として,実行時にメモリのシグネチャを検証する方法,メモリ全体を暗号化する方法,等が提案されている. しかしメモリアクセスにオーバヘッドが発生するため,顕著な性能低下が発生することが問題となっている.
一方,注入されたコードを無効化する手法としては,命令セットのランダム化が提案されている. ウィルス等の不正コードは,一般に特定のアーキテクチャ(例えばx86)を前提としているので,異なるアーキテクチャの計算機に感染することができない. Kcら [G.S. Kc, A.D. Keromytis, V. Prevelakis 2003] は,(1)命令ワードをビット転置すること,(2)命令列に秘密の鍵をXORすること,等で命令列(バイナリ表現)に多様性を持たせることを提案した. Barrantesら [E.G. Barrantes et al. 2005] は,実行イメージをメモリにロードする際に疑似ランダム数列とXORすることを提案した. これらはいずれも命令列を符号化するもので,厳密には命令セットのランダム化ではない.
本研究では,命令コードの符号化の自由度を利用して命令セットをランダム化する手法を提案する. 本手法は応用を問わず適用可能だが,特にFPGA等を用いた組込みシステムには適していると考えられる.
Programmable Logic Controller(PLC)は,シーケンス制御に用いられる制御用計算機である. PLCプログラムによる制御は広く行われているが,近年,大規模システムにおける速度不足が問題になっている. そこで,PLCプログラムを論理回路に変換し,再構成可能なハードウェアであるField Programmable Gate Array(FPGA)で実現することが検討されている.
池田 [池田 2005] は,PLC命令列をハードウェア記述言語VHDLに変換してFPGA上に実装する方法を示した. 池田の手法では,PLCプログラム内の演算命令は,対応するハードウェア演算器に変換される. PLC命令の多くはビット演算命令であるため,このような実装でも論理規模はさほど大きくならない.
しかしPLCプログラムでは,フィードバック制御等で浮動小数点演算命令を使用することがある. これらをハードウェアに変換すると,浮動小数点演算ユニット(FPU)が必要になる. FPUの論理規模は大きく,遅延時間も大きいため,FPGAによる実装が可能であるか明らかでない. 本研究の目的は,浮動小数点演算を行う制御プログラムをFPGA上に実装した場合の論理規模と処理時間を,定量的に検討することである. 浮動小数点演算を利用する制御プログラムの例としてはPID制御のフィードバックループを用いる.