| version 1.4, 2001/10/04 08:22:20 |
version 1.6, 2001/10/09 11:44:43 |
|
|
| % $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.3 2001/10/04 08:16:26 noro Exp $ |
% $OpenXM: OpenXM/doc/Papers/dagb-noro.tex,v 1.5 2001/10/09 01:44:21 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{OpenXM (Open message eXchange protocol for Mathematics) } |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item Old style software for polynomial computation |
\item An environment for parallel distributed computation |
| |
|
| \begin{itemize} |
Both for interactive, non-interactive environment |
| \item Domain specification is not necessary prior to computation |
|
| \item automatic conversion of inputs into internal canonical forms |
|
| \end{itemize} |
|
| |
|
| \item User language with C-like syntax |
\item Client-server architecture |
| |
|
| \begin{itemize} |
Client $\Leftarrow$ OX (OpenXM) message $\Rightarrow$ Server |
| \item No type declaration of variables |
|
| \item Builtin debugger for user programs |
|
| \end{itemize} |
|
| |
|
| \item Open source |
OX (OpenXM) message : command and data |
| |
|
| \begin{itemize} |
\item Data |
| \item Whole source tree is available via CVS |
|
| \end{itemize} |
|
| |
|
| \item OpenXM ((Open message eXchange protocol for Mathematics) interface |
Encoding : CMO (Common Mathematical Object format) |
| |
|
| \begin{itemize} |
Serialized representation of mathematical object |
| \item As a client : can call procedures on other OpenXM servers |
|
| \item As a server : offers all its functionalities to OpenXM clients |
--- Main idea was borrowed from OpenMath [OpenMath] |
| \item As a library : OpenXM functionality is available via subroutine calls |
\item Command |
| |
|
| |
stack machine command --- server is a stackmachine |
| |
|
| |
+ server's own command sequences --- hybrid server |
| \end{itemize} |
\end{itemize} |
| \end{itemize} |
|
| \end{slide} |
\end{slide} |
| |
|
| |
|
| \begin{slide}{} |
\begin{slide}{} |
| \fbox{Major functionalities} |
\fbox{OpenXM and OpenMath} |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item Fundamental polynomial arithmetics |
\item OpenMath |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item Internal form of a polynomial : recursive representaion or distributed |
\item A standard for representing mathematical objects |
| representation |
|
| \end{itemize} |
|
| |
|
| \item Polynomial factorization |
\item CD (Content Dictionary) : assigns semantics to symbols |
| |
|
| \begin{itemize} |
\item Phrasebook : convesion between internal and OpenMath objects. |
| \item Univariate factorization over the rationals, algebraic number fields and various finite fields |
|
| |
|
| \item Multivariate factorization over the rationals |
\item Encoding : format for actual data exchange |
| \end{itemize} |
\end{itemize} |
| |
|
| \item Groebner basis computation |
\item OpenXM |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item Buchberger and $F_4$ [Faug\'ere] algorithm |
\item Specification for encoding and exchanging messages |
| |
|
| \item Change of ordering/RUR [Rouillier] of 0-dimensional ideals |
\item It also specifies behavior of servers and session management |
| |
|
| \item Primary ideal decomposition |
|
| |
|
| \item Computation of $b$-function |
|
| \end{itemize} |
\end{itemize} |
| |
|
| \item PARI [PARI] library interface |
|
| |
|
| \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} |
\begin{itemize} |
| \item --1989 |
\item Old style software for polynomial computation |
| |
|
| Several subroutines were developed for a Prolog program. |
No domain specification, automatic expansion |
| |
|
| \item 1989--1992 |
\item User language with C-like syntax |
| |
|
| \begin{itemize} |
C language without type declaration, with list processing |
| \item Reconfigured as Risa/Asir with a parser and Boehm's conservative GC [Boehm] |
|
| |
|
| \item Developed univariate and multivariate factorizers over the rationals. |
\item Builtin {\tt gdb}-like debugger for user programs |
| \end{itemize} |
|
| |
|
| \item 1992--1994 |
\item Open source |
| |
|
| \begin{itemize} |
Whole source tree is available via CVS |
| \item Started implementation of Buchberger algorithm |
|
| |
|
| Written in user language $\Rightarrow$ rewritten in C (by Murao) |
\item OpenXM interface |
| |
|
| $\Rightarrow$ trace lifting [Traverso] |
\begin{itemize} |
| |
\item Risa/Asir is a main client in OpenXM package. |
| \item Univariate factorization over algebraic number fields |
\item An OpenXM server {\tt ox\_asir} |
| |
\item An library with OpemXM library inteface {\tt libasir.a} |
| Intensive use of successive extension, non-squarefree norms |
|
| \end{itemize} |
\end{itemize} |
| \end{itemize} |
\end{itemize} |
| |
|
| \end{slide} |
\end{slide} |
| |
|
| \begin{slide}{} |
\begin{slide}{} |
| \fbox{History of development : 1994-1996} |
\fbox{Aim 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 |
Polynomial factorization, Groebner basis related computation |
| |
|
| \begin{itemize} |
$\Rightarrow$ my main motivation |
| \item Shimoyama-Yokoyama algorithm [SY] |
|
| \end{itemize} |
|
| |
|
| \item Improvement of Buchberger algorithm |
\item Front-end of a general purpose math software |
| |
|
| \begin{itemize} |
Risa/Asir contains PARI library [PARI] from the very beginning |
| \item Trace lifting+homogenization |
|
| |
|
| \item Omitting check by compatible prime |
It also acts as a main client of OpenXM package |
| |
|
| \item Modular change of ordering, Modular RUR |
|
| |
|
| These are joint works with Yokoyama [NY] |
|
| \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 representaion 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$ [Faug\'ere] algorithm |
| |
|
| Counting rational points on elliptic curves |
\item Change of ordering/RUR [Rouillier] 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 [Boehm] |
| |
|
| \item Functions for distributed computation were rewritten |
\item 1989-1992 |
| \end{itemize} |
|
| |
|
| \item Risa/Asir on Windows |
Univariate and multivariate factorizers over {\bf Q} |
| |
|
| \begin{itemize} |
\item 1992-1994 |
| \item Requirement from a company for which Noro worked |
|
| |
|
| Written in Visual C++ |
Univariate factorization over algebraic number fields |
| \end{itemize} |
|
| |
|
| \item Test implementation of $F_4$ |
Intensive use of successive extension, non-squarefree norms |
| |
|
| \begin{itemize} |
\item 1996-1998 |
| \item Implemented according to [Faug\`ere] |
|
| |
|
| \item Over $GF(p)$ : pretty good |
Univariate factorization over large finite fields |
| |
|
| \item Over the rationals : not so good except for {\it McKay} |
\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 [Traverso] |
| \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 [NY] |
| \end{itemize} |
|
| |
|
| \item Weyl algebra |
Modular change of ordering/RUR [NY] |
| |
|
| \begin{itemize} |
Primary ideal decompositon [SY] |
| \item Buchberger algorithm [Takayama] |
|
| |
|
| \item $b$-function computation [Oaku] |
\item 1996-1998 |
| |
|
| Minimal polynomial computation by modular method |
Effifcient content reduction during NF computation and its parallelization |
| \end{itemize} |
[Noro] (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 [Takayama] |
| |
|
| |
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 |
| |
|
| |
Univarate, 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 obsolete by M. van Hoeij's new algorithm |
| [Hoeij] |
[Hoeij] |
| Line 267 Univariate : completely obsolete by M. van Hoeij's new |
|
| Line 227 Univariate : completely obsolete by M. van Hoeij's new |
|
| \end{slide} |
\end{slide} |
| |
|
| \begin{slide}{} |
\begin{slide}{} |
| \fbox{Status of each component --- Groebner basis related functions} |
\fbox{Performance --- Groebner basis related computation} |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item 8 years ago |
|
| |
|
| The performace was poor with only the sugar strategy. |
|
| |
|
| \item 7 years ago |
\item 7 years ago |
| |
|
| Rather fine with trace lifting but Faug\`ere's (old)Gb was more |
Trace lifting : rather fine but coefficient swells often occur |
| efficient. |
|
| |
|
| Homogenization+trace lifting made it possible to compute |
Homogenization+trace lifting : robust and fast in the above cases |
| wider range of Groebner bases. |
|
| |
|
| \item 4 years ago |
\item 4 years ago |
| |
|
| Modular RUR was comparable with Rouillier's implementation. |
Modular RUR was comparable with Rouillier's implementation. |
| |
|
| |
DRL basis of {\it McKay}: |
| |
|
| |
5 days on Risa/Asir, 53 seconds on Faugere FGb |
| \item Current |
\item Current |
| |
|
| FGb seems much more efficient than our $F_4$ implementation. |
$F_4$ in FGb : much more efficient than $F_4$ in Risa/Asir |
| |
|
| Singular [Singular] is also several times |
Buchberger in Singular [Singular] : faster than Risa/Asir |
| faster than Risa/Asir, because Singular seems to have efficient |
|
| monomial and polynomial representation. |
|
| |
|
| \end{itemize} |
$\Leftarrow$ efficient monomial and polynomial comutation |
| \end{slide} |
|
| |
|
| \begin{slide}{} |
|
| \fbox{OpenXM} |
|
| |
|
| \begin{itemize} |
|
| \item An environment for parallel distributed computation |
|
| |
|
| 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 |
|
| |
|
| push, pop, function execution, $\ldots$ |
|
| |
|
| \item accepts its own command sequences |
|
| |
|
| {\tt execute\_string} --- easy to use |
|
| \end{itemize} |
\end{itemize} |
| |
|
| \item Data is represented as CMO |
|
| |
|
| CMO (Common Mathematical Object format) |
|
| |
|
| --- Serialized representation of mathematical object |
|
| |
|
| {\sl Integer32}, {\sl Cstring}, {\sl List}, {\sl ZZ}, $\ldots$ |
|
| \end{itemize} |
|
| \end{slide} |
\end{slide} |
| |
|
| |
|
| \begin{slide}{} |
\begin{slide}{} |
| \fbox{OpenXM and OpenMath} |
\fbox{Some 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 & \\ \hline |
| \end{itemize} |
CoCoA 4 & & & 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 |
|
| |
|
| \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} |
\begin{itemize} |
| \item TCP/IP stream |
\item Developing new OpenXM servers |
| |
|
| \begin{itemize} |
{ox\_NTL} for univariate factorization, |
| \item Launcher |
|
| |
|
| A client executes a launcher on a host. |
{ox\_???} for Groebner basis computation, etc. |
| |
|
| The launcher launches a server on the same host. |
$\Rightarrow$ Risa/Asir can be a front-end of efficient servers |
| |
|
| \item Server |
\item Trying to improve our implementation |
| |
|
| A server reads from the descriptor 3, write to the descriptor 4. |
This is very important as a motivation of further development |
| |
|
| \end{itemize} |
Computation of $b$-function : still faster than any other system |
| |
(Kan/sm1, Macaulay2) but not satisfactory |
| |
|
| \item Subroutine call |
$\Rightarrow$ Groebner basis computation in Weyl |
| |
algebra should be improved |
| Risa/Asir subroutine library provides interfaces corresponding to |
|
| pushing and popping data and executing stack commands. |
|
| \end{itemize} |
\end{itemize} |
| \end{slide} |
|
| |
|
| \begin{slide}{} |
\begin{center} |
| \fbox{OpenXM client interface in Risa/Asir} |
\underline{In both cases, OpenXM interface is important} |
| |
\end{center} |
| \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} |
\end{slide} |
| |
|
| |
|
| Line 461 Competitive computation is easily realized |
|
| Line 366 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 792 The knapsack factorization is available via {\tt pari( |
|
| Line 664 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 functon 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 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{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 [Boehm] |
| |
% |
| |
%\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 [Traverso] |
| |
% |
| |
%\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 [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} |
| |
% |
| |
%\begin{itemize} |
| |
%\item Distributed compuatation |
| |
% |
| |
%\begin{itemize} |
| |
%\item A prototype of OpenXM |
| |
%\end{itemize} |
| |
% |
| |
%\item Improvement of Buchberger algorithm |
| |
% |
| |
%\begin{itemize} |
| |
%\item Content reduction during nomal form computation |
| |
% |
| |
%\item Its parallelization by the above facility |
| |
% |
| |
%\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} |
| |
% |
| |
% |
| |
%\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 [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 [Faug\`ere] |
| |
% |
| |
%\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 [Risa/Asir] |
| |
%\end{itemize} |
| |
% |
| |
%\item OpenXM [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 [Takayama] |
| |
% |
| |
%\item $b$-function computation [Oaku] |
| |
% |
| |
%Minimal polynomial computation by modular method |
| |
%\end{itemize} |
| |
%\end{itemize} |
| |
% |
| |
%\end{slide} |
| \begin{slide}{} |
\begin{slide}{} |
| \end{slide} |
\end{slide} |
| |
|