Each polynomial pj can be computed using sequential nested loops. Our framework is able to transform the sequential computation to its parallel version. The transformed version computes the denominator and numerator of each term pi using a parallel reduction function, respectively. The list of the terms (X xj) in the numerator, and the terms (xi xj) in the denominator are computed via calling a parallel map function. The transformation relies on the fact that the multiplication operator over any field and the multiplication operator over univariate polynomials are monoid operators, i.e., the operators are associative and each has an identity element. In general, such algebraic properties are domain-specific knowledge and are dicult to infer systematically. This framework provides linguistic support to express them directly in code:
['Yue Li', 'Gabriel Dos Reis']
An automatic parallelization framework for OpenAxiom