Beyond sparse problems, the sTiles tile engine is also a competitive dense
Cholesky solver. The matrices below are fully dense SPD systems of order n = 2,000, 5,000,
and 10,000. sTiles is compared against the reference dense libraries PLASMA and LAPACK,
and, for context, against the sparse direct solvers. The fastest result in each column is
highlighted.
Performance (GFLOP/s)
Cholesky throughput; higher is better (fastest per size highlighted). sTiles is 1.98×, 1.65×, 1.44× faster than optimized PLASMA and 9.58×, 2.33×, 1.33× faster than LAPACK across n = 2,000 / 5,000 / 10,000.
| Solver | n = 2,000 | n = 5,000 | n = 10,000 |
|---|
| sTiles this work | 944 | 1317 | 1301 |
| PLASMA (opt) | 476 | 798 | 904 |
| LAPACK | 99 | 566 | 975 |
Full thread sweeps for the dense libraries (the reference sparse solvers were run at a single configuration; their best times are in the summary below).
Factorization time (s) by thread count · n = 2,000
| Solver | 1 | 2 | 4 | 8 | 16 | 32 | 40 |
|---|
| sTiles this work | 0.05814 | 0.031255 | 0.015743 | 0.007757 | 0.004693 | 0.003194 | 0.002824 |
| PLASMA (nb 80) | 0.0595 | 0.0422 | 0.0238 | 0.0137 | 0.0083 | 0.0069 | 0.0082 |
| PLASMA (nb 120) | 0.0569 | 0.0309 | 0.016 | 0.0115 | 0.0074 | 0.0056 | 0.0119 |
| LAPACK | 0.475232 | 0.064998 | 0.038019 | 0.031351 | 0.027048 | 0.039601 | 0.031574 |
Factorization time (s) by thread count · n = 5,000
| Solver | 1 | 2 | 4 | 8 | 16 | 32 | 40 |
|---|
| sTiles this work | 0.964768 | 0.504407 | 0.253635 | 0.128859 | 0.062603 | 0.034867 | 0.031635 |
| PLASMA (nb 80) | 1.0519 | 0.661 | 0.3503 | 0.1815 | 0.11 | 0.147 | 0.1545 |
| PLASMA (nb 120) | 0.9727 | 0.5853 | 0.3023 | 0.1576 | 0.0786 | 0.0557 | 0.0522 |
| LAPACK | 0.786266 | 0.395979 | 0.225585 | 0.146319 | 0.102334 | 0.082523 | 0.073586 |
Factorization time (s) by thread count · n = 10,000
| Solver | 1 | 2 | 4 | 8 | 16 | 32 | 40 |
|---|
| sTiles this work | 7.96849 | 4.2065 | 2.08641 | n/a | 7.27435 | 7.2846 | 0.256141 |
| PLASMA (nb 80) | 8.181 | 5.893 | 2.8207 | 1.3672 | 0.8868 | 1.4662 | 1.4155 |
| PLASMA (nb 120) | 7.529 | 4.2464 | 2.1945 | 1.1671 | 0.6533 | 0.3794 | 0.3689 |
| LAPACK | 5.65003 | 2.76938 | 1.47113 | 0.907887 | 0.585684 | 0.389616 | 0.34194 |
fastest thread count for that solverfastest overall
Best factorization time, all solvers (s)
Numerical Cholesky factorization, seconds (fastest per size highlighted). Dense solvers (sTiles, PLASMA, LAPACK) measured on node cn603-04; the sparse solvers on cn512-12.
| Solver | n = 2,000 | n = 5,000 | n = 10,000 |
|---|
| sTiles this work | 0.002824 | 0.031635 | 0.256141 |
| PLASMA (nb 80) | 0.0069 | 0.11 | 0.8868 |
| PLASMA (nb 120) | 0.0056 | 0.0522 | 0.3689 |
| LAPACK | 0.027048 | 0.073586 | 0.34194 |
| PARDISO | 0.00978 | 0.067309 | 0.602475 |
| MUMPS | 0.037198 | 0.343969 | 1.5774 |
| CHOLMOD | 0.030915 | 0.38072 | 2.08722 |
| PaStiX | 0.185625 | 1.39881 | 6.09987 |
| symPACK | 0.047036 | 0.631915 | 4.94403 |
Analysis (symbolic) time (s)
Analysis / symbolic phase, seconds, all measured on node cn512-12. PLASMA and LAPACK have no separate analysis phase for dense matrices.
| Solver | n = 2,000 | n = 5,000 | n = 10,000 |
|---|
| sTiles this work | 0.429 | 2.507 | 10.921 |
| PARDISO | 0.234 | 1.89 | 8.4 |
| MUMPS | 0.032 | 0.265 | 1.206 |
| CHOLMOD | 0.088 | 0.996 | 5.389 |
| PaStiX | 0.405 | 3.234 | 13.708 |
| symPACK | 0.419 | 2.599 | 12.23 |