Skip to main content
QUICK REVIEW

[論文レビュー] Efficient System-Enforced Deterministic Parallelism

Amittai Aviram, Shu-Chun Weng|arXiv (Cornell University)|May 19, 2010
Parallel Computing and Optimization Techniques参考文献 42被引用数 27
ひとこと要約

この論文では、最小限のカーネルAPIを通じて並列実行中のプロセスやスレッドを隔離することで、システムレベルの決定的並列処理を強制する新しいオペレーティングシステム、Determinatorを提示する。この手法により、実行ごとにビット単位で同一の結果が得られることを保証する。粗い粒度の並列ワークロードにおいて、従来のシステムと同等の性能を達成すると同時に、内部イベントのログ記録の必要性を排除しており、通常の実行においても決定的実行が可能となり、信頼性の高いデバッグ、フォールトトレランス、セキュリティ解析が可能になる。

ABSTRACT

Deterministic execution offers many benefits for debugging, fault tolerance, and security. Running parallel programs deterministically is usually difficult and costly, however - especially if we desire system-enforced determinism, ensuring precise repeatability of arbitrarily buggy or malicious software. Determinator is a novel operating system that enforces determinism on both multithreaded and multi-process computations. Determinator's kernel provides only single-threaded, "shared-nothing" address spaces interacting via deterministic synchronization. An untrusted user-level runtime uses distributed computing techniques to emulate familiar abstractions such as Unix processes, file systems, and shared memory multithreading. The system runs parallel applications deterministically both on multicore PCs and across nodes in a cluster. Coarse-grained parallel benchmarks perform and scale comparably to - sometimes better than - conventional systems, though determinism is costly for fine-grained parallel applications.

研究の動機と目的

  • 任意のバグありまたは悪意あるコードに対しても、並列プログラムにおけるシステムによって強制される決定的動作を達成する課題に対処すること。
  • レコール・アンド・リプレイデバッグにおける内部イベントログ記録の必要性を排除するために、カーネルレベルで決定的動作を強制すること。
  • マルチコアシステムおよびクラスタ上で、マルチスレッドおよびマルチプロセスアプリケーションの両方における決定的実行を可能にすること。
  • タイミング依存の側面チャネルを防止することで、侵入分析およびハイゼンバーグバグの再現に安全で信頼性の高い基盤を提供すること。
  • 決定的実行が、正規のワークロードに対して効率的かつスケーラブルに実現可能であることを示すこと。特に、正しさやセキュリティを犠牲にすることなく。

提案手法

  • カーネルは、物理的共有状態を持たない単一スレッド、共有なしアドレス空間(「スケール」と呼ばれる)を提供することで、決定的動作を強制する。
  • 同期処理は、特定のスレッド間の1対1、決定的通信を、最小限のシステムコールセットによって実装する。
  • 現実の時間はI/Oとして扱われ、時間の側面チャネルを防ぐために、デバイスのようなインターフェースを通じて制御される。
  • ユーザーレベルのランタイムは、ファイルの複製やバージョニングといった決定的で仮想化されたメカニズムを用いて、共有メモリ、ファイルシステム、pthreadsといった一般的な抽象化をエミュレートする。
  • カーネルの最小限のAPI(3つのシステムコール)により、ランタイムのバグや悪意あるコードによって決定的動作が損なわれることを防げる。
  • 決定的スケジューリングはシステムレベルで強制され、スケジューリング論理がアプリケーションコードから分離されているため、非決定的動作が生じない。

実験結果

リサーチクエスチョン

  • RQ1内部イベントログ記録に依存せずに、マルチスレッドおよびマルチプロセス並列プログラムの両方において、システムによって強制される決定的動作を達成できるか?
  • RQ2通常のワークロードに対して、従来のシステムと同等の性能を実現する決定的実行が可能か?
  • RQ3タイミング依存の側面チャネルを、悪意あるコードが分析を回避できるようにしない方法で排除できるか?
  • RQ4最小限のカーネルAPIが、ユーザーレベルランタイムが信頼できないかバグを含んでも、決定的動作が保たれることを保証できるか?
  • RQ5細粒度の並列アプリケーションでは、粗粒度のものと比較して、決定的動作がどれほど性能のオーバーヘッドを引き起こすか?

主な発見

  • Determinatorは、粗粒度の並列ベンチマークにおいて、従来のシステムと同等またはそれ以上の性能とスケーラビリティを達成し、決定的実行を実現している。
  • 細粒度の並列アプリケーションでは、仮想化された時間と同期処理のオーバーヘッドにより、高い性能コストが発生する。
  • カーネルの最小限のAPI(15,000行未満)により、決定的動作がシステムレベルで強制され、ランタイムのバグによって損なわれることはない。
  • ユーザーレベルランタイムは、ファイルバージョニングや分散共有メモリといった決定的技術を用いて、Unixプロセス、ファイルシステム、共有メモリマルチスレーディングを効果的にエミュレートしている。
  • Determinatorの実装の複雑さは、類似システムと比較して著しく低い。全システムは14,492行のコードで、その教育的サブセットであるPIOSは5,385行である。
  • Determinatorは、システムによって強制される決定的動作が、通常の実行においても実現可能であることを示しており、内部イベントのログ記録なしに、ハイゼンバーグバグやマルウェアの信頼性の高い再現と解析が可能になる。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。