DMI 1.5
DMI 1.5.0.0 (2011.4.4)
離散的なread/writeを中心に、全体的に性能を向上。
サンプルプログラムを12種類に増やした。
多数のバグを修正。
dmimwコマンドを修正し、
Ctrl+Cを押さなくてもプログラムが終了するようにした。
DMI 1.4
DMI 1.4.0.0 (2010.8.28)
ノードの増減をもっと簡単に書けるプログラミングモデルとしてDMI-rescaleを導入。
DMI_local_barrier_allreduce()のバグを修正。
DMI_watch()のバグを修正。
スレッド移動の機能を強化し、動的に遠隔ノードにプロセスを生成・破棄できるようにした。
その他、いくつかのAPIを見直し引数と仕様を修正。
多数のバグを修正。
DMI 1.3
DMI 1.3.3.0 (2010.7.21)
DMI_malloc()/DMI_realloc()/DMI_free()を追加。
アトミックな加算減算を行うDMI_fad()を追加。
スレッド移動の機能を強化。
実験的にスレッド移動の機能を追加。
多数のバグを修正。
DMI 1.3.2.2 (2010.6.12)
dmiccコマンドに-ldlオプションが付かないバグを修正。
DMI 1.3.2.0 (2010.6.4)
DMI_local_barrier_allreduce()を大幅に高速化。
DMI_watch()を実装。
DMI_spinlock_XXX()を実装。
DMI_idpool_XXX()を実装。
いくつかのバグを修正。
DMI 1.3.1.0 (2010.2.22)
make install時のパスなどの設定が不適切だったために、
dmicc、dmirun、dmimwコマンドが正常に動作しないバグを修正。
ノードが動的に参加/脱退したときに、DMI_barrier_allreduce(...)がデッドロックする可能性があるバグを修正。
サンプルプログラムとしてsor_dmi.cを追加。
DMI 1.3.0.0 (2010.2.15)
初リリースバージョン。
実装を最初から設計し直し、DMI 1.2と比較して、コンシステンシプロトコルを大幅に改善して高速化した。
選択的キャッシュread/write、離散アクセスのグルーピング、ユーザ定義のread-modify-write、非同期read/writeなど、
DMIプログラムを明示的かつ細粒度にチューニングするための強力な最適化手段を提供した。
read-write-set、バリア操作などDMIプログラミングを容易化するための豊富なAPIを追加した。
有限要素法に基づく応力解析、NAS Parallel BenchmarkのEPとCG、Foxのアルゴリズムによる行列行列積、サンプリングソートなど、
多様な並列数値計算がMPIに近いスケーラビリティで実行できるようになった。
要するに、並列分散プログラミング処理系として、さまざまな並列数値計算を高性能に記述できるようになった。
以降は、このDMI 1.3.0.0をベースにしてリリースを続けていく予定。
DMI 1.2 (2009.2.20)
プロトタイプバージョンその3。
実装を最初から設計し直し、ノードの動的な参加/脱退に対応させ、並列計算を実行中に計算規模を動的に変化させられるようになった。
排他制御、条件変数、スレッド生成/回収など、基本的な並列数値計算を記述する上で必要な各種のAPIを提供し、
行列行列積、マンデルブロ集合、二分探索木へのデータの並列挿入/削除などがとりあえず動くようになった。
卒論として作った。
DMI 1.1 (2008.10.02)
プロトタイプバージョンその2。
実装を最初から設計し直し、DMI_read(...)/DMI_write(...)を実装して、64ノードで行列行列積が計算できるようになった。
卒論の中間報告として作った。
DMI 1.0 (2008.7.3)
プロトタイプバージョンその1。
仮想的な共有メモリに対するメモリ確保/解放と透過的なread/writeだけができる、必要最低限の機能だけを備えた分散共有メモリとして作成。
研究室の演習課題として作った。