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

Diff for /OpenXM/doc/Papers/Attic/dagb-noro.tex between version 1.2 and 1.7

version 1.2, 2001/10/04 04:12:29 version 1.7, 2001/10/10 06:32:10
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.1 2001/10/03 08:32:58 noro Exp $  % $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.6 2001/10/09 11:44:43 noro Exp $
 \setlength{\parskip}{10pt}  \setlength{\parskip}{10pt}
   
 \begin{slide}{}  \begin{slide}{}
 \begin{center}  \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{center}
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{A computer algebra system Risa/Asir}  \fbox{Integration of mathematical software systems}
   
 \begin{itemize}  \begin{itemize}
 \item Old style software for polynomial computation  \item Data integration
   
 \begin{itemize}  \begin{itemize}
 \item Domain specification is not necessary prior to computation  \item OpenMath ({\tt http://www.openmath.org}) , MP [GRAY98]
 \item automatic conversion of inputs into internal canonical forms  
 \end{itemize}  \end{itemize}
   
 \item User language with C-like syntax  Standards for representing mathematical objects
   
   \item Control integration
   
 \begin{itemize}  \begin{itemize}
 \item No type declaration of variables  \item MCP [WANG99], OMEI [LIAO01]
 \item Builtin debugger for user programs  
 \end{itemize}  \end{itemize}
   
 \item Open source  Protocols for remote subroutine calls or session management
   
   \item Combination of two integrations
   
 \begin{itemize}  \begin{itemize}
 \item Whole source tree is available via CVS  \item MathLink, OpenMath+MCP, MP+MCP
   
   and OpenXM ({\tt http://www.openxm.org})
 \end{itemize}  \end{itemize}
   
 \item OpenXM ((Open message eXchange protocol for Mathematics) interface  Both are necessary for practical implementation
   
 \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{itemize}  
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{Major functionalities}  \fbox{OpenXM (Open message eXchange protocol for Mathematics) }
   
 \begin{itemize}  \begin{itemize}
 \item Fundamental polynomial arithmetics  \item An environment for parallel distributed computation
   
 \begin{itemize}  Both for interactive, non-interactive environment
 \item Internal form of a polynomial : recursive representaion or distributed  
 representation  
 \end{itemize}  
   
 \item Polynomial factorization  \item Client-server architecture
   
 \begin{itemize}  Client $\Leftarrow$ OX (OpenXM) message $\Rightarrow$ Server
 \item Univariate factorization over the rationals, algebraic number fields and various finite fields  
   
 \item Multivariate factorization over the rationals  OX (OpenXM) message : command and data
 \end{itemize}  
   
 \item Groebner basis computation  \item Data
   
 \begin{itemize}  Encoding : CMO (Common Mathematical Object format)
 \item Buchberger and $F_4$ [Faug\'ere] algorithm  
   
 \item Change of ordering/RUR [Rouillier] of 0-dimensional ideals  Serialized representation of mathematical object
   
 \item Primary ideal decomposition  --- Main idea was borrowed from OpenMath
   \item Command
   
 \item Computation of $b$-function  stack machine command --- server is a stackmachine
 \end{itemize}  
   
 \item PARI [PARI] library interface  + server's own command sequences --- hybrid server
   
 \item Paralell distributed computation under OpenXM  
 \end{itemize}  \end{itemize}
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{History of development : ---1994}  \fbox{A computer algebra system Risa/Asir}
   
 \begin{itemize}  ({\tt http://www.math.kobe-u.ac.jp/Asir/asir.html})
 \item --1989  
   
 Several subroutines were developed for a Prolog program.  
   
 \item 1989--1992  
   
 \begin{itemize}  \begin{itemize}
 \item Reconfigured as Risa/Asir with a parser and Boehm's conservative GC [Boehm]  \item Traditional style software for polynomial computation
   
 \item Developed univariate and multivariate factorizers over the rationals.  No domain specification, automatic expansion
 \end{itemize}  
   
 \item 1992--1994  \item User language with C-like syntax
   
 \begin{itemize}  C language without type declaration, with list processing
 \item Started implementation of Buchberger algorithm  
   
 Written in user language $\Rightarrow$ rewritten in C (by Murao)  \item Builtin {\tt gdb}-like debugger for user programs
   
 $\Rightarrow$ trace lifting [Traverso]  \item Open source
   
 \item Univariate factorization over algebraic number fields  Whole source tree is available via CVS
   
 Intensive use of successive extension, non-squarefree norms  \item OpenXM interface
   
   \begin{itemize}
   \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}  \end{itemize}
 \end{itemize}  \end{itemize}
   
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{History of development : 1994-1996}  \fbox{Goal of developing Risa/Asir}
   
 \begin{itemize}  \begin{itemize}
 \item Free distribution of binary versions from Fujitsu  \item Efficient implementation in specific area
   
 \item Primary ideal decomposition  
   
 \begin{itemize}  \begin{itemize}
 \item Shimoyama-Yokoyama algorithm [SY]  \item Polynomial factorization
   
   \item Groebner basis related computation
   
   Main target : coefficient swells in characteristic 0 cases
   
   Main tool : modular method
 \end{itemize}  \end{itemize}
   
 \item Improvement of Buchberger algorithm  \item Front-end or server of a general purpose math software
   
   We do not persist in self-containedness
   
 \begin{itemize}  \begin{itemize}
 \item Trace lifting+homogenization  
   
 \item Omitting check by compatible prime  \item contains PARI library ({\tt http://www.parigp-home.de}) from the very beginning
   
 \item Modular change of ordering, Modular RUR  \item also acts as a main client of OpenXM package
   
 These are joint works with Yokoyama [NY]  One can use various OpenXM servers
   
 \end{itemize}  \end{itemize}
 \end{itemize}  
   
   \end{itemize}
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{History of development : 1996-1998}  \fbox{Capability for polynomial computation}
   
 \begin{itemize}  \begin{itemize}
 \item Distributed compuatation  \item Fundamental polynomial arithmetics
   
 \begin{itemize}  recursive representation and distributed representation
 \item A prototype of OpenXM  
 \end{itemize}  
   
 \item Improvement of Buchberger algorithm  \item Polynomial factorization
   
 \begin{itemize}  \begin{itemize}
 \item Content reduction during nomal form computation  \item Univariate : over {\bf Q}, algebraic number fields and finite fields
   
 \item Its parallelization by the above facility  \item Multivariate : over {\bf Q}
   
 \item Computation of odd order replicable functions [Noro]  
   
 Risa/Asir : it took 5days to compute a DRL basis ({\it McKay})  
   
 Faug\`ere FGb : computation of the DRL basis 53sec  
 \end{itemize}  \end{itemize}
   
   \item Groebner basis computation
   
 \item Univariate factorization over large finite fields  
   
 \begin{itemize}  \begin{itemize}
 \item To implement Schoof-Elkies-Atkin algorithm  \item Buchberger and $F_4$ [FAUG99] algorithm
   
 Counting rational points on elliptic curves  \item Change of ordering/RUR [ROUI96] of 0-dimensional ideals
   
 --- not free But related functions are freely available  \item Primary ideal decomposition
   
   \item Computation of $b$-function (in Weyl Algebra)
 \end{itemize}  \end{itemize}
 \end{itemize}  \end{itemize}
   
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{History of development : 1998-2000}  \fbox{History of development : Polynomial factorization}
 \begin{itemize}  
 \item OpenXM  
   
 \begin{itemize}  \begin{itemize}
 \item OpenXM specification was written by Noro and Takayama  \item 1989
   
 Borrowed idea on encoding, phrase book from OpenMath [OpenMath]  Start of Risa/Asir with Boehm's conservative GC
   
 \item Functions for distributed computation were rewritten  ({\tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc})
 \end{itemize}  
   
 \item Risa/Asir on Windows  \item 1989-1992
   
 \begin{itemize}  Univariate and multivariate factorizers over {\bf Q}
 \item Requirement from a company for which Noro worked  
   
 Written in Visual C++  \item 1992-1994
 \end{itemize}  
   
 \item Test implementation of $F_4$  Univariate factorization over algebraic number fields
   
 \begin{itemize}  Intensive use of successive extension, non-squarefree norms
 \item Implemented according to [Faug\`ere]  
   
 \item Over $GF(p)$ : pretty good  \item 1996-1998
   
 \item Over the rationals : not so good except for {\it McKay}  Univariate factorization over large finite fields
   
   \item 2000-current
   
   Multivariate factorization over small finite fields (in progress)
 \end{itemize}  \end{itemize}
 \end{itemize}  
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{History of development : 2000-current}  \fbox{History of development : Groebner basis}
 \begin{itemize}  
 \item The source code is freely available  
   
 \begin{itemize}  \begin{itemize}
 \item Noro moved from Fujitsu to Kobe university  \item 1992-1994
   
 Started Kobe branch [Risa/Asir]  User language $\Rightarrow$ C version; trace lifting [TRAV88]
 \end{itemize}  
   
 \item OpenXM [OpenXM]  \item 1994-1996
   
 \begin{itemize}  Trace lifting with homogenization
 \item Revising the specification : OX-RFC100, 101, (102)  
   
 \item OX-RFC102 : communications between servers via MPI  Omitting GB check by compatible prime [NOYO99]
 \end{itemize}  
   
 \item Rings of differential operators  Modular change of ordering/RUR [NOYO99]
   
 \begin{itemize}  Primary ideal decomposition [SHYO96]
 \item Buchberger algorithm [Takayama]  
   
 \item $b$-function computation [OT]  \item 1996-1998
   
 Minimal polynomial computation by modular method  Efficient content reduction during NF computation [NORO97]
 \end{itemize}  Solved {\it McKay} system for the first time
 \end{itemize}  
   
   \item 1998-2000
   
   Test implementation of $F_4$
   
   \item 2000-current
   
   Buchberger algorithm in Weyl algebra [TAKA90]
   
   Efficient $b$-function computation by a modular method
   \end{itemize}
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{Status of each component --- Factorizer}  \fbox{Performance --- Factorizer}
   
 \begin{itemize}  \begin{itemize}
 \item 10 years ago  
   
 its performace was fine compared with existing software  
 like REDUCE, Mathematica.  
   
 \item 4 years ago  \item 4 years ago
   
 Univarate factorization over algebraic number fields was  Over {\bf Q} : fine compared with existing software
 still fine because of some tricks on factoring polynomials  like REDUCE, Mathematica, maple
   
   Univariate, over algebraic number fields :
   fine because of some tricks for polynomials
 derived from norms.  derived from norms.
   
 \item Current  \item Current
   
 Multivariate : not so bad  Multivariate : moderate
   
 Univariate : completely obsolete by M. van Hoeij's new algorithm  Univariate : completely obsoleted by M. van Hoeij's new algorithm
 [Hoeij]  [HOEI00]
 \end{itemize}  \end{itemize}
   
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{Status of each component --- Groebner basis related functions}  \fbox{Timing data --- Factorization}
   
 \begin{itemize}  \underline{Univariate; over {\bf Q}}
 \item 8 years ago  
   
 The performace was poor with only the sugar strategy.  $N_i$ : a norm of a poly, $\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 7 years ago  \underline{Multivariate; over {\bf Q}}
   
 Rather fine with trace lifting but Faug\`ere's (old)Gb was more  $W_{i,j,k} = Wang[i]\cdot Wang[j]\cdot Wang[k]$ in {\tt asir2000/lib/fctrdata}
 efficient.  \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& 0.2        & 16    & 23 & 36 & 1.1 \\ \hline
   \end{tabular}
   \end{center}
   
 Homogenization+trace lifting made it possible to compute  --- : not tested
 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's Groebner basis computation is also several times  
 faster than Risa/Asir, because Singular seems to have efficient  
 monomial and polynomial representation.  
   
 \end{itemize}  
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{OpenXM}  \fbox{Performance --- Groebner basis related computation}
   
 \begin{itemize}  \begin{itemize}
 \item An environment for parallel distributed computation  \item 7 years ago
   
 Both for interactive, non-interactive environment  Trace lifting : rather fine but coefficient swells often occur
   
 \item Message passing  Homogenization+trace lifting : robust and fast in the above cases
   
 OX (OpenXM) message : command and data  \item 4 years ago
   
 \item Hybrid command execution  Modular RUR was comparable with Rouillier's implementation.
   
 \begin{itemize}  DRL basis of {\it McKay}:
 \item Stack machine command  
   
 push, pop, function execution, $\ldots$  5 days on Risa/Asir, 53 seconds on Faug\`ere FGb
   \item Current
   
 \item accepts its own command sequences  $F_4$ in FGb : much more efficient than $F_4$ in Risa/Asir
   
 {\tt execute\_string} --- easy to use  Buchberger in Singular ({\tt http://www.singular.uni-kl.de})
 \end{itemize}  : faster than Risa/Asir
   
 \item Data is represented as CMO  
   
 CMO (Common Mathematical Object format)  $\Leftarrow$ efficient monomial and polynomial computation
   
 --- Serialized representation of mathematical object  
   
 {\sl Integer32}, {\sl Cstring}, {\sl List}, {\sl ZZ}, $\ldots$  
 \end{itemize}  \end{itemize}
 \end{slide}  \end{slide}
   
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{OpenXM and OpenMath}  \fbox{Timing data --- DRL Groebner basis computation}
   
 \begin{itemize}  \underline{Over $GF(32003)$}
 \item OpenMath  \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 & & 3.8 & 35 & 402 & & --- \\ \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}
   
 \begin{itemize}  \underline{Over {\bf Q}}
 \item A standard for representing mathematical objects  
   
 \item CD (Content Dictionary) : assigns semantics to symbols  \begin{center}
   \begin{tabular}{|c||c|c|c|c|c|} \hline
 \item Phrasebook : convesion between internal and OpenMath objects.                  & $C_7$ & $Homog. C_7$ & $K_7$ & $K_8$ & $McKay$ \\ \hline
   Asir $Buchberger$       & 389 & 594 & 29 & 299 & 34950 \\ \hline
 \item Encoding : format for actual data exchange  Singular & --- & 15247 & 7.6 & 79 & $>$ 20h \\ \hline
 \end{itemize}  CoCoA 4 & --- & 13227 & 57 & 709 & --- \\ \hline\hline
   Asir $F_4$      &  989 & 456 & 90 & 991 & 4939 \\ \hline
 \item OpenXM  FGb(estimated)  & 8 &11 & 0.6 & 5 & 10 \\ \hline
   \end{tabular}
 \begin{itemize}  \end{center}
 \item Specification for encoding and exchanging messages  --- : not tested
   
 \item It also specifies behavior of servers and session management  
 \end{itemize}  
   
 \end{itemize}  
 \end{slide}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
 \fbox{OpenXM server interface in Risa/Asir}  \fbox{How do we proceed?}
   
 \begin{itemize}  \underline{Total performance : not excellent, but not so bad}
 \item TCP/IP stream  
   
 \begin{itemize}  \begin{itemize}
 \item Launcher  \item Trying to improve our implementation
   
 A client executes a launcher on a host.  This is very important as a motivation of further development
   
 The launcher launches a server on the same host.  \begin{itemize}
   
 \item Server  \item Computation of $b$-function
   
 A server reads from the descriptor 3, write to the descriptor 4.  fast but not satisfactory
   
   $\Rightarrow$ Groebner basis computation in Weyl
   algebra should be improved
 \end{itemize}  \end{itemize}
   
 \item Subroutine call  \item Developing new OpenXM servers
   
 Risa/Asir subroutine library provides interfaces corresponding to  {ox\_NTL} for univariate factorization,
 pushing and popping data and executing stack commands.  
 \end{itemize}  
 \end{slide}  
   
 \begin{slide}{}  {ox\_???} for Groebner basis computation, etc.
 \fbox{OpenXM client interface in Risa/Asir}  
   
 \begin{itemize}  $\Rightarrow$ Risa/Asir can be a front-end of efficient servers
 \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{itemize}
   
   \begin{center}
   \underline{In both cases, OpenXM interface is important}
   \end{center}
 \end{slide}  \end{slide}
   
   
Line 453  Competitive computation is easily realized 
Line 422  Competitive computation is easily realized 
 %\begin{itemize}  %\begin{itemize}
 %\item Stack = I/O buffer for (possibly large) objects  %\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  %A server does not get stuck in sending results
 %\end{itemize}  %\end{itemize}
Line 461  Competitive computation is easily realized 
Line 430  Competitive computation is easily realized 
 %\end{slide}  %\end{slide}
   
 \begin{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 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}  
   
 $\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 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}  
   
 $\Rightarrow$ Communication may be slow, but the client parser may be  
 enough to read the result.  
 \end{slide}  
   
 \begin{slide}{}  
 \fbox{Example of distributed computation --- $F_4$ vs. $Buchberger$ }  \fbox{Example of distributed computation --- $F_4$ vs. $Buchberger$ }
   
 \begin{verbatim}  \begin{verbatim}
Line 521  def grvsf4(G,V,M,O)
Line 457  def grvsf4(G,V,M,O)
 \begin{slide}{}  \begin{slide}{}
 \fbox{References}  \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  multivariate polynomials over a finite field, Theoretical
 Computer Science 187 (1997), 105-116.  Computer Science 187 (1997), 105-116.
   
 [Boehm] {\tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc}  [FAUG99] J.C. Faug\`ere,
   
 [Faug\`ere] J.C. Faug\`ere,  
 A new efficient algorithm for computing Groebner bases  ($F_4$),  A new efficient algorithm for computing Groebner bases  ($F_4$),
 Journal of Pure and Applied Algebra (139) 1-3 (1999), 61-88.  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 Heoij, Factoring polynomials and the knapsack problem,
 to appear in Journal of Number Theory (2000).  to appear in Journal of Number Theory (2000).
   
 [SY] T. Shimoyama, K. Yokoyama, Localization and Primary Decomposition of Polynomial Ideals.  J. Symb. Comp. {\bf 22} (1996), 247-277.  [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}
   
 [NY] M. Noro, K. Yokoyama,  \begin{slide}{}
   
   [NOYO99] M. Noro, K. Yokoyama,
 A Modular Method to Compute the Rational Univariate  A Modular Method to Compute the Rational Univariate
 Representation of Zero-Dimensional Ideals.  Representation of Zero-Dimensional Ideals.
 J. Symb. Comp. {\bf 28}/1 (1999), 243-263.  J. Symb. Comp. {\bf 28}/1 (1999), 243-263.
   
 [OpenMath] {\tt http://www.openmath.org}  [OAKU97] T. Oaku, Algorithms for $b$-functions, restrictions and algebraic
   local cohomology groups of $D$-modules.
   Advances in Applied Mathematics, 19 (1997), 61-105.
   
 [OpenXM] {\tt http://www.openxm.org}  [ROUI96] F. Rouillier,
   
 [PARI] {\tt http://www.parigp-home.de}  
   
 [Risa/Asir] {\tt http://www.math.kobe-u.ac.jp/Asir/asir.html}  
   
 [Rouillier] F. Rouillier,  
 R\'esolution des syst\`emes z\'ero-dimensionnels.  R\'esolution des syst\`emes z\'ero-dimensionnels.
 Doctoral Thesis(1996), University of Rennes I, France.  Doctoral Thesis(1996), University of Rennes I, France.
   
 [Traverso] C. Traverso, \gr trace algorithms. Proc. ISSAC '88 (LNCS 358), 125-138.  [SHYO96] T. Shimoyama, K. Yokoyama, Localization and Primary Decomposition of Polynomial Ideals.  J. Symb. Comp. {\bf 22} (1996), 247-277.
   
   [TRAV88] 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}  \end{slide}
   
 \begin{slide}{}  \begin{slide}{}
Line 606  Berlekamp-Zassenhaus
Line 554  Berlekamp-Zassenhaus
   
 Trager's algorithm + some improvement  Trager's algorithm + some improvement
   
 \item Over finite fieds  \item Over finite fields
   
 DDF + Cantor-Zassenhaus; FFT for large finite fields  DDF + Cantor-Zassenhaus; FFT for large finite fields
 \end{itemize}  \end{itemize}
Line 618  DDF + Cantor-Zassenhaus; FFT for large finite fields
Line 566  DDF + Cantor-Zassenhaus; FFT for large finite fields
   
 Classical EZ algorithm  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  possibly Hensel lifting over extension fields
 \end{itemize}  \end{itemize}
Line 645  Guess of a groebner basis by detecting zero reduction 
Line 593  Guess of a groebner basis by detecting zero reduction 
 Homogenization+guess+dehomogenization+check  Homogenization+guess+dehomogenization+check
 \end{itemize}  \end{itemize}
   
 \item Rings of differential operators  \item Weyl Algebra
   
 \begin{itemize}  \begin{itemize}
 \item Groebner basis of a left ideal  \item Groebner basis of a left ideal
Line 663  Key : an efficient implementation of Leibniz rule
Line 611  Key : an efficient implementation of Leibniz rule
 \begin{itemize}  \begin{itemize}
 \item More efficient than our Buchberger algorithm implementation  \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}  \end{itemize}
   
 \item Over the rationals  \item Over the rationals
Line 730  An ideal whose radical is prime
Line 678  An ideal whose radical is prime
 \begin{slide}{}  \begin{slide}{}
 \fbox{Computation of $b$-function}  \fbox{Computation of $b$-function}
   
 $D$ : the ring of differential operators  $D=K\langle x,\partial \rangle$ : Weyl algebra
   
 $b(s)$ : a polynomial of the smallest degree s.t.  $b(s)$ : a polynomial of the smallest degree s.t.
 there exists $P(s) \in D[s]$, $P(s)f^{s+1}=b(s)f^s$  there exists $P(s) \in D[s]$, $P(s)f^{s+1}=b(s)f^s$
Line 779  The knapsack factorization is available via {\tt pari(
Line 727  The knapsack factorization is available via {\tt pari(
 \end{itemize}  \end{itemize}
 \end{slide}  \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}{}  \begin{slide}{}
 \end{slide}  \end{slide}
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>