=================================================================== RCS file: /home/cvs/OpenXM/doc/Papers/Attic/dag-noro.tex,v retrieving revision 1.1 retrieving revision 1.5 diff -u -p -r1.1 -r1.5 --- OpenXM/doc/Papers/Attic/dag-noro.tex 2001/10/03 08:32:58 1.1 +++ OpenXM/doc/Papers/Attic/dag-noro.tex 2001/10/12 05:11:36 1.5 @@ -1,18 +1,9 @@ -% $OpenXM$ -\documentstyle[epsf]{slides} -\newtheorem{df}{Definition} -\newtheorem{pr}[df]{Proposition} -\newtheorem{lm}[df]{Lemma} -\newtheorem{th}[df]{Theorem} -\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} +% $OpenXM: OpenXM/doc/Papers/dag-noro.tex,v 1.4 2001/10/12 02:58:35 noro Exp $ +\documentclass{slides} +\usepackage{color} +\usepackage{rgb} +\usepackage{graphicx} +\usepackage{epsfig} \newcommand{\qed}{$\Box$} \newcommand{\mred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}}} \newcommand{\tmred}[1]{\smash{\mathop{\hbox{\rightarrowfill}}\limits_{\scriptstyle #1}\limits^{\scriptstyle *}}} @@ -24,13 +15,512 @@ \textheight 7.2in \columnsep 0.33in \topmargin -1in +\def\tc{\color{red}} +\def\fbc{\bf\color{MediumBlue}} +\def\itc{\color{brown}} +\def\urlc{\bf\color{DarkGreen}} +\def\bc{\color{LightGoldenrod1}} -\title{Introduction of a computer algebra system/library Risa/Asir} +\title{\tc A computer algebra system Risa/Asir and OpenXM} -\author{Masayuki Noro\\ Kobe University} +\author{Masayuki Noro\\ Kobe University, Japan} \begin{document} \setlength{\parskip}{10pt} \maketitle -\blackandwhite{dagb-noro.tex} -\end{document} +%\begin{slide}{} +%\begin{center} +%\fbox{\fbc \large Part I : OpenXM and Risa/Asir --- overview and history} +%\end{center} +%\end{slide} + +%\begin{slide}{} +%\fbox{\fbc Integration of mathematical software systems} +% +%\begin{itemize} +%\item Data integration +% +%\begin{itemize} +%\item OpenMath ({\urlc \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 ({\urlc \tt http://www.openxm.org}) +%\end{itemize} +% +%Both are necessary for practical implementation +% +%\end{itemize} +%\end{slide} +\begin{slide}{} +\fbox{\fbc A computer algebra system Risa/Asir} + +\begin{itemize} +\item {\itc Software mainly for polynomial computation} + +Polynomial factorization, Groebner basis computation +\item {\itc User language with C-like syntax} + +C language without type declaration, with list processing + +\item {\itc Builtin {\tt gdb}-like debugger for user programs} + +\item {\itc Open source} ({\urlc \tt http://www.math.kobe-u.ac.jp/Asir/asir.html}) + +The source and binaries are available via ftp or CVS + +See {\urlc \tt http://www.openxm.org} to get the latest version + +\item {\itc OpenXM interface} + +\begin{itemize} +\item OpenXM ({\urlc \tt http://www.openxm.org}) + +An infrastructure for exchanging mathematical data +\item Risa/Asir is a main client in OpenXM package +\item {\tt ox\_asir} is an OpenXM server +\item {\tt libasir.a} provides OpenXM interface via function call +\end{itemize} +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{\fbc Goal of developing Risa/Asir} + +\begin{itemize} +\item {\itc Testing new algorithms} + +\begin{itemize} +\item Development started in Fujitsu labs + +Polynomial factorization, Groebner basis related computation, +cryptosystems , quantifier elimination , $\ldots$ +\end{itemize} + +\item {\itc 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 {\itc Environment for parallel and distributed computation} + +\end{itemize} +\end{slide} + +%\begin{slide}{} +%\fbox{\fbc 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{\fbc History of development : Polynomial factorization} + +\begin{itemize} +\item {\itc 1989} + +Start of Risa/Asir with Boehm's conservative GC + +({\urlc \tt http://www.hpl.hp.com/personal/Hans\_Boehm/gc}) + +\item {\itc 1989-1992} + +Univariate and multivariate factorizers over {\bf Q} + +\item {\itc 1992-1994} + +Univariate factorization over algebraic number fields + +Intensive use of successive extension, non-squarefree norms + +Application to splitting field and Galois group computation + +\item {\itc 1996-1998} + +Univariate factorization over large finite fields + +Motivated by a reseach project in Fujitsu on cryptography + +\item {\itc 2000-current} + +Multivariate factorization over small finite fields (in progress) +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{\fbc History of development : Groebner basis} + +\begin{itemize} +\item {\itc 1992-1994} + +User language $\Rightarrow$ C version; trace lifting [TRAV88] + +\item {\itc 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 {\itc 1996-1998} + +Efficient content reduction during NF computation [NORO97] +Solved {\it McKay} system for the first time + +\item {\itc 1998-2000} + +Test implementation of $F_4$ [FAUG99] + +\item {\itc 2000-current} + +Buchberger algorithm in Weyl algebra + +Efficient $b$-function computation[OAKU97] by a modular method +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{\fbc Timing data --- Factorization} + +\underline{\itc Univariate; over {\bf Q}} + +$N_{i,j}$ : a norm of a polynomial, $\deg(N_i) = i$ with $j$ modular factor +\begin{center} +\begin{tabular}{|c||c|c|c|c|} \hline + & $N_{105,23}$ & $N_{120,20}$ & $N_{168,24}$ & $N_{210,54}$ \\ \hline +{\tc Asir} & {\tc 0.86} & {\tc 59} & {\tc 840} & {\tc 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{\itc 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 +variables & 3 & 5 & 5 & 5 & 4 \\ \hline +monomials & 905 & 41369 & 51940 & 30988 & 3344 \\ \hline\hline +{\tc Asir} & {\tc 0.2} & {\tc 4.7} & {\tc 14} & {\tc 17} & {\tc 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{\fbc Timing data --- DRL Groebner basis computation} + +\underline{\itc 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 +{\tc Asir $Buchberger$} & {\tc 31} & {\tc 1687} & {\tc 2.6} & {\tc 27} & {\tc 294} & {\tc 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 +{\tc Asir $F_4$} & {\tc 5.3} & {\tc 129} & {\tc 0.5} & {\tc 4.5} & {\tc 31} & {\tc 273} & {\tc 2641} \\ \hline +FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \\ \hline +\end{tabular} +\end{center} + +\underline{\itc 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 +{\tc Asir $Buchberger$} & {\tc 389} & {\tc 594} & {\tc 29} & {\tc 299} & {\tc 34950} \\ \hline +Singular & --- & 15247 & 7.6 & 79 & $>$ 20h \\ \hline +CoCoA 4 & --- & 13227 & 57 & 709 & --- \\ \hline\hline +{\tc Asir $F_4$} & {\tc 989} & {\tc 456} & {\tc 90} & {\tc 991} & {\tc 4939} \\ \hline +FGb(estimated) & 8 &11 & 0.6 & 5 & 10 \\ \hline +\end{tabular} +\end{center} +--- : not tested +\end{slide} + +\begin{slide}{} +\fbox{\fbc Summary of performance} + +\begin{itemize} +\item {\itc Factorizer} + +\begin{itemize} +\item Multivariate : reasonable performance + +\item Univariate : obsoleted by M. van Hoeij's new algorithm [HOEI00] +\end{itemize} + +\item {\itc 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{\fbc What is the merit to use Risa/Asir?} + +\begin{itemize} +\item {\itc Total performance is not excellent, but not bad} + +\item {\itc A completely open system} + +The whole source is available + +\item {\itc It serves as a test bench to try new ideas} + +Interactive debugger is very useful + +\item {\itc Interface compliant to OpenXM RFC-100} + +The interface is fully documented + +\end{itemize} + +\end{slide} + + +%\begin{slide}{} +%\fbox{\fbc 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{\fbc 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{\fbc OpenXM (Open message eXchange protocol for Mathematics) } + +\begin{itemize} +\item {\itc An environment for parallel distributed computation} + +Both for interactive, non-interactive environment + +\item {\itc OpenXM RFC-100 = Client-server architecture} + +Client $\Leftarrow$ OX (OpenXM) message $\Rightarrow$ Server + +OX (OpenXM) message : command and data + +\item {\itc Data} + +Encoding : CMO (Common Mathematical Object format) + +Serialized representation of mathematical object + +--- Main idea was borrowed from OpenMath + +({\urlc \tt http://www.openmath.org}) + +\item {\itc Command} + +stack machine command --- server is a stackmachine + ++ server's own command sequences --- hybrid server +\end{itemize} +\end{slide} + +\begin{slide}{} +\fbox{\fbc 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 buch_vs_f4_mod(...|proc=P) */ +def buch_vs_f4_mod(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); /* resets the both servers */ + ox_cmo_rpc(P0,"dp_f4_mod_main",G,V,M,O); /* for F4 */ + ox_cmo_rpc(P1,"dp_gr_mod_main",G,V,0,M,O); /* for Buchberger */ + map(ox_push_cmd,P,262); /* 262 = OX_popCMO */ + F = ox_select(P); /* waits a server to return the result */ + R = ox_get(F[0]); /* gets the result from the winner */ + 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{\fbc Real speedup by parallelism --- polynomial multiplication} + +{\itc Product of dense univariate polynomials with 3000bit coefficients} + +{\itc Algorithm : FFT+Chinese remainder (by Shoup)} + +\epsfxsize=20cm +\epsffile{3k.ps} + +{\itc Communication cost} + +\begin{itemize} +\item $O(n{\color{red}\log L})$ with server-server communication (OX-RFC102) +\item $O(n{\color{red}L})$ without server-server communication (OX-RFC100) +\end{itemize} +($L$: number of processes, $n$: degree) + +\end{slide} + +\begin{slide}{} +\fbox{\fbc 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}