=================================================================== RCS file: /home/cvs/OpenXM/doc/Papers/Attic/dagb-noro.tex,v retrieving revision 1.3 retrieving revision 1.10 diff -u -p -r1.3 -r1.10 --- OpenXM/doc/Papers/Attic/dagb-noro.tex 2001/10/04 08:16:26 1.3 +++ OpenXM/doc/Papers/Attic/dagb-noro.tex 2001/10/11 09:44:56 1.10 @@ -1,412 +1,316 @@ -% $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.2 2001/10/04 04:12:29 noro Exp $ +% $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.9 2001/10/11 08:43:08 noro Exp $ \setlength{\parskip}{10pt} \begin{slide}{} \begin{center} -\fbox{\large Part I : Overview and history of Risa/Asir} +\fbox{\large Part I : OpenXM and Risa/Asir --- overview and history} \end{center} \end{slide} +%\begin{slide}{} +%\fbox{Integration of mathematical software systems} +% +%\begin{itemize} +%\item Data integration +% +%\begin{itemize} +%\item OpenMath ({\tt http://www.openmath.org}) , MP [GRAY98] +%\end{itemize} +% +%Standards for representing mathematical objects +% +%\item Control integration +% +%\begin{itemize} +%\item MCP [WANG99], OMEI [LIAO01] +%\end{itemize} +% +%Protocols for remote subroutine calls or session management +% +%\item Combination of two integrations +% +%\begin{itemize} +%\item MathLink, OpenMath+MCP, MP+MCP +% +%and OpenXM ({\tt http://www.openxm.org}) +%\end{itemize} +% +%Both are necessary for practical implementation +% +%\end{itemize} +%\end{slide} \begin{slide}{} \fbox{A computer algebra system Risa/Asir} -\begin{itemize} -\item Old style software for polynomial computation +({\tt http://www.math.kobe-u.ac.jp/Asir/asir.html}) \begin{itemize} -\item Domain specification is not necessary prior to computation -\item automatic conversion of inputs into internal canonical forms -\end{itemize} +\item Software mainly for polynomial computation \item User language with C-like syntax -\begin{itemize} -\item No type declaration of variables -\item Builtin debugger for user programs -\end{itemize} +C language without type declaration, with list processing +\item Builtin {\tt gdb}-like debugger for user programs + \item Open source -\begin{itemize} -\item Whole source tree is available via CVS -\end{itemize} +Whole source tree is available via CVS -\item OpenXM ((Open message eXchange protocol for Mathematics) interface +The latest version : see {\tt http://www.openxm.org} -\begin{itemize} -\item As a client : can call procedures on other OpenXM servers -\item As a server : offers all its functionalities to OpenXM clients -\item As a library : OpenXM functionality is available via subroutine calls -\end{itemize} -\end{itemize} -\end{slide} +\item OpenXM interface -\begin{slide}{} -\fbox{Major functionalities} - \begin{itemize} -\item Fundamental polynomial arithmetics +\item OpenXM -\begin{itemize} -\item Internal form of a polynomial : recursive representaion or distributed -representation +An infrastructure for exchanging mathematical data +\item Risa/Asir is a main client in OpenXM package. +\item An OpenXM server {\tt ox\_asir} +\item A library with OpenXM library interface {\tt libasir.a} \end{itemize} - -\item Polynomial factorization - -\begin{itemize} -\item Univariate factorization over the rationals, algebraic number fields and various finite fields - -\item Multivariate factorization over the rationals \end{itemize} - -\item Groebner basis computation - -\begin{itemize} -\item Buchberger and $F_4$ [Faug\'ere] algorithm - -\item Change of ordering/RUR [Rouillier] of 0-dimensional ideals - -\item Primary ideal decomposition - -\item Computation of $b$-function -\end{itemize} - -\item PARI [PARI] library interface - -\item Paralell distributed computation under OpenXM -\end{itemize} \end{slide} \begin{slide}{} -\fbox{History of development : ---1994} +\fbox{Goal of developing Risa/Asir} \begin{itemize} -\item --1989 +\item Testing new algorithms -Several subroutines were developed for a Prolog program. - -\item 1989--1992 - \begin{itemize} -\item Reconfigured as Risa/Asir with a parser and Boehm's conservative GC [Boehm] +\item Development started in Fujitsu labs -\item Developed univariate and multivariate factorizers over the rationals. +Polynomial factorization, Groebner basis related computation, +cryptosystems , quantifier elimination , $\ldots$ \end{itemize} -\item 1992--1994 +\item To be a general purpose, open system -\begin{itemize} -\item Started implementation of Buchberger algorithm +Since 1997, we have been developing OpenXM package +containing various servers and clients -Written in user language $\Rightarrow$ rewritten in C (by Murao) +Risa/Asir is a component of OpenXM -$\Rightarrow$ trace lifting [Traverso] +\item Environment for parallel and distributed computation -\item Univariate factorization over algebraic number fields - -Intensive use of successive extension, non-squarefree norms \end{itemize} -\end{itemize} - \end{slide} -\begin{slide}{} -\fbox{History of development : 1994-1996} +%\begin{slide}{} +%\fbox{Capability for polynomial computation} +% +%\begin{itemize} +%\item Fundamental polynomial arithmetics +% +%recursive representation and distributed representation +% +%\item Polynomial factorization +% +%\begin{itemize} +%\item Univariate : over {\bf Q}, algebraic number fields and finite fields +% +%\item Multivariate : over {\bf Q} +%\end{itemize} +% +%\item Groebner basis computation +% +%\begin{itemize} +%\item Buchberger and $F_4$ [FAUG99] algorithm +% +%\item Change of ordering/RUR [ROUI96] of 0-dimensional ideals +% +%\item Primary ideal decomposition +% +%\item Computation of $b$-function (in Weyl Algebra) +%\end{itemize} +%\end{itemize} +%\end{slide} -\begin{itemize} -\item Free distribution of binary versions from Fujitsu - -\item Primary ideal decomposition - -\begin{itemize} -\item Shimoyama-Yokoyama algorithm [SY] -\end{itemize} - -\item Improvement of Buchberger algorithm - -\begin{itemize} -\item Trace lifting+homogenization - -\item Omitting check by compatible prime - -\item Modular change of ordering, Modular RUR - -These are joint works with Yokoyama [NY] -\end{itemize} -\end{itemize} - -\end{slide} - \begin{slide}{} -\fbox{History of development : 1996-1998} +\fbox{History of development : Polynomial factorization} \begin{itemize} -\item Distributed compuatation +\item 1989 -\begin{itemize} -\item A prototype of OpenXM -\end{itemize} +Start of Risa/Asir with Boehm's conservative GC -\item Improvement of Buchberger algorithm +({\tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc}) -\begin{itemize} -\item Content reduction during nomal form computation +\item 1989-1992 -\item Its parallelization by the above facility +Univariate and multivariate factorizers over {\bf Q} -\item Computation of odd order replicable functions [Noro] +\item 1992-1994 -Risa/Asir : it took 5days to compute a DRL basis ({\it McKay}) +Univariate factorization over algebraic number fields -Faug\`ere FGb : computation of the DRL basis 53sec -\end{itemize} +Intensive use of successive extension, non-squarefree norms +\item 1996-1998 -\item Univariate factorization over large finite fields +Univariate factorization over large finite fields -\begin{itemize} -\item To implement Schoof-Elkies-Atkin algorithm +Motivated by a reseach project in Fujitsu on cryptography -Counting rational points on elliptic curves +\item 2000-current ---- not free But related functions are freely available +Multivariate factorization over small finite fields (in progress) \end{itemize} -\end{itemize} - \end{slide} \begin{slide}{} -\fbox{History of development : 1998-2000} -\begin{itemize} -\item OpenXM +\fbox{History of development : Groebner basis} \begin{itemize} -\item OpenXM specification was written by Noro and Takayama +\item 1992-1994 -Borrowed idea on encoding, phrase book from OpenMath [OpenMath] +User language $\Rightarrow$ C version; trace lifting [TRAV88] -\item Functions for distributed computation were rewritten -\end{itemize} +\item 1994-1996 -\item Risa/Asir on Windows +Trace lifting with homogenization -\begin{itemize} -\item Requirement from a company for which Noro worked +Omitting GB check by compatible prime [NOYO99] -Written in Visual C++ -\end{itemize} +Modular change of ordering/RUR[ROUI96] [NOYO99] -\item Test implementation of $F_4$ +Primary ideal decomposition [SHYO96] -\begin{itemize} -\item Implemented according to [Faug\`ere] +\item 1996-1998 -\item Over $GF(p)$ : pretty good +Efficient content reduction during NF computation [NORO97] +Solved {\it McKay} system for the first time -\item Over the rationals : not so good except for {\it McKay} -\end{itemize} -\end{itemize} -\end{slide} +\item 1998-2000 -\begin{slide}{} -\fbox{History of development : 2000-current} -\begin{itemize} -\item The source code is freely available +Test implementation of $F_4$ [FAUG99] -\begin{itemize} -\item Noro moved from Fujitsu to Kobe university +\item 2000-current -Started Kobe branch [Risa/Asir] -\end{itemize} +Buchberger algorithm in Weyl algebra -\item OpenXM [OpenXM] - -\begin{itemize} -\item Revising the specification : OX-RFC100, 101, (102) - -\item OX-RFC102 : communications between servers via MPI +Efficient $b$-function computation[OAKU97] by a modular method \end{itemize} - -\item Weyl algebra - -\begin{itemize} -\item Buchberger algorithm [Takayama] - -\item $b$-function computation [Oaku] - -Minimal polynomial computation by modular method -\end{itemize} -\end{itemize} - \end{slide} \begin{slide}{} -\fbox{Status of each component --- Factorizer} +\fbox{Timing data --- Factorization} -\begin{itemize} -\item 10 years ago +\underline{Univariate; over {\bf Q}} -its performace was fine compared with existing software -like REDUCE, Mathematica. +$N_i$ : a norm of a polynomial, $\deg(N_i) = i$ +\begin{center} +\begin{tabular}{|c||c|c|c|c|} \hline + & $N_{105}$ & $N_{120}$ & $N_{168}$ & $N_{210}$ \\ \hline +Asir & 0.86 & 59 & 840 & hard \\ \hline +Asir NormFactor & 1.6 & 2.2& 6.1& hard \\ \hline +%Singular& hard? & hard?& hard? & hard? \\ \hline +CoCoA 4 & 0.2 & 7.1 & 16 & 0.5 \\ \hline\hline +NTL-5.2 & 0.16 & 0.9 & 1.4 & 0.4 \\ \hline +\end{tabular} +\end{center} -\item 4 years ago +\underline{Multivariate; over {\bf Q}} -Univarate factorization over algebraic number fields was -still fine because of some tricks on factoring polynomials -derived from norms. +$W_{i,j,k} = Wang[i]\cdot Wang[j]\cdot Wang[k]$ in {\tt asir2000/lib/fctrdata} +\begin{center} +\begin{tabular}{|c||c|c|c|c|c|} \hline + & $W_{1,2,3}$ & $W_{4,5,6}$ & $W_{7,8,9}$ & $W_{10,11,12}$ & $W_{13,14,15}$ \\ \hline +Asir & 0.2 & 4.7 & 14 & 17 & 0.4 \\ \hline +%Singular& $>$15min & --- & ---& ---& ---\\ \hline +CoCoA 4 & 5.2 & $>$15min & $>$15min & $>$15min & 117 \\ \hline\hline +Mathematica 4& 0.2 & 16 & 23 & 36 & 1.1 \\ \hline +Maple 7& 0.5 & 18 & 967 & 48 & 1.3 \\ \hline +\end{tabular} +\end{center} -\item Current - -Multivariate : not so bad - -Univariate : completely obsolete by M. van Hoeij's new algorithm -[Hoeij] -\end{itemize} - +%--- : not tested \end{slide} \begin{slide}{} -\fbox{Status of each component --- Groebner basis related functions} +\fbox{Timing data --- DRL Groebner basis computation} -\begin{itemize} -\item 8 years ago +\underline{Over $GF(32003)$} +\begin{center} +\begin{tabular}{|c||c|c|c|c|c|c|c|} \hline + & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $K_9$ & $K_{10}$ & $K_{11}$ \\ \hline +Asir $Buchberger$ & 31 & 1687 & 2.6 & 27 & 294 & 4309 & --- \\ \hline +Singular & 8.7 & 278 & 0.6 & 5.6 & 54 & 508 & 5510 \\ \hline +CoCoA 4 & 241 & $>$ 5h & 3.8 & 35 & 402 &7021 & --- \\ \hline\hline +Asir $F_4$ & 5.3 & 129 & 0.5 & 4.5 & 31 & 273 & 2641 \\ \hline +FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \\ \hline +\end{tabular} +\end{center} -The performace was poor with only the sugar strategy. +\underline{Over {\bf Q}} -\item 7 years ago - -Rather fine with trace lifting but Faug\`ere's (old)Gb was more -efficient. - -Homogenization+trace lifting made it possible to compute -wider range of Groebner bases. - -\item 4 years ago - -Modular RUR was comparable with Rouillier's implementation. - -\item Current - -FGb seems much more efficient than our $F_4$ implementation. - -Singular [Singular] is also several times -faster than Risa/Asir, because Singular seems to have efficient -monomial and polynomial representation. - -\end{itemize} +\begin{center} +\begin{tabular}{|c||c|c|c|c|c|} \hline + & $C_7$ & $Homog. C_7$ & $K_7$ & $K_8$ & $McKay$ \\ \hline +Asir $Buchberger$ & 389 & 594 & 29 & 299 & 34950 \\ \hline +Singular & --- & 15247 & 7.6 & 79 & $>$ 20h \\ \hline +CoCoA 4 & --- & 13227 & 57 & 709 & --- \\ \hline\hline +Asir $F_4$ & 989 & 456 & 90 & 991 & 4939 \\ \hline +FGb(estimated) & 8 &11 & 0.6 & 5 & 10 \\ \hline +\end{tabular} +\end{center} +--- : not tested \end{slide} \begin{slide}{} -\fbox{OpenXM} +\fbox{Summary of performance} \begin{itemize} -\item An environment for parallel distributed computation +\item Factorizer -Both for interactive, non-interactive environment - -\item Message passing - -OX (OpenXM) message : command and data - -\item Hybrid command execution - \begin{itemize} -\item Stack machine command +\item Multivariate : reasonable performance -push, pop, function execution, $\ldots$ - -\item accepts its own command sequences - -{\tt execute\_string} --- easy to use +\item Univariate : obsoleted by M. van Hoeij's new algorithm [HOEI00] \end{itemize} -\item Data is represented as CMO +\item Groebner basis computation -CMO (Common Mathematical Object format) - ---- Serialized representation of mathematical object - -{\sl Integer32}, {\sl Cstring}, {\sl List}, {\sl ZZ}, $\ldots$ -\end{itemize} -\end{slide} - - -\begin{slide}{} -\fbox{OpenXM and OpenMath} - \begin{itemize} -\item OpenMath +\item Buchberger -\begin{itemize} -\item A standard for representing mathematical objects +Singular shows nice perfomance -\item CD (Content Dictionary) : assigns semantics to symbols +Trace lifting is efficient in some cases over {\bf Q} -\item Phrasebook : convesion between internal and OpenMath objects. +\item $F_4$ -\item Encoding : format for actual data exchange -\end{itemize} +FGb is much faster than Risa/Asir -\item OpenXM - -\begin{itemize} -\item Specification for encoding and exchanging messages - -\item It also specifies behavior of servers and session management +But we observe that {\it McKay} is computed efficiently by $F_4$ \end{itemize} - \end{itemize} + \end{slide} \begin{slide}{} -\fbox{OpenXM server interface in Risa/Asir} +\fbox{What is the merit to use Risa/Asir?} \begin{itemize} -\item TCP/IP stream +\item Total performance is not excellent, but not bad -\begin{itemize} -\item Launcher +\item A completely open system -A client executes a launcher on a host. +The whole source is available -The launcher launches a server on the same host. +\item Interface compliant to OpenXM RFC-100 -\item Server +The interface is fully documented -A server reads from the descriptor 3, write to the descriptor 4. +\item It serves as a test bench to try new ideas +Interactive debugger is very useful \end{itemize} -\item Subroutine call - -Risa/Asir subroutine library provides interfaces corresponding to -pushing and popping data and executing stack commands. -\end{itemize} \end{slide} -\begin{slide}{} -\fbox{OpenXM client interface in Risa/Asir} -\begin{itemize} -\item Primitive interface functions - -Pushing and popping data, sending commands etc. - -\item Convenient functions - -Launching servers, calling remote functions, - interrupting remote executions etc. - -\item Parallel distributed computation is easy - -Simple parallelization is practically important - -Competitive computation is easily realized -\end{itemize} -\end{slide} - - %\begin{slide}{} %\fbox{CMO = Serialized representation of mathematical object} % @@ -453,7 +357,7 @@ Competitive computation is easily realized %\begin{itemize} %\item Stack = I/O buffer for (possibly large) objects % -%Multiple requests can be sent before their exection +%Multiple requests can be sent before their execution % %A server does not get stuck in sending results %\end{itemize} @@ -461,36 +365,35 @@ Competitive computation is easily realized %\end{slide} \begin{slide}{} -\fbox{Executing functions on a server (I) --- {\tt SM\_executeFunction}} +\fbox{OpenXM (Open message eXchange protocol for Mathematics) } -\begin{enumerate} -\item (C $\rightarrow$ S) Arguments are sent in binary encoded form. -\item (C $\rightarrow$ S) The number of aruments is sent as {\sl Integer32}. -\item (C $\rightarrow$ S) A function name is sent as {\sl Cstring}. -\item (C $\rightarrow$ S) A command {\tt SM\_executeFunction} is sent. -\item The result is pushed to the stack. -\item (C $\rightarrow$ S) A command {\tt SM\_popCMO} is sent. -\item (S $\rightarrow$ C) The result is sent in binary encoded form. -\end{enumerate} +\begin{itemize} +\item An environment for parallel distributed computation -$\Rightarrow$ Communication is fast, but functions for binary data -conversion are necessary. -\end{slide} +Both for interactive, non-interactive environment -\begin{slide}{} -\fbox{Executing functions on a server (II) --- {\tt SM\_executeString}} +\item OpenXM RFC-100 = Client-server architecture -\begin{enumerate} -\item (C $\rightarrow$ S) A character string represeting a request in a server's -user language is sent as {\sl Cstring}. -\item (C $\rightarrow$ S) A command {\tt SM\_executeString} is sent. -\item The result is pushed to the stack. -\item (C $\rightarrow$ S) A command {\tt SM\_popString} is sent. -\item (S $\rightarrow$ C) The result is sent in readable form. -\end{enumerate} +Client $\Leftarrow$ OX (OpenXM) message $\Rightarrow$ Server -$\Rightarrow$ Communication may be slow, but the client parser may be -enough to read the result. +OX (OpenXM) message : command and data + +\item Data + +Encoding : CMO (Common Mathematical Object format) + +Serialized representation of mathematical object + +--- Main idea was borrowed from OpenMath + +({\tt http://www.openmath.org}) + +\item Command + +stack machine command --- server is a stackmachine + ++ server's own command sequences --- hybrid server +\end{itemize} \end{slide} \begin{slide}{} @@ -521,49 +424,52 @@ def grvsf4(G,V,M,O) \begin{slide}{} \fbox{References} -[Bernardin] L. Bernardin, On square-free factorization of +[BERN97] L. Bernardin, On square-free factorization of multivariate polynomials over a finite field, Theoretical Computer Science 187 (1997), 105-116. -[Boehm] {\tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc} - -[Faug\`ere] J.C. Faug\`ere, +[FAUG99] J.C. Faug\`ere, A new efficient algorithm for computing Groebner bases ($F_4$), Journal of Pure and Applied Algebra (139) 1-3 (1999), 61-88. -[Hoeij] M. van Heoij, Factoring polynomials and the knapsack problem, +[GRAY98] S. Gray et al, +Design and Implementation of MP, A Protocol for Efficient Exchange of +Mathematical Expression, +J. Symb. Comp. {\bf 25} (1998), 213-238. + +[HOEI00] M. van Hoeij, Factoring polynomials and the knapsack problem, to appear in Journal of Number Theory (2000). -[NY] M. Noro, K. Yokoyama, +[LIAO01] W. Liao et al, +OMEI: An Open Mathematical Engine Interface, +Proc. ASCM2001 (2001), 82-91. +[NORO97] M. Noro, J. McKay, +Computation of replicable functions on Risa/Asir. +Proc. PASCO'97, ACM Press (1997), 130-138. +\end{slide} + +\begin{slide}{} + +[NOYO99] M. Noro, K. Yokoyama, A Modular Method to Compute the Rational Univariate Representation of Zero-Dimensional Ideals. J. Symb. Comp. {\bf 28}/1 (1999), 243-263. -[Oaku] T. Oaku, Algorithms for $b$-functions, restrictions and algebraic +[OAKU97] T. Oaku, Algorithms for $b$-functions, restrictions and algebraic local cohomology groups of $D$-modules. -Advancees in Applied Mathematics, 19 (1997), 61-105. -\end{slide} +Advances in Applied Mathematics, 19 (1997), 61-105. -\begin{slide}{} - -[OpenMath] {\tt http://www.openmath.org} - -[OpenXM] {\tt http://www.openxm.org} - -[PARI] {\tt http://www.parigp-home.de} - -[Risa/Asir] {\tt http://www.math.kobe-u.ac.jp/Asir/asir.html} - -[Rouillier] F. Rouillier, +[ROUI96] F. Rouillier, R\'esolution des syst\`emes z\'ero-dimensionnels. Doctoral Thesis(1996), University of Rennes I, France. -[SY] T. Shimoyama, K. Yokoyama, Localization and Primary Decomposition of Polynomial Ideals. J. Symb. Comp. {\bf 22} (1996), 247-277. +[SHYO96] T. Shimoyama, K. Yokoyama, Localization and Primary Decomposition of Polynomial Ideals. J. Symb. Comp. {\bf 22} (1996), 247-277. -[Singular] {\tt http://www.singular.uni-kl.de} +[TRAV88] C. Traverso, \gr trace algorithms. Proc. ISSAC '88 (LNCS 358), 125-138. -[Traverso] C. Traverso, \gr trace algorithms. Proc. ISSAC '88 (LNCS 358), 125-138. - +[WANG99] P. S. Wang, +Design and Protocol for Internet Accessible Mathematical Computation, +Proc. ISSAC '99 (1999), 291-298. \end{slide} \begin{slide}{} @@ -615,7 +521,7 @@ Berlekamp-Zassenhaus Trager's algorithm + some improvement -\item Over finite fieds +\item Over finite fields DDF + Cantor-Zassenhaus; FFT for large finite fields \end{itemize} @@ -627,9 +533,9 @@ DDF + Cantor-Zassenhaus; FFT for large finite fields Classical EZ algorithm -\item Over small finite fieds +\item Over small finite fields -Modified Bernardin's square free algorithm [Bernardin], +Modified Bernardin's square free algorithm [BERN97], possibly Hensel lifting over extension fields \end{itemize} @@ -672,7 +578,7 @@ Key : an efficient implementation of Leibniz rule \begin{itemize} \item More efficient than our Buchberger algorithm implementation -but less efficient than FGb by Faugere +but less efficient than FGb by Faug\`ere \end{itemize} \item Over the rationals @@ -788,6 +694,256 @@ The knapsack factorization is available via {\tt pari( \end{itemize} \end{slide} +\begin{slide}{} +\fbox{OpenXM server interface in Risa/Asir} + +\begin{itemize} +\item TCP/IP stream + +\begin{itemize} +\item Launcher + +A client executes a launcher on a host. + +The launcher launches a server on the same host. + +\item Server + +Reads from the descriptor 3 + +Writes to the descriptor 4 + +\end{itemize} + +\item Subroutine call + +In Risa/Asir subroutine library {\tt libasir.a}: + +OpenXM functionalities are implemented as function calls + +pushing and popping data, executing stack commands etc. +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{OpenXM client interface in Risa/Asir} + +\begin{itemize} +\item Primitive interface functions + +Pushing and popping data, sending commands etc. + +\item Convenient functions + +Launching servers, + +Calling remote functions, + +Resetting remote executions etc. + +\item Parallel distributed computation + +Simple parallelization is practically important + +Competitive computation is easily realized ($\Rightarrow$ demo) +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{Executing functions on a server (I) --- {\tt SM\_executeFunction}} + +\begin{enumerate} +\item (C $\rightarrow$ S) Arguments are sent in binary encoded form. +\item (C $\rightarrow$ S) The number of arguments is sent as {\sl Integer32}. +\item (C $\rightarrow$ S) A function name is sent as {\sl Cstring}. +\item (C $\rightarrow$ S) A command {\tt SM\_executeFunction} is sent. +\item The result is pushed to the stack. +\item (C $\rightarrow$ S) A command {\tt SM\_popCMO} is sent. +\item (S $\rightarrow$ C) The result is sent in binary encoded form. +\end{enumerate} + +$\Rightarrow$ Communication is fast, but functions for binary data +conversion are necessary. +\end{slide} + +\begin{slide}{} +\fbox{Executing functions on a server (II) --- {\tt SM\_executeString}} + +\begin{enumerate} +\item (C $\rightarrow$ S) A character string representing a request in a server's +user language is sent as {\sl Cstring}. +\item (C $\rightarrow$ S) A command {\tt SM\_executeString} is sent. +\item The result is pushed to the stack. +\item (C $\rightarrow$ S) A command {\tt SM\_popString} is sent. +\item (S $\rightarrow$ C) The result is sent in readable form. +\end{enumerate} + +$\Rightarrow$ Communication may be slow, but the client parser may be +enough to read the result. +\end{slide} + +%\begin{slide}{} +%\fbox{History of development : ---1994} +% +%\begin{itemize} +%\item --1989 +% +%Several subroutines were developed for a Prolog program. +% +%\item 1989--1992 +% +%\begin{itemize} +%\item Reconfigured as Risa/Asir with a parser and Boehm's conservative GC +% +%\item Developed univariate and multivariate factorizers over the rationals. +%\end{itemize} +% +%\item 1992--1994 +% +%\begin{itemize} +%\item Started implementation of Buchberger algorithm +% +%Written in user language $\Rightarrow$ rewritten in C (by Murao) +% +%$\Rightarrow$ trace lifting [TRAV88] +% +%\item Univariate factorization over algebraic number fields +% +%Intensive use of successive extension, non-squarefree norms +%\end{itemize} +%\end{itemize} +% +%\end{slide} +% +%\begin{slide}{} +%\fbox{History of development : 1994-1996} +% +%\begin{itemize} +%\item Free distribution of binary versions from Fujitsu +% +%\item Primary ideal decomposition +% +%\begin{itemize} +%\item Shimoyama-Yokoyama algorithm [SHYO96] +%\end{itemize} +% +%\item Improvement of Buchberger algorithm +% +%\begin{itemize} +%\item Trace lifting+homogenization +% +%\item Omitting check by compatible prime +% +%\item Modular change of ordering, Modular RUR +% +%These are joint works with Yokoyama [NOYO99] +%\end{itemize} +%\end{itemize} +% +%\end{slide} +% +%\begin{slide}{} +%\fbox{History of development : 1996-1998} +% +%\begin{itemize} +%\item Distributed computation +% +%\begin{itemize} +%\item A prototype of OpenXM +%\end{itemize} +% +%\item Improvement of Buchberger algorithm +% +%\begin{itemize} +%\item Content reduction during normal form computation +% +%\item Its parallelization by the above facility +% +%\item Computation of odd order replicable functions [NORO97] +% +%Risa/Asir : it took 5days to compute a DRL basis ({\it McKay}) +% +%Faug\`ere FGb : computation of the DRL basis 53sec +%\end{itemize} +% +% +%\item Univariate factorization over large finite fields +% +%\begin{itemize} +%\item To implement Schoof-Elkies-Atkin algorithm +% +%Counting rational points on elliptic curves +% +%--- not free But related functions are freely available +%\end{itemize} +%\end{itemize} +% +%\end{slide} +% +%\begin{slide}{} +%\fbox{History of development : 1998-2000} +%\begin{itemize} +%\item OpenXM +% +%\begin{itemize} +%\item OpenXM specification was written by Noro and Takayama +% +%Borrowed idea on encoding, phrase book from OpenMath +% +%\item Functions for distributed computation were rewritten +%\end{itemize} +% +%\item Risa/Asir on Windows +% +%\begin{itemize} +%\item Requirement from a company for which Noro worked +% +%Written in Visual C++ +%\end{itemize} +% +%\item Test implementation of $F_4$ +% +%\begin{itemize} +%\item Implemented according to [FAUG99] +% +%\item Over $GF(p)$ : pretty good +% +%\item Over the rationals : not so good except for {\it McKay} +%\end{itemize} +%\end{itemize} +%\end{slide} +% +%\begin{slide}{} +%\fbox{History of development : 2000-current} +%\begin{itemize} +%\item The source code is freely available +% +%\begin{itemize} +%\item Noro moved from Fujitsu to Kobe university +% +%Started Kobe branch +%\end{itemize} +% +%\item OpenXM +% +%\begin{itemize} +%\item Revising the specification : OX-RFC100, 101, (102) +% +%\item OX-RFC102 : communications between servers via MPI +%\end{itemize} +% +%\item Weyl algebra +% +%\begin{itemize} +%\item Buchberger algorithm [TAKA90] +% +%\item $b$-function computation [OAKU97] +% +%Minimal polynomial computation by modular method +%\end{itemize} +%\end{itemize} +% +%\end{slide} \begin{slide}{} \end{slide}