File: [local] / OpenXM / doc / Papers / ohp20001220.tex (download)
Revision 1.1, Sun Dec 17 20:51:10 2000 UTC (23 years, 9 months ago) by ohara
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Add the TeX source of an OHP manuscript for RIMS 2000.12.20
|
\documentclass{slides}
%% $OpenXM: OpenXM/doc/Papers/ohp20001220.tex,v 1.1 2000/12/17 20:51:10 ohara Exp $
%% RIMS 2000.12.20 での予稿
\title{OpenXM 1.1.3 の概要}
\date{December 20, 2000}
% \author{小 原 功 任\affil{金沢大学理学部}
% \mail{ohara@kappa.s.kanazawa-u.ac.jp}
% \and 高 山 信 毅\affil{神戸大学理学部}
% \mail{takayama@math.sci.kobe-u.ac.jp}
% \and 田 村 恭 士\affil{神戸大学大学院自然科学研究科}
% \mail{tamura@math.sci.kobe-u.ac.jp}
% \and 野 呂 正 行\affil{神戸大学理学部}
% \mail{noro@math.sci.kobe-u.ac.jp}
% \and 前 川 将 秀\affil{神戸大学大学院自然科学研究科}
% \mail{maekawa@math.sci.kobe-u.ac.jp}
% }
\def\section#1{\noindent{#1}}
\def\subsection#1{\noindent{#1}}
\begin{document}
\maketitle
\section{OpenXMとは}
OpenXM は数学プロセス間でメッセージを交換するための規約である. 数学プロ
セス間でメッセージをやりとりすることにより, ある数学プロセスから他の数学
プロセスを呼び出して計算を行なったり, 他のマシンで計算を行なわせたりする
ことが目的である. この講演では TCP/IP を用いた実装に準拠してOpenXM の説
明をする.
\newpage
\section{現在提供されているソフトウェア}
OpenXM では次のシステムが利用できます
$\bullet$ Asir
\\
$\bullet$ KAN/sm1
\\
$\bullet$ PHC pack
\\
$\bullet$ TiGERS
\\
$\bullet$ gnuplot
\\
$\bullet$ Mathematica (experimental)
\\
$\bullet$ Macaulay2
\\
$\bullet$ OpenMathProxy
\\
$\bullet$ JavaClient
現在 OpenXM 規約に対応しているクライアントにはasir, sm1,
Mathematica(experimental), JavaClient がある. これらのクライアントから
OpenXM 規約に対応したサーバを呼び出すことができる. また OpenXM 規約に対
応しているサーバには, asir, sm1, Mathematica, gnuplot, PHC pack, TiGERS
などがあり, それぞれ ox\_asir, ox\_sm1, ox\_sm1\_gnuplot, ox\_sm1\_phc,
ox\_math という名前で提供されている.
また OpenMath XML 表現で表現されたオブジェクトと CMO 形式のオブジェクト
を相互変換するソフトウェアが JAVA によって実装されており, OMproxy という
名前で提供されている.
さらに 1.1.3 からは Macaulay 2 によるサーバ, およびクライアントが用意された.
\newpage
\section{OpenXM の計算の仕組み}
OX-RFC-100 で規定された計算の仕組みについて説明する. OpenXM の計算はクラ
イアント・サーバモデルである. エンジンはスタックマシンとして働く.
\setlength{\unitlength}{1cm}
\begin{picture}(20,7)(0,0)
\thicklines
\put(5,1.7){\line(1,0){7}}
\put(5,4.7){\line(3,-1){7}}
\put(12,1){\framebox(5,2.5){client}}
\put(1,4){\framebox(4,1.5){controller}}
\put(1,1){\framebox(4,1.5){engine}}
\thinlines
\put(0,0.3){\framebox(6,6){}}
\put(1.5,-0.7){server}
\end{picture}
\bigskip
controller と engine は同一のマシン上にある.
\newpage
server が, また client になってもよい. したがって, OX-RFC-100 では, 次の
ような分散, 並列計算モデルを定義したことになる.
\begin{picture}(20,14)(0,0)
\put(7,12){\framebox(4,1.5){client}}
\put(2,6){\framebox(4,1.5){server}}
\put(7,6){\framebox(4,1.5){server}}
\put(12,6){\framebox(4,1.5){server}}
\put(0,0){\framebox(4,1.5){server}}
\put(5,0){\framebox(4,1.5){server}}
\put(13.5,0){\framebox(4,1.5){server}}
\put(9,12){\vector(-1,-1){4.3}}
\put(9,12){\vector(0,-1){4.3}}
\put(9,12){\vector(1,-1){4.3}}
\put(4,6){\vector(-1,-2){2.2}}
\put(4,6){\vector(1,-2){2.2}}
\put(14,6){\vector(1,-3){1.4}}
\end{picture}
\newpage
\section{この一年ほどの進展}
\begin{tabular}{ll}
1999年10月 & cvs による開発体制に移行 \\
2000年1月24日 & OpenXM 1.1.1 リリース 最初の版 \\
2000年3月20日 & OpenXM 1.1.2 リリース \\
2000年5月 & www.OpenXM.org の運用開始. \\
% 2000年5月 & OpenXM の論文(poster)が, calculemus に採択された. \\
2000年9月26日 & OpenXM 1.1.3 リリース
\end{tabular}
\subsection{1.1.3 およびその後の概要}
\begin{enumerate}
\item
kan/k0 による minimal free resolution in d.
%これは高山先生の講演がありますので, それに譲る.
\item
検証つき Groebner Basis の計算.
% Groebner Basis の計算に履歴システムを加えた. 検証サーバによって
% Groebner Basis の計算の正当性をチェックすることができるようになった.
\item
Macaulay2 サーバ, クライアント.
ある数式処理システムを新たに OpenXM サーバにするには, みっつのやり方が考
えられる.
ひとつは, そのシステム自体に変更を加えることである. これはもちろん, そ
のシステムのソースがなければ不可能である. この例としては, gnuplot, phc,
TiGERS がある.
ふたつめは, そのシステムを呼び出すようなwrapper を用意することである. ク
ライアントと wrapper との間は, OpenXM プロトコルで通信し, wrapper は
OpenXM サーバとしてふるまう. 数式処理システムと wrapper との間はそのシス
テムの固有の通信プロトコルを用いる. この方法をとっているのは,
Mathematica である. Mathematica の場合は MathLink を用いて通信している.
最後は, その数式処理システムが内蔵する言語で, OpenXM サーバを書
くことである. Macaulay 2 は, この方法を用いている. ただし, 任意のファ
イルディスクリプタを読み書きする機能はなかったので, 標準入力を読み書きし
ている. M2 起動時に ファイルディスクリプタ 3,4 に dup されている. (3,4
は OpenXM 規約で決められたディスクリプタ)
\item
Debian に対応した.
現在は FreeBSD 3.x, 4.x, Redhat Linux, Debian GNU/Linux 2.2 用のバイナリ
パッケージが用意されている.
\item
OpenXM RFC 方式
いままでは, 規約の変更は, 単一の規約書の改定という形でなされていたが, リ
リース 1.1.3 からは OpenXM RFC 方式を導入することになった. これは 1.1.3
での計算モデルを OX-RFC-100 として固定し, 規約の変更は別の文書にして対応
するものである. 新しい分散計算モデルを導入したい時は, 新しい OX-RFC を
提出すればよい.
現在, OX-RFC-101 (新型コントローラ)が提案されている.
前述したように OX-RFC-100 ではひとつの計算モデルを定義した.
\item
もう risa-con では宣伝したけど, asir contrib で数学の勉強,
asir ドリルもあるよ.
これも宣伝しなきゃ.
\item
Java クライアント
式を入力すると, OX サーバに送り, SM\_executeStringByLocalParser する,
GUI のアプリケーション. デモができます.
\end{enumerate}
\newpage
\subsection{これからのこと}
\begin{enumerate}
\item
OX-RFC-100 にかわる計算モデルの検討
たとえば, Asir/MPI による 多項式の高速かけ算
%%(cf. http://www.math.kobe-u.ac.jp/OpenXM/1.1.3/html/openxm-poster/ )
では, OX-RFC-100 とは異なり, MPI による計算モデルを用いている.
この場合は各プロセスが対等であり, 任意の二つのプロセスの
間でメッセージのやりとりが可能.
\item
ssh による 新しい launch protocol.
OX-RFC-101 によって提案されている新しいコントローラと, その起動手順を指
す. その特徴は以下の通り.
\begin{itemize}
\item リモートでの起動には ssh を利用する.
\item コントローラとエンジンの起動手続きを分離して簡単化.
\item コントローラもスタックマシンになった.\\
SM\_control\_spawn\_server 命令によってエンジンを起動.
\item セキュリティの強化.
\item エンジンの仕様は変更しない.
\end{itemize}
\item
さらなるセキュリティの強化.
いろいろな提案がなされているが, OX-RFC に文書化されるには至っていない.
\item
ipv6 への対応.
これは実装の問題だが, ipv4 と ipv6 の差異を意識せずに通信できるようにな
ることが必要. いま, 前川がライブラリを書いているところ.
\end{enumerate}
\newpage
\subsection{demo}
\begin{enumerate}
\item qsort (分散計算の例)
{\tt \$home/.asirrc} に \verb|load("/home/ohara/oxsort.rr");|
と書く.
次に, asir を起動して
\begin{verbatim}
[100] main(20000);
\end{verbatim}
で 20000 要素のリストを quick sort する.
\item factorizer (分散計算の例)
{\tt \$home/.asirrc} に \verb|load("/home/ohara/dfff");|
と書く.
次に, asir を起動して
\begin{verbatim}
[100] df_demo();
\end{verbatim}
とすると, 多項式の次数を聞いてくるので, 適当な数を入力する.
1000次にすると, ちょっと時間がかかる.
\item poster (1777 functions)
\item asir-book
\item macaulay2 で OpenXM クライアント.
\item java で OpenXM クライアント.
\end{enumerate}
\end{document}