Nearly matching upper and lower bounds are derived for the I/O complexity of the Toom-Cook-k (or Toom-k) algorithm computing the products of two integers, each represented with n digits in a given base s, in a two-level storage hierarchy with M words of fast memory, with different digits stored in different memory words. An IOAk(n, M) = Ω (n/M)logk(2k−1) M lower bound on the I/O complexity is established, by a technique that combines an analysis of the size of the dominators of suitable sub-CDAGs of the Toom-Cook-k CDAG (Computational Directed Acyclic Graph) and the analysis of a function, which we call “Partial Grigoriev’s flow”, which captures the amount of information to be transferred between specific subsets of input and output variables, by any algorithm that solves the integer multiplication problem. The lower bound applies even if the recomputation of partial results is allowed. A careful implementation of the Toom-Cook-k algorithm, assuming that M = Ω k3 logs k, is also developed and analyzed, leading to an I/O complexity upper bound that is within a factor O(k2) of the corresponding lower bound, hence asymptotically optimal for fixed k. Both the lower and the upper bounds are actually derived in the more general case where the value of k is allowed to vary with the level of recursion, although the quantitative expressions become more involved. Extensions of the lower bound for a parallel model with P processors are also discussed.
CITATION STYLE
Bilardi, G., & De Stefani, L. (2019). The I/O complexity of Toom-Cook integer multiplication. In Proceedings of the Annual ACM-SIAM Symposium on Discrete Algorithms (pp. 2034–2052). Association for Computing Machinery. https://doi.org/10.1137/1.9781611975482.123
Mendeley helps you to discover research relevant for your work.