2014 Fiscal Year Research-status Report
ハードウェアトランザクショナルメモリと従来の排他制御を組合せたデータ構造の設計
Project/Area Number |
26540042
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
宮崎 純 東京工業大学, 情報理工学(系)研究科, 教授 (40293394)
|
Project Period (FY) |
2014-04-01 – 2017-03-31
|
Keywords | 排他制御 / 並行処理 / HTM |
Outline of Annual Research Achievements |
メニーコアプロセッサ上の処理での大きなボトルネックの一つである共有データ構造の排他制御を、最近容易に利用可能となったハードウェアトランザクショナルメモリ(HTM)に加え、ロックフリーアルゴリズム、従来のロックの三種類の排他制御法を組合せて適材適所に使用し、排他制御のオーバヘッド問題を解決するための方法論の確立を目的とする。従来、これらの排他制御法の何れか一つのみを利用していたが、データの書込みならびに読出しの比率や、競合頻度、局所性などを考慮することで、これらを組み合わせて適切な並行データ構造を設計できることを目指す。 今年度は、インテルCore i7プロセッサを利用して、単一方向リストとハッシュの二つのデータ構造に関して、それぞれ読出しと書込みの比率を変化させて、これらのデータ構造と三種類の排他制御法の関係を詳細に調査した。単一方向リストについては、いずれの条件の場合でも多くの場合でHTMが有効であることが判明した。しかし、各スレッドのデータに競合が非常に多い場合はロックフリーアルゴリズムが最も良いことが分かった。HTMを利用したリストを拡張し、ロックフリーアルゴリズムで使用されるマーキング法を導入したところ、逆に性能を落とすことも判明した。これは、要素が変更中かどうかを判定する条件分岐がオーバヘッドになっている可能性が高く、引き続き検証していく予定である。一方で、ハッシュについてもクローズドハッシュのみについて同様の実験を行なった。その結果、書込みが多くバケット数が少ない場合はHTMの利用が最も良かったが、バケット数が多い場合は、逆にHTMが最も悪くなることが分かった。 以上から、読出しと書込み比率、競合頻度などの諸要素が、各排他制御法にどのような条件の下で影響を及ぼしているのかを、二つのデータ構造のみであるが定量的に比較できたことに大きな意義がある。
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
単純なリスト構造等は、競合が多く発生する際にロックフリーアルゴリズムが最も低オーバヘッドとの報告がなされてきたが、実際には共有するデータがそれほど大きくなく、キャッシュミスが少ないと考えられる状況下では、HTMが有効であることを定量的に明らかにした。しかしながら、HTMをサポートするCore i7のハードウェアの制約から、同時実行スレッド数が高々8程度までの場合の結果しか得ておらず、同時実行スレッドがさらに多い場合について同様な結果が得られるかどうか検証が必要である。しかし、より多くのスレッド数を同時実行可能なXeonプロセッサが、不具合のためHTM機能を使用不可としたため、本検証に遅れが生じている。 また、当初、単一のデータ構造でなく、複数のデータ構造を組み合わせた場合について、三種類の排他制御法の組み合わせ方を明らかする予定であったが、実装したアルゴリズムの正しさを検証することに多くの時間を費やし、本年度の達成目標から若干の遅延が発生している。今後は、三種類の排他制御法をそれぞれ使用した実装が完了している単一方向リストとクローズドハッシュを利用し、ページ置換のLRUを実装するデータ構造について、読出しと書込み比率や、競合頻度等の性能を左右する要素を変化させつつ、それぞれの排他制御法の適切な組み合わせ方を考察し、効率の良い並行データ構造の設計方法を明らかにしていく必要がある。
|
Strategy for Future Research Activity |
今後は、トライや木構造など他の基本データ構造についても、三種類の排他制御法と効率との関係に関して同様の検証を行ない、その後、LRUやさらに複雑なARCと呼ばれるページ置換アルゴリズムについて、三種類の排他制御方法の適材適所の適用について、工学的見地から適切に設計できるようにすることを目指す。その際にプログラム中に読出し・書込みの比率や、競合頻度の頻度をプラグマとしてヒントを与え、コンパイル時に最適な排他制御方法でコードが生成されるような仕組みの検討を行なう予定である。さらに、単純なデータ構造を組み合わせて、複雑なデータ構造を設計した場合に、並行動作が正しいことを検証するために、linearlizabilityを満たすかどうかを判定する方法の検討を行なう。これには、例えばSPINなどの高性能モデルチェッカを利用して、仕様の正しさを証明することで解決することを考えている。 さらに、同時実行スレッド数が増加した場合のそれぞれの排他制御法の挙動の解析を行ない、よりメニーコアプロセッサに近い環境での定量的な特性を明らかにしていく予定である。
|
Causes of Carryover |
次年度使用額を生じた理由は、次の通りである。当初は、2014年秋に発売予定であった、ハードウェアトランザクショナルメモリ(HTM)をサポートしコア数が8以上であるインテルのXeonプロセッサを搭載する計算機を購入し、スレッド数が多い条件の下での実験を行なう予定であった。しかしながら、当該プロセッサが販売される直前にHTM関連の箇所に不具合が判明し、本課題でもっとも必要とされるHTMの機能を利用できないようにして出荷されることが確定したため、当該計算機の購入を断念したことによる。
|
Expenditure Plan for Carryover Budget |
次年度使用額と今年度の配分額を合せて、HTMが利用可能なIBMのPower8プロセッサを搭載した計算機を早急に購入する計画をたてている。これは、インテルが8コア以上でかつHTMを利用可能なプロセッサを販売する予定が未定であることと、Power8プロセッサの方がより多くの同時実行スレッドを処理することが可能で、本研究課題での実験により適当と考えられるからである。
|