## 5 Numerical Experiments  
A range of test problems from different application areas have been chosen. Most are taken from the University of Florida Sparse Matrix Collection [40]; some additional large problems are from [PERSON] of IBM. All are supplied in assembled form and so we do not report on the element entry option offered by HSLMA77. The problems are divided into those that are positive definite (Test Set 1) and those that are indefinite (Test Set 2). We report the order \(n\) and number of entries \(nz(A)\) in \(A\). We also give the expected number of entries \(nz(L)\) and the expected number of floating-point operations \(nflops\) to compute \(L\) when HSLMA97 is used with its default settings (that is, the number of entries in \(L\) and the number of floating-point operations if the supplied pivot sequence is used without modification). Note that within each test set, the problems are listed in increasing order of their operation counts. All tests are run in double precision on an 16-core machine with 2 Intel Xeon E5-2687W processors with 64 GB of memory. The MKL BLAS (version 11.0 update 1) and ifort compiler (version 12.1.0 with flags -g -fast -openmp) are used. All runs are performed on 16 cores. The solvers use their default settings, except that a METIS nested dissection ordering is always used, a scaling is supplied and, in the case of HSLMA77, support for 64-bit addressing is enabled and the file size for the virtual memory system is increased to 512 MB per file. Solvers are limited to using at most 64 GB of virtual memory to avoid paging. The supplied scaling is calculated using the HSL package MC77 run for one iteration in the infinity-norm, followed by up to three iterations in the one-norm, as recommended by [PERSON] and [PERSON] in [41]. In each test, the right-hand side is constructed to correspond to the solution \(x=1\). The runs incorporate up to 5 iterations of iterative refinement with the following termination condition on the scaled backwards error  
\[\frac{\|Ax-b\|_{\infty}}{\|A\|_{\infty}\|x\|_{\infty}+\|b\|_{\infty}}\leq 10^{- 14}. \tag{6}\]  
For most problems, each of the solvers took the same number of iterations to reach the required accuracy. The solvers all failed to achieve the required accuracy for problem 44 (GHS_indef/bmw3_2), which is singular. HSL_MA86 and HSL_MA97 only just fail to achieve the desired accuracy on the non-singular problem 45 (Oberwolfach/t3 dh), achieving an accuracy of \(1.1\times 10^{-14}\). HSL_MA77 was the only code to successfully factorize problem 49 (Zaoui/kkt_power) but this problem is also singular, and the required accuracy was not obtained. For comparison purposes, we also include results for an older, but very widely used and well-known, HSL code MA57 [42]. This is a multifrontal solver that is primarily designed for the solution of symmetric indefinite systems. It was not written as a parallel code, but parallel performance can be achieved by using multithreaded BLAS. To make the comparisons as fair as possible, we do not use the default scaling offered by MA57, but since MA57 does not allow scaling factors to be input, we prescale \(A\) using the same scaling strategy as used by the other solvers. Tables 2 and 3 show the execution times for the complete solution of \(Ax=b\), including the time for ordering, analysis, scaling, factorization and iterative refinement. We see that all the problems that fit within the 64 GB of available physical memory (that is, all except problems 49, 54 and 55) complete in under 3 minutes using the fastest solver. It is clear that the task-based code HSLMA87 is the fastest solver for the positive-definite problems, although the multifrontal solver HSLMA97 is competitive for the smallest problems in Test Set 1. The compromises that had to be made in adapting the task-based design to incorporate pivoting in the indefinite case incur overheads. These are significant for the smaller problems in Test Set 2, and for these problems, HSLMA97 generally outperforms HSLMA86.