[BACK]Return to ohp20001220.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / Papers

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>