SEM(Supercomputing Engine for Mathematica){®{Advanced Cluster Systems, Dauger Research}は、MacOSの世界で長く使われてきたクラスタツールPooch®Dauger Researchの上に構成され、Mathematicaに新たな外部インタフェース用カーネルsemath(上記図の白い部分)を提供する。semathはMathematicaフロントエンドとMathKernel(上図赤い部分)の間に位置し,本来MathKernelに送られるべき式の内,SEMに関係する部分(SEMの関数ならびに変数)をインターラプトし,独自に処理する機能を提供する.
このようなカーネル間インターラプト機能はSET(Supercomputing Engine Technology){®{Advanced Cluster Systems, Dauger Research}のMathematicaへの応用によるもので,そのベースにはPoochによるクラスタ技術が存在する.Poochはその独立性の高い設計によって,同種・異種を問わず,分散システムにおけるクラスタ環境の構築を容易にしている.
SEMのインストールはMathematicaのinit.mファイルのみを変更する.主な変更は,Localカーネルを削除し,semathカーネルを新たに追加する.これにより,Mathematicaを起動した際,自動的に所用カーネル数分のsemathプロセスが起動し,ついで各semathプロセスがMathematicaに対し,MathKernelを起動するよう要求する.いったんすべてのMathKernelが起動された後は,SEM用に拡張されたMathematicaがそこにあるかのように見え,ユーザはSEM関数を含めたすべてのMathematica関数を実行することができる.
Mathematicaを終了すると,自動的にMathカーネルを終了し,同時にsemathプロセスも終了する.
Mathematicaの組み込み並列環境がマスタースレーブ方式(下図左)に限定されるのに対し,SEMによって拡張されたMathematiaでは任意のコミュニケーショントポロジーが可能となる(下図右).
Broadcast, Allgatherはプロセス数が増えるにつれオーバヘッドが増す,その一方で,プロセス数のLogに比例したアルゴリズムはプロセス数が小さい時はオーバヘッドが大きくなる.したがって,プロセス数が16以下の場合は,逐次的に通信するように設定している.
(c)2010.5 Symbolic Systems, Inc.