210 likes | 323 Views
Overview of the START(*T) Multithreaded Computer. Michael J. Beckerle 2003/6/5 早津 政和 hayatsu@logos.t.u-tokyo.ac.jp. Agenda. 0. Abstract 1. Introduction 2. Processor-Integrated Networking 3. Transmitting and Receiving 4. Multithreading on *T 5. Network Architecture
E N D
Overview of the START(*T) Multithreaded Computer Michael J. Beckerle 2003/6/5 早津 政和 hayatsu@logos.t.u-tokyo.ac.jp
Agenda • 0. Abstract • 1. Introduction • 2. Processor-Integrated Networking • 3. Transmitting and Receiving • 4. Multithreading on *T • 5. Network Architecture • 6. The *T Operating System • 7. *T Physical Packaging Concepts • 8. Conclusion
0. Abstract • START(*T) • M.I.T と Motorola が開発 • 様々な並列プログラミングスタイルをサポート • マシンサイズの拡大による、メモリのレイテンシ増加にも耐えうるマルチスレッドプログラミング • ネットワークメッセージインターフェースと同期機構がプロセッサと密接に関連した構造 • UNIX-like なソフトウェア環境
1. Introduction • *T は “start” と読む • “*”: multiple, “T”: threaded • “start”: 新しいスレッドを開始するという抽象的手続き • マルチスレッド • メモリ操作のレイテンシが大きい計算にも耐えうる • プロセッサ間のメッセージを用いた split-phase transaction (後述)として表現
2. Processor-Integrated Networking • 88110 Multi-Processor (88110MP) • Motorola 88110 Symmetric Superscalar™ microprocessor + • Message and Synchronization Unit (MSU) • 細粒度の通信と同期を行う命令セットとレジスタ群 • ネットワークインターフェースとメモリインターフェースを 完全に分離 • 88110の命令と同様に dual-issue
2.1 MSU instruction set • 25のMSU命令を追加 • 重要な命令 • sttx : Store into Transmit Registers • ldrx : Load from Receive Registers • rxpoll: Poll Receive Status • sched : Schedule Next Microthread • cpost : Conditionally Post and Schedule Next Microthread
3. Transmitting and Receiving • 通信はレジスタを介して行う • 送信: general register ⇒ transmit(tx) register ⇒ network • 受信: network ⇒ receive(rx) register ⇒ general register • OSを介さずにメッセージを受け取ることができる
3.1 Transmitter Instructions(1/2) • 基本的な transmitter instruction はsttx(store into transmit registers) • transmitter レジスタ (Fig. 2 左) • 32-bit レジスタ 24個の集まりで構成 • 4レジスタで1つのグループを形成し、2層に分かれる⇒ 88110 の dual-issue の特性を用いて、1 clock で 64-bit words のデータ 4つをストア
3.1 Transmitter Instructions(2/2) • コード片(Code 1) • sttx : transmit レジスタにストア • sttx...go: transmit レジスタ中のメッセージを ネットワークに送る • bcnd : 条件分岐の投機的実行 • データ長は最大 22 words • word 0: 送信先のプロセッサのノード番号 • word 1: メッセージ長(最低 5bit 必要)
3.2 Receiver Instructions (1/2) • 基本的な receiver instruction はldrx(load from receive registers) • receiver レジスタ (Fig. 2 右) • 32-bit レジスタ 24個の集まりで構成 • 2レジスタで1つのグループを形成し、2層に分かれる⇒ 88110 は dual-operand/single-result 操作に 特化されているため、1 clock で 64-bit words のデータ 2つをロード
3.2 Receiver Instructions (2/2) • コード片(Code 2) • ldrx : receive レジスタからロード • rxpoll.next: メッセージの有無を確認 存在した場合、receive レジスタに移動※ OS の制御を介さない
4. Multithreading on *T (1/2) • microthread • ブロックしない(排他的で共有できない性質を持つ)部分のコード • 止まる必要がある場合(他の microthread との同期・ネットワークメッセージ待ちなど)は、microthread を終了し、別の microthread をスケジューリングする • 受信データは microthread descriptor を運ぶ • 32-bit instruction pointer (IP), 32-bit data pointer (DP) の組 (Fig. 3)
4. Multithreading on *T (2/2) • microthread scheduling • network receiver にメッセージが届く (Fig. 4) • 送信側が microthread descriptor を埋め込む必要あり • microthread が sched命令を行う(Code 3) • 優先度の一番高いメッセージを receive レジスタに移動 • メッセージの中の microthread descriptor を返す • microthread が jmp命令を行う(Code 3) • 元の microthread は終了 • 制御は IP 部に移る(次の microthread が開始)
4.1 Split-Phase Transaction(1/2) • local virtual address (LVA) • 各プロセスの持つ 32bit の仮想アドレス空間 • global virtual address (GVA) • 論理ノード番号(最大16bit) + local virtual address • MSU命令を通して他のプロセッサのアドレスを指定する場合に用いる • microthread descriptor は (Fig. 3 下) のようになり、DP/IP の長さに制限がかかる
4.1 Split-Phase Transaction(2/2) • split phase transaction でのメッセージ(Fig. 5) • 遠隔ロード要求側のコード片(Code 4) • sttx.rt… : リターンアドレスをglobal microthread descriptor に変換 • 遠隔ロード応答側のコード片(Code 5) • sttx.rsp:global microthread descriptor をnode no, IP, DP に変換 • メッセージが届く間、別のmicrothread を実行可
4.2 Microthread Synchronization • 同期機構としてセマフォを提供 • コード片(Code 6) • cpost : セマフォが条件を満たしているか確認条件○⇒新たな microthread を作り、スタックに積む 優先度が一番高い microthread に返る条件×⇒優先度が一番高い microthread に返る • 普通のOSのセマフォとは全く違う • microthread の排他的性質から non-atomic な read/write が可能
5. Network Architecture • *T の内部ネットワークは fat tree (Fig. 6) • 区画間のバンド幅をできるだけ広く保ちたい • 接続線は1本、OS用/ユーザ用の2つの優先度 • ユーザプログラムがデッドロックしてもOSを巻き込まない • ネットワークパケット(Fig. 7) • 負荷分散のため、up-route を一様に選ぶ必要性 • CRC のエラーは*Tの診断システムに報告
6. The *T Operating System • OS • UNIX-like な環境を提供 • *T モデルの並列プログラムが動くように拡張 • ユーザのジョブ間で並列マシンを物理的に分割利用(space sharing)することも可能
6.1 Process Model • manager/player • 並列ジョブは、 manager プロセスと、子プロセス(player) で形成 • 並列ジョブに関わるプロセッサ毎に 1 player • players はプロセッサ間で同時にスケジューリングされる (gang schedule) • remote operation を OS-level context switch なしに行える
7. *T Physical Packaging Concepts • 構成(計画中) • 32-processor system • 3 billion operations per second (peak) • 512-processor system • 50 billion operations per second (peak) • 32-processor のブロック×16個で構成 • 各ブロック内の接続は回路上で実現(ケーブルを用いない) • 4096プロセッサ位まで拡大可能?
8. Conclusion • メッセージの送受信をOSの仲介なしにできる • 送受信のコストが下がり、非常に小さなメッセージのやりとりが実際に効率的に行えるようになった • microthread の能率的な生成・割当て・同期 • 増加するメモリアクセスのレイテンシをうまく扱う技術を提供 • RISC + microthread & embedded communicationの命令セットに対するコンパイル技術の発展を望む