159 research outputs found
Implementation and Evaluation of Algorithmic Skeletons: Parallelisation of Computer Algebra Algorithms
This thesis presents design and implementation approaches for the parallel algorithms of computer algebra. We use algorithmic skeletons and also further approaches, like data parallel arithmetic and actors. We have implemented skeletons for divide and conquer algorithms and some special parallel loops, that we call ârepeated computation with a possibility of premature terminationâ. We introduce in this thesis a rational data parallel arithmetic. We focus on parallel symbolic computation algorithms, for these algorithms our arithmetic provides a generic parallelisation approach.
The implementation is carried out in Eden, a parallel functional programming language based on Haskell. This choice enables us to encode both the skeletons and the programs in the same language. Moreover, it allows us to refrain from using two different languagesâone for the implementation and one for the interfaceâfor our implementation of computer algebra algorithms.
Further, this thesis presents methods for evaluation and estimation of parallel execution times. We partition the parallel execution time into two components. One of them accounts for the quality of the parallelisation, we call it the âparallel penaltyâ. The other is the sequential execution time. For the estimation, we predict both components separately, using statistical methods. This enables very confident estimations, although using drastically less measurement points than other methods. We have applied both our evaluation and estimation approaches to the parallel programs presented in this thesis. We haven also used existing estimation methods.
We developed divide and conquer skeletons for the implementation of fast parallel multiplication. We have implemented the Karatsuba algorithm, Strassenâs matrix multiplication algorithm and the fast Fourier transform. The latter was used to implement polynomial convolution that leads to a further fast multiplication algorithm. Specially for our implementation of Strassen algorithm we have designed and implemented a divide and conquer skeleton basing on actors. We have implemented the parallel fast Fourier transform, and not only did we use new divide and conquer skeletons, but also developed a map-and-transpose skeleton. It enables good parallelisation of the Fourier transform. The parallelisation of Karatsuba multiplication shows a very good performance. We have analysed the parallel penalty of our programs and compared it to the serial fractionâan approach, known from literature. We also performed execution time estimations of our divide and conquer programs.
This thesis presents a parallel map+reduce skeleton scheme. It allows us to combine the usual parallel map skeletons, like parMap, farm, workpool, with a premature termination property. We use this to implement the so-called âparallel repeated computationâ, a special form of a speculative parallel loop. We have implemented two probabilistic primality tests: the RabinâMiller test and the Jacobi sum test. We parallelised both with our approach. We analysed the task distribution and stated the fitting configurations of the Jacobi sum test. We have shown formally that the Jacobi sum test can be implemented in parallel. Subsequently, we parallelised it, analysed the load balancing issues, and produced an optimisation. The latter enabled a good implementation, as verified using the parallel penalty. We have also estimated the performance of the tests for further input sizes and numbers of processing elements. Parallelisation of the Jacobi sum test and our generic parallelisation scheme for the repeated computation is our original contribution.
The data parallel arithmetic was defined not only for integers, which is already known, but also for rationals. We handled the common factors of the numerator or denominator of the fraction with the modulus in a novel manner. This is required to obtain a true multiple-residue arithmetic, a novel result of our research. Using these mathematical advances, we have parallelised the determinant computation using the GauĂ elimination. As always, we have performed task distribution analysis and estimation of the parallel execution time of our implementation. A similar computation in Maple emphasised the potential of our approach. Data parallel arithmetic enables parallelisation of entire classes of computer algebra algorithms.
Summarising, this thesis presents and thoroughly evaluates new and existing design decisions for high-level parallelisations of computer algebra algorithms
Polynomial-Division-Based Algorithms for Computing Linear Recurrence Relations
Sparse polynomial interpolation, sparse linear system solving or modular
rational reconstruction are fundamental problems in Computer Algebra. They come
down to computing linear recurrence relations of a sequence with the
Berlekamp-Massey algorithm. Likewise, sparse multivariate polynomial
interpolation and multidimensional cyclic code decoding require guessing linear
recurrence relations of a multivariate sequence.Several algorithms solve this
problem. The so-called Berlekamp-Massey-Sakata algorithm (1988) uses polynomial
additions and shifts by a monomial. The Scalar-FGLM algorithm (2015) relies on
linear algebra operations on a multi-Hankel matrix, a multivariate
generalization of a Hankel matrix. The Artinian Gorenstein border basis
algorithm (2017) uses a Gram-Schmidt process.We propose a new algorithm for
computing the Gr{\"o}bner basis of the ideal of relations of a sequence based
solely on multivariate polynomial arithmetic. This algorithm allows us to both
revisit the Berlekamp-Massey-Sakata algorithm through the use of polynomial
divisions and to completely revise the Scalar-FGLM algorithm without linear
algebra operations.A key observation in the design of this algorithm is to work
on the mirror of the truncated generating series allowing us to use polynomial
arithmetic modulo a monomial ideal. It appears to have some similarities with
Pad{\'e} approximants of this mirror polynomial.As an addition from the paper
published at the ISSAC conferance, we give an adaptive variant of this
algorithm taking into account the shape of the final Gr{\"o}bner basis
gradually as it is discovered. The main advantage of this algorithm is that its
complexity in terms of operations and sequence queries only depends on the
output Gr{\"o}bner basis.All these algorithms have been implemented in Maple
and we report on our comparisons
- âŠ