@techreport{oai:ipsj.ixsq.nii.ac.jp:00029552, author = {丹羽, 純平 and 松本, 尚 and 平木, 敬 and Junpei, Niwa and Takashi, Matsumoto and Kei, Hiraki}, issue = {66(1999-HPC-077)}, month = {Aug}, note = {我々はコンパイラが支援する2つのソフトウェア共有メモリ機構を提案してきた。1つは、読み出しミス時のみTLB/MMUの支援を必要とするページベースのキャッシュ機構で、もう1つは読み書きともに完全にユーザレベルのコードで実現されるキャッシュ機構である。いずれの機構も、アプリケーションプログラムの情報を元にコンパイラが最適化を施す。手続き間ポインタ解析により共有アクセスを検知して、キャッシュエミュレーションコードを挿入し、手続き間冗長性削除の枠組みで、冗長なキャッシュエミュレーションコードを取り除き、coalescing等によりキャッシュエミュレーションコードの粒度を大きくする。我々は上記の最適化コンパイラのプロトタイプを作成して、ワークステーションクラスタ上に2つのソフトウェア共有メモリ機構のランタイム実装した。SPLASH?2ベンチマークを用いた実験によりコンパイラの最適化の効果を確かめ、コンパイラで支援された共有メモリ機構が高い高速化率を得ることを確かめた。, We have proposed two compiler-assisted software-cache schemes. One is a page-based system (Asymmetric Distributed Shared Memory: ADSM) which exploits TLB/MMU only in the cases of read-cache-misses. Another is a segment-based system (User-level Distributed Shared Memory: UDSM) which uses only user-level checking codes and consistency management codes for software-cache. Under these schemes, an optimizing compiler directly analyses shared memory source programs, and performs sufficient optimization. It exploits capabilities of the middle-grained or coarse-grained remote-memory-accesses in order to reduce the number and the amount of communications and to alleviate overheads of user-level checking codes. It uses interprocedural points-to analysis and interprocedural redundancy elimination and coalescing optimization. We have implemented the above optimizing compiler for both schemes. We also have implemented runtime systems for user-level cache emulation. Both ADSM runtime system and UDSM runtime system run on the SS20 cluster connected with the Fast Ethernet (100BASE-TX). We have revealed that both schemes achieve high speed-up ratio with the SPLASH-2 benchmark suite.}, title = {コンパイラが支援するソフトウェアDSM機構:ADSMとUDSMの性能評価}, year = {1999} }