  Solving the normal equations corresponding to large sparse linear
least-squares problems is an important and challenging problem. For very large
problems, an iterative solver is needed and, in general, a preconditioner is
required to achieve good convergence. In recent years, a number of
preconditioners have been proposed. These are largely serial and reported
results demonstrate that none of the commonly used preconditioners for the
normal equations matrix is capable of solving all sparse least-squares
problems. Our interest is thus in designing new preconditioners for the normal
equations that are efficient, robust, and can be implemented in parallel. Our
proposed preconditioners can be constructed efficiently and algebraically
without any knowledge of the problem and without any assumption on the
least-squares matrix except that it is sparse. We exploit the structure of the
symmetric positive definite normal equations matrix and use the concept of
algebraic local symmetric positive semi-definite splittings to introduce
two-level Schwarz preconditioners for least-squares problems. The condition
number of the preconditioned normal equations is shown to be theoretically
bounded independently of the number of subdomains in the splitting. This upper
bound can be adjusted using a single parameter $\tau$ that the user can
specify. We discuss how the new preconditioners can be implemented on top of
the PETSc library using only 150 lines of Fortran, C, or Python code. Problems
arising from practical applications are used to compare the performance of the
proposed new preconditioner with that of other preconditioners.
