version 1.1, 2001/10/03 08:32:58 |
version 1.6, 2001/10/12 07:45:11 |
|
|
% $OpenXM$ |
% $OpenXM: OpenXM/doc/Papers/dag-noro.tex,v 1.5 2001/10/12 05:11:36 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 *}}} |
|
|
\textheight 7.2in |
\textheight 7.2in |
\columnsep 0.33in |
\columnsep 0.33in |
\topmargin -1in |
\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} |
\begin{document} |
\setlength{\parskip}{10pt} |
\setlength{\parskip}{10pt} |
\maketitle |
\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}} (on Pentium III, 1GHz; unit : second) |
|
|
|
$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} |