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

Diff for /OpenXM/doc/Papers/Attic/dag-noro.tex between version 1.2 and 1.3

version 1.2, 2001/10/10 06:32:10 version 1.3, 2001/10/12 02:22:17
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/Papers/dag-noro.tex,v 1.1 2001/10/03 08:32:58 noro Exp $  % $OpenXM: OpenXM/doc/Papers/dag-noro.tex,v 1.2 2001/10/10 06:32:10 noro Exp $
 \documentstyle[epsf]{slides}  \documentclass{slides}
 \newtheorem{df}{Definition}  \usepackage{color}
 \newtheorem{pr}[df]{Proposition}  \usepackage{rgb}
 \newtheorem{lm}[df]{Lemma}  \usepackage{graphicx}
 \newtheorem{th}[df]{Theorem}  \usepackage{epsfig}
 \newtheorem{co}[df]{Corollary}  
 \newtheorem{al}[df]{Algorithm}  
 \newtheorem{re}[df]{Remark}  
 \newtheorem{ex}[df]{Example}  
 \newtheorem{mt}[df]{Method}  
 \newtheorem{nt}[df]{Notation}  
 \newtheorem{as}[df]{Assumption}  
 \newtheorem{pro}[df]{Procedure}  
 \newtheorem{prob}[df]{Probrem}  
 \newcommand{\qed}{$\Box$}  \newcommand{\qed}{$\Box$}
 \newcommand{\mred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}}}  \newcommand{\mred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}}}
 \newcommand{\tmred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}\limits^{\scriptstyle *}}}  \newcommand{\tmred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}\limits^{\scriptstyle *}}}
Line 25 
Line 16 
 \columnsep 0.33in  \columnsep 0.33in
 \topmargin -1in  \topmargin -1in
   
 \title{OpenXM and a computer algebra system Risa/Asir}  \title{A computer algebra system Risa/Asir and OpenXM}
   
 \author{Masayuki Noro\\ Kobe University}  \author{Masayuki Noro\\ Kobe University, Japan}
 \begin{document}  \begin{document}
 \setlength{\parskip}{10pt}  \setlength{\parskip}{10pt}
 \maketitle  \maketitle
 \blackandwhite{dagb-noro.tex}  
 \end{document}  
   
   %\begin{slide}{}
   %\begin{center}
   %\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}
   
   ({\tt http://www.math.kobe-u.ac.jp/Asir/asir.html})
   
   \begin{itemize}
   \item Software mainly for polynomial computation
   
   \item User language with C-like syntax
   
   C language without type declaration, with list processing
   
   \item Builtin {\tt gdb}-like debugger for user programs
   
   \item Open source
   
   Whole source tree is available via CVS
   
   The latest version : see {\tt http://www.openxm.org}
   
   \item OpenXM interface
   
   \begin{itemize}
   \item OpenXM
   
   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}
   \end{itemize}
   \end{slide}
   
   \begin{slide}{}
   \fbox{Goal of developing Risa/Asir}
   
   \begin{itemize}
   \item Testing new algorithms
   
   \begin{itemize}
   \item Development started in Fujitsu labs
   
   Polynomial factorization, Groebner basis related computation,
   cryptosystems , quantifier elimination , $\ldots$
   \end{itemize}
   
   \item To be a general purpose, open system
   
   Since 1997, we have been developing OpenXM package
   containing various servers and clients
   
   Risa/Asir is a component of OpenXM
   
   \item Environment for parallel and distributed computation
   
   \end{itemize}
   \end{slide}
   
   %\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{slide}{}
   \fbox{History of development : Polynomial factorization}
   
   \begin{itemize}
   \item 1989
   
   Start of Risa/Asir with Boehm's conservative GC
   
   ({\tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc})
   
   \item 1989-1992
   
   Univariate and multivariate factorizers over {\bf Q}
   
   \item 1992-1994
   
   Univariate factorization over algebraic number fields
   
   Intensive use of successive extension, non-squarefree norms
   
   \item 1996-1998
   
   Univariate factorization over large finite fields
   
   Motivated by a reseach project in Fujitsu on cryptography
   
   \item 2000-current
   
   Multivariate factorization over small finite fields (in progress)
   \end{itemize}
   \end{slide}
   
   \begin{slide}{}
   \fbox{History of development : Groebner basis}
   
   \begin{itemize}
   \item 1992-1994
   
   User language $\Rightarrow$ C version; trace lifting [TRAV88]
   
   \item 1994-1996
   
   Trace lifting with homogenization
   
   Omitting GB check by compatible prime [NOYO99]
   
   Modular change of ordering/RUR[ROUI96] [NOYO99]
   
   Primary ideal decomposition [SHYO96]
   
   \item 1996-1998
   
   Efficient content reduction during NF computation [NORO97]
   Solved {\it McKay} system for the first time
   
   \item 1998-2000
   
   Test implementation of $F_4$ [FAUG99]
   
   \item 2000-current
   
   Buchberger algorithm in Weyl algebra
   
   Efficient $b$-function computation[OAKU97] by a modular method
   \end{itemize}
   \end{slide}
   
   \begin{slide}{}
   \fbox{Timing data --- Factorization}
   
   \underline{Univariate; over {\bf Q}}
   
   $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}
   
   \underline{Multivariate; over {\bf Q}}
   
   $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}
   
   %--- : not tested
   \end{slide}
   
   \begin{slide}{}
   \fbox{Timing data --- DRL Groebner basis computation}
   
   \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}
   
   \underline{Over {\bf Q}}
   
   \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{Summary of performance}
   
   \begin{itemize}
   \item Factorizer
   
   \begin{itemize}
   \item Multivariate : reasonable performance
   
   \item Univariate : obsoleted by M. van Hoeij's new algorithm [HOEI00]
   \end{itemize}
   
   \item Groebner basis computation
   
   \begin{itemize}
   \item Buchberger
   
   Singular shows nice perfomance
   
   Trace lifting is efficient in some cases over {\bf Q}
   
   \item $F_4$
   
   FGb is much faster than Risa/Asir
   
   But we observe that {\it McKay} is computed efficiently by $F_4$
   \end{itemize}
   \end{itemize}
   
   \end{slide}
   
   \begin{slide}{}
   \fbox{What is the merit to use Risa/Asir?}
   
   \begin{itemize}
   \item Total performance is not excellent, but not bad
   
   \item A completely open system
   
   The whole source is available
   
   \item Interface compliant to OpenXM RFC-100
   
   The interface is fully documented
   
   \item It serves as a test bench to try new ideas
   
   Interactive debugger is very useful
   \end{itemize}
   
   \end{slide}
   
   
   %\begin{slide}{}
   %\fbox{CMO = Serialized representation of mathematical object}
   %
   %\begin{itemize}
   %\item primitive data
   %\begin{eqnarray*}
   %\mbox{Integer32} &:& ({\tt CMO\_INT32}, {\sl int32}\ \mbox{n}) \\
   %\mbox{Cstring}&:& ({\tt CMO\_STRING},{\sl int32}\,  \mbox{ n}, {\sl string}\, \mbox{s}) \\
   %\mbox{List} &:& ({\tt CMO\_LIST}, {\sl int32}\, len, ob[0], \ldots,ob[m-1])
   %\end{eqnarray*}
   %
   %\item numbers and polynomials
   %\begin{eqnarray*}
   %\mbox{ZZ}         &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots
   %{\sl byte}\, \mbox{a[$|$f$|$]} ) \\
   %\mbox{Monomial32}&:& ({\tt CMO\_MONOMIAL32}, n, \mbox{e[1]}, \ldots, \mbox{e[n]}, \mbox{Coef}) \\
   %\mbox{Coef}&:& \mbox{ZZ} | \mbox{Integer32} \\
   %\mbox{Dpolynomial}&:& ({\tt CMO\_DISTRIBUTED\_POLYNOMIAL},\\
   %                  & & m, \mbox{DringDefinition}, \mbox{Monomial32}, \ldots)\\
   %\mbox{DringDefinition}
   %                  &:& \mbox{DMS of N variables} \\
   %                  & & ({\tt CMO\_RING\_BY\_NAME}, name) \\
   %                  & & ({\tt CMO\_DMS\_GENERIC}) \\
   %\end{eqnarray*}
   %\end{itemize}
   %\end{slide}
   %
   %\begin{slide}{}
   %\fbox{Stack based communication}
   %
   %\begin{itemize}
   %\item Data arrived a client
   %
   %Pushed to the stack
   %
   %\item Result
   %
   %Pushd to the stack
   %
   %Written to the stream when requested by a command
   %
   %\item The reason why we use the stack
   %
   %\begin{itemize}
   %\item Stack = I/O buffer for (possibly large) objects
   %
   %Multiple requests can be sent before their execution
   %
   %A server does not get stuck in sending results
   %\end{itemize}
   %\end{itemize}
   %\end{slide}
   
   \begin{slide}{}
   \fbox{OpenXM (Open message eXchange protocol for Mathematics) }
   
   \begin{itemize}
   \item An environment for parallel distributed computation
   
   Both for interactive, non-interactive environment
   
   \item OpenXM RFC-100 = Client-server architecture
   
   Client $\Leftarrow$ OX (OpenXM) message $\Rightarrow$ Server
   
   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}{}
   \fbox{Example of distributed computation --- $F_4$ vs. $Buchberger$ }
   
   \begin{verbatim}
   /* competitive Gbase computation over GF(M) */
   /* Cf. A.28 in SINGULAR Manual */
   /* Process list is specified as an option : grvsf4(...|proc=P) */
   def grvsf4(G,V,M,O)
   {
     P = getopt(proc);
     if ( type(P) == -1 ) return dp_f4_mod_main(G,V,M,O);
     P0 = P[0]; P1 = P[1]; P = [P0,P1];
     map(ox_reset,P);
     ox_cmo_rpc(P0,"dp_f4_mod_main",G,V,M,O);
     ox_cmo_rpc(P1,"dp_gr_mod_main",G,V,0,M,O);
     map(ox_push_cmd,P,262); /* 262 = OX_popCMO */
     F = ox_select(P); R = ox_get(F[0]);
     if ( F[0] == P0 ) { Win = "F4"; Lose = P1;}
     else { Win = "Buchberger"; Lose = P0; }
     ox_reset(Lose); /* simply resets the loser */
     return [Win,R];
   }
   \end{verbatim}
   \end{slide}
   
   \begin{slide}{}
   \fbox{References}
   
   [BERN97] L. Bernardin, On square-free factorization of
   multivariate polynomials over a finite field, Theoretical
   Computer Science 187 (1997), 105-116.
   
   [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.
   
   [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).
   
   [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.
   
   [OAKU97] T. Oaku, Algorithms for $b$-functions, restrictions and algebraic
   local cohomology groups of $D$-modules.
   Advances in Applied Mathematics, 19 (1997), 61-105.
   
   [ROUI96] F. Rouillier,
   R\'esolution des syst\`emes z\'ero-dimensionnels.
   Doctoral Thesis(1996), University of Rennes I, France.
   
   [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{document}

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

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