Annotation of OpenXM/doc/Papers/ohp20001220.tex, Revision 1.1
1.1 ! ohara 1: \documentclass{slides}
! 2:
! 3: %% $OpenXM$
! 4:
! 5: %% RIMS 2000.12.20 での予稿
! 6:
! 7: \title{OpenXM 1.1.3 の概要}
! 8: \date{December 20, 2000}
! 9: % \author{小 原 功 任\affil{金沢大学理学部}
! 10: % \mail{ohara@kappa.s.kanazawa-u.ac.jp}
! 11: % \and 高 山 信 毅\affil{神戸大学理学部}
! 12: % \mail{takayama@math.sci.kobe-u.ac.jp}
! 13: % \and 田 村 恭 士\affil{神戸大学大学院自然科学研究科}
! 14: % \mail{tamura@math.sci.kobe-u.ac.jp}
! 15: % \and 野 呂 正 行\affil{神戸大学理学部}
! 16: % \mail{noro@math.sci.kobe-u.ac.jp}
! 17: % \and 前 川 将 秀\affil{神戸大学大学院自然科学研究科}
! 18: % \mail{maekawa@math.sci.kobe-u.ac.jp}
! 19: % }
! 20:
! 21: \def\section#1{\noindent{#1}}
! 22: \def\subsection#1{\noindent{#1}}
! 23:
! 24: \begin{document}
! 25: \maketitle
! 26:
! 27: \section{OpenXMとは}
! 28:
! 29: OpenXM は数学プロセス間でメッセージを交換するための規約である. 数学プロ
! 30: セス間でメッセージをやりとりすることにより, ある数学プロセスから他の数学
! 31: プロセスを呼び出して計算を行なったり, 他のマシンで計算を行なわせたりする
! 32: ことが目的である. この講演では TCP/IP を用いた実装に準拠してOpenXM の説
! 33: 明をする.
! 34:
! 35: \newpage
! 36: \section{現在提供されているソフトウェア}
! 37:
! 38: OpenXM では次のシステムが利用できます
! 39:
! 40: $\bullet$ Asir
! 41: \\
! 42: $\bullet$ KAN/sm1
! 43: \\
! 44: $\bullet$ PHC pack
! 45: \\
! 46: $\bullet$ TiGERS
! 47: \\
! 48: $\bullet$ gnuplot
! 49: \\
! 50: $\bullet$ Mathematica (experimental)
! 51: \\
! 52: $\bullet$ Macaulay2
! 53: \\
! 54: $\bullet$ OpenMathProxy
! 55: \\
! 56: $\bullet$ JavaClient
! 57:
! 58:
! 59: 現在 OpenXM 規約に対応しているクライアントにはasir, sm1,
! 60: Mathematica(experimental), JavaClient がある. これらのクライアントから
! 61: OpenXM 規約に対応したサーバを呼び出すことができる. また OpenXM 規約に対
! 62: 応しているサーバには, asir, sm1, Mathematica, gnuplot, PHC pack, TiGERS
! 63: などがあり, それぞれ ox\_asir, ox\_sm1, ox\_sm1\_gnuplot, ox\_sm1\_phc,
! 64: ox\_math という名前で提供されている.
! 65: また OpenMath XML 表現で表現されたオブジェクトと CMO 形式のオブジェクト
! 66: を相互変換するソフトウェアが JAVA によって実装されており, OMproxy という
! 67: 名前で提供されている.
! 68:
! 69: さらに 1.1.3 からは Macaulay 2 によるサーバ, およびクライアントが用意された.
! 70: \newpage
! 71:
! 72: \section{OpenXM の計算の仕組み}
! 73:
! 74: OX-RFC-100 で規定された計算の仕組みについて説明する. OpenXM の計算はクラ
! 75: イアント・サーバモデルである. エンジンはスタックマシンとして働く.
! 76:
! 77: \setlength{\unitlength}{1cm}
! 78: \begin{picture}(20,7)(0,0)
! 79: \thicklines
! 80: \put(5,1.7){\line(1,0){7}}
! 81: \put(5,4.7){\line(3,-1){7}}
! 82: \put(12,1){\framebox(5,2.5){client}}
! 83: \put(1,4){\framebox(4,1.5){controller}}
! 84: \put(1,1){\framebox(4,1.5){engine}}
! 85: \thinlines
! 86: \put(0,0.3){\framebox(6,6){}}
! 87: \put(1.5,-0.7){server}
! 88: \end{picture}
! 89:
! 90: \bigskip
! 91: controller と engine は同一のマシン上にある.
! 92:
! 93: \newpage
! 94:
! 95: server が, また client になってもよい. したがって, OX-RFC-100 では, 次の
! 96: ような分散, 並列計算モデルを定義したことになる.
! 97:
! 98: \begin{picture}(20,14)(0,0)
! 99: \put(7,12){\framebox(4,1.5){client}}
! 100: \put(2,6){\framebox(4,1.5){server}}
! 101: \put(7,6){\framebox(4,1.5){server}}
! 102: \put(12,6){\framebox(4,1.5){server}}
! 103: \put(0,0){\framebox(4,1.5){server}}
! 104: \put(5,0){\framebox(4,1.5){server}}
! 105: \put(13.5,0){\framebox(4,1.5){server}}
! 106:
! 107: \put(9,12){\vector(-1,-1){4.3}}
! 108: \put(9,12){\vector(0,-1){4.3}}
! 109: \put(9,12){\vector(1,-1){4.3}}
! 110: \put(4,6){\vector(-1,-2){2.2}}
! 111: \put(4,6){\vector(1,-2){2.2}}
! 112: \put(14,6){\vector(1,-3){1.4}}
! 113: \end{picture}
! 114:
! 115: \newpage
! 116:
! 117: \section{この一年ほどの進展}
! 118:
! 119: \begin{tabular}{ll}
! 120: 1999年10月 & cvs による開発体制に移行 \\
! 121: 2000年1月24日 & OpenXM 1.1.1 リリース 最初の版 \\
! 122: 2000年3月20日 & OpenXM 1.1.2 リリース \\
! 123: 2000年5月 & www.OpenXM.org の運用開始. \\
! 124: % 2000年5月 & OpenXM の論文(poster)が, calculemus に採択された. \\
! 125: 2000年9月26日 & OpenXM 1.1.3 リリース
! 126: \end{tabular}
! 127:
! 128:
! 129: \subsection{1.1.3 およびその後の概要}
! 130:
! 131: \begin{enumerate}
! 132: \item
! 133: kan/k0 による minimal free resolution in d.
! 134:
! 135: %これは高山先生の講演がありますので, それに譲る.
! 136:
! 137: \item
! 138: 検証つき Groebner Basis の計算.
! 139:
! 140: % Groebner Basis の計算に履歴システムを加えた. 検証サーバによって
! 141: % Groebner Basis の計算の正当性をチェックすることができるようになった.
! 142:
! 143: \item
! 144: Macaulay2 サーバ, クライアント.
! 145:
! 146: ある数式処理システムを新たに OpenXM サーバにするには, みっつのやり方が考
! 147: えられる.
! 148:
! 149: ひとつは, そのシステム自体に変更を加えることである. これはもちろん, そ
! 150: のシステムのソースがなければ不可能である. この例としては, gnuplot, phc,
! 151: TiGERS がある.
! 152:
! 153: ふたつめは, そのシステムを呼び出すようなwrapper を用意することである. ク
! 154: ライアントと wrapper との間は, OpenXM プロトコルで通信し, wrapper は
! 155: OpenXM サーバとしてふるまう. 数式処理システムと wrapper との間はそのシス
! 156: テムの固有の通信プロトコルを用いる. この方法をとっているのは,
! 157: Mathematica である. Mathematica の場合は MathLink を用いて通信している.
! 158:
! 159: 最後は, その数式処理システムが内蔵する言語で, OpenXM サーバを書
! 160: くことである. Macaulay 2 は, この方法を用いている. ただし, 任意のファ
! 161: イルディスクリプタを読み書きする機能はなかったので, 標準入力を読み書きし
! 162: ている. M2 起動時に ファイルディスクリプタ 3,4 に dup されている. (3,4
! 163: は OpenXM 規約で決められたディスクリプタ)
! 164:
! 165: \item
! 166: Debian に対応した.
! 167:
! 168: 現在は FreeBSD 3.x, 4.x, Redhat Linux, Debian GNU/Linux 2.2 用のバイナリ
! 169: パッケージが用意されている.
! 170:
! 171: \item
! 172: OpenXM RFC 方式
! 173:
! 174: いままでは, 規約の変更は, 単一の規約書の改定という形でなされていたが, リ
! 175: リース 1.1.3 からは OpenXM RFC 方式を導入することになった. これは 1.1.3
! 176: での計算モデルを OX-RFC-100 として固定し, 規約の変更は別の文書にして対応
! 177: するものである. 新しい分散計算モデルを導入したい時は, 新しい OX-RFC を
! 178: 提出すればよい.
! 179:
! 180: 現在, OX-RFC-101 (新型コントローラ)が提案されている.
! 181:
! 182: 前述したように OX-RFC-100 ではひとつの計算モデルを定義した.
! 183:
! 184: \item
! 185: もう risa-con では宣伝したけど, asir contrib で数学の勉強,
! 186: asir ドリルもあるよ.
! 187:
! 188: これも宣伝しなきゃ.
! 189:
! 190: \item
! 191: Java クライアント
! 192:
! 193: 式を入力すると, OX サーバに送り, SM\_executeStringByLocalParser する,
! 194: GUI のアプリケーション. デモができます.
! 195: \end{enumerate}
! 196:
! 197: \newpage
! 198:
! 199: \subsection{これからのこと}
! 200:
! 201: \begin{enumerate}
! 202: \item
! 203: OX-RFC-100 にかわる計算モデルの検討
! 204:
! 205: たとえば, Asir/MPI による 多項式の高速かけ算
! 206: %%(cf. http://www.math.kobe-u.ac.jp/OpenXM/1.1.3/html/openxm-poster/ )
! 207: では, OX-RFC-100 とは異なり, MPI による計算モデルを用いている.
! 208: この場合は各プロセスが対等であり, 任意の二つのプロセスの
! 209: 間でメッセージのやりとりが可能.
! 210:
! 211: \item
! 212: ssh による 新しい launch protocol.
! 213:
! 214: OX-RFC-101 によって提案されている新しいコントローラと, その起動手順を指
! 215: す. その特徴は以下の通り.
! 216:
! 217: \begin{itemize}
! 218: \item リモートでの起動には ssh を利用する.
! 219: \item コントローラとエンジンの起動手続きを分離して簡単化.
! 220: \item コントローラもスタックマシンになった.\\
! 221: SM\_control\_spawn\_server 命令によってエンジンを起動.
! 222: \item セキュリティの強化.
! 223: \item エンジンの仕様は変更しない.
! 224: \end{itemize}
! 225:
! 226: \item
! 227: さらなるセキュリティの強化.
! 228:
! 229: いろいろな提案がなされているが, OX-RFC に文書化されるには至っていない.
! 230:
! 231: \item
! 232: ipv6 への対応.
! 233:
! 234: これは実装の問題だが, ipv4 と ipv6 の差異を意識せずに通信できるようにな
! 235: ることが必要. いま, 前川がライブラリを書いているところ.
! 236: \end{enumerate}
! 237:
! 238: \newpage
! 239: \subsection{demo}
! 240:
! 241: \begin{enumerate}
! 242: \item qsort (分散計算の例)
! 243: {\tt \$home/.asirrc} に \verb|load("/home/ohara/oxsort.rr");|
! 244: と書く.
! 245: 次に, asir を起動して
! 246: \begin{verbatim}
! 247: [100] main(20000);
! 248: \end{verbatim}
! 249: で 20000 要素のリストを quick sort する.
! 250:
! 251: \item factorizer (分散計算の例)
! 252:
! 253: {\tt \$home/.asirrc} に \verb|load("/home/ohara/dfff");|
! 254: と書く.
! 255: 次に, asir を起動して
! 256: \begin{verbatim}
! 257: [100] df_demo();
! 258: \end{verbatim}
! 259: とすると, 多項式の次数を聞いてくるので, 適当な数を入力する.
! 260: 1000次にすると, ちょっと時間がかかる.
! 261:
! 262: \item poster (1777 functions)
! 263:
! 264: \item asir-book
! 265:
! 266: \item macaulay2 で OpenXM クライアント.
! 267:
! 268: \item java で OpenXM クライアント.
! 269:
! 270: \end{enumerate}
! 271:
! 272: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>