Abstract
We implement and undertake an empirical study of the cache-oblivious variant of the polygon indecomposability testing algorithm of Gao and Lauder, based on a depth-first search (DFS) traversal of the computation tree. According to Abu Salem, the cache-oblivious variant exhibits improved spatial and temporal locality over the original one, and its spatial locality is optimal. Our implementation revolves around eight different variants of the DFS-based algorithm, tailored to assess the trade-offs between computation and memory performance as originally proposed by Abu Salem. We analyse performance sensitively to manipulations of the several parameters comprising the input size. We describe how to construct suitably random families of input that solicit such variations, and how to handle redundancies in vector computations at no asymptotic increase in the work and cache complexities. We report extensively on our experimental results. In all eight variants, the DFS-based variant achieves excellent performance in terms of L1 and L2 cache misses as well as total run time, when compared to the original variant of Gao and Lauder. We also benchmark the DFS variant against the powerful computer algebra system MAGMA, in the context of bivariate polynomial irreducibility testing using polygons. For sufficiently high degree polynomials, MAGMA either runs out of memory or fails to terminate after about 4 h of execution. In contrast, the DFS-based version processes such input using a couple of seconds. Particularly, we report on absolute irreducibility testing of bivariate polynomials of total degree reaching 19,000 in about 2 s for the DFS variant, using a single processor.
Similar content being viewed by others
References
Abu Salem FK (2008) An efficient sparse adaptation of the polytope method over \({\mathbb{F}_p}\) and a record-high binary bivariate factorisation. J Symb Comput 43(5): 311–341
Abu Salem FK. Cache-oblivious polygon indecomposability testing. Pre-print. http://www.cs.aub.edu.lb/fa21/Papers/COIrredTheory.pdf
Abu Salem FK, Soudah RN, Extended report on empirical, cache-oblivious polygon indecomposability testing. Technical Report. http://dr.aub.edu.lb/file.php/2/moddata/data/3/24/1509/Paper.pdf
Aggarwal A, Vitter JS (1988) The input/output complexity of sorting and related problems. Commun ACM 31(9): 1116–1127
Bader M, Zenger C (2006) Cache oblivious matrix multiplication using an element ordering based on the Peano curve. In: Proc. PPAM 2006, pp 1042–1049
Bosma W, Cannon J, Playoust C (1997) The Magma algebra system I. the user language. J Symb Comput 24(3-4): 235–265
Duval D (1991) Absolute factorization of polynomials: a geometric approach. SIAM J Comput 20: 1–21
Frigo M, Leiserson CE, Prokop H, Ramachandran S (1999) Cache-oblivious algorithms. In: Proceedings of the 40th annual symposium on foundations of computer science, pp 285–297, 1999
Gao S (2001) Absolute irreducibility of polynomials via Newton polytopes. J Algebra 237: 501–520
Gao S (2003) Factoring multivariate polynomials via partial differential equations. Math Comput 72: 801–822
Gao S, Lauder AGB (2001) Decomposition of polytopes and polynomials. Discrete Comput Geom 26: 89–104
Hill MD, Smith AJ (1989) Evaluating associativity in CPU caches. IEEE Trans Comput 38(12): 1612–1630
Kaltofen E (1985) Polynomial-time reductions from multivariate to bi- and univariate integral polynomial factorisation. SIAM J Sci Comput 14: 469–489
Kharbutli M, Solihin Y, Lee J (2005) Eliminating conflict misses using prime number-based cache indexing. IEEE Trans Comput 54(5): 573–586
Lenstra AK (1985) Factoring multivariate polynomials over finite fields. J Comput Syst Sci 30(2): 235–248
Lenstra AK (1987) Factoring multivariate polynomials over algebraic number fields. SIAM J Sci Comput 16(3): 591–598
Luo Y, John LK, Eeckhout L (2004) Self-monitored adaptive cache warm-up for microprocessor simulation. In: 16th symposium on computer architecture and high performance computing, 2004. SBAC-PAD 2004, pp 10–17
Murphy RC, Berry J, McLendon W, Hendrickson B, Gregor D, Lumsdaine A (2006) DFS: a simple to write yet difficult to execute benchmark. In: Proceedings of the IEEE international symposium on workload characterizations IISWC06 2006, pp 175–177
Ostrowski AM (1921) Über die bedeutung der theorie der konvexen polyeder für die formale algebra. Jahresberichte Deutsche Math Verein 30: 98–99
Patel K, Benini L, Marcii E, Poncino M (2006) Reducing conflict misses by application-specific reconfigurable indexing. IEEE Trans Comput-Aid Des Integr Circuits Syst 25(12): 2626–2637
Rivera G, Tseng C-W (1998) Eliminating conflict misses for high performance architectures. In: proceedings of the 12th international conference on supercomputing, pp 353–360
Rivera G, Tseng C-W (1998) Data transformations for eliminating conflict misses. ACM SIGPLAN Notices 33(5): 38–49
Thomas GB, Finney RL, Maurice WD, Giordano FR (2003) Thomas’ Calculus. Addison-Wesley, Reading
Zhang C (2006) Balanced instruction cache: reducing conflict misses of direct-mapped caches through balanced subarray accesses. IEEE Comput Architect Lett 5(1): 2–5
von zur Gathen J, Kaltofen E (1985) Factorization of multivariate polynomials over finite fields. Appl Math Comput 45(171): 251–261
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by C. C. Douglas.
The first author was supported by LNCSR grant 111135-522312 and AUB-URB grant 111135-988119.
Rights and permissions
About this article
Cite this article
Abu Salem, F.K., Soudah, R.N. An empirical study of cache-oblivious polygon indecomposability testing. Computing 88, 55–78 (2010). https://doi.org/10.1007/s00607-010-0086-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-010-0086-z
Keywords
- Computer algebra
- Multivariate and bivariate polynomials
- Absolute irreducibility testing
- Newton polytopes
- Cache-oblivious algorithms
- Performance evaluation