# 2

# PARALLEL IN-CORE AND OUT-OF-CORE LU FACTORIZATION FOR SOLVING A MATRIX EQUATION AND THE CORRESPONDING PARALLEL MATRIX FILLING IN HOBBIES

## 2.0 SUMMARY

The parallel implementation of a Method of Moments (MoM) code involves filling up a complex, dense matrix in parallel followed by a parallel matrix solution. The approach used to fill the matrix in parallel is determined by the type of matrix equation solver being used, namely, in-core or out-of-core. To fill the matrix efficiently for a MoM code in parallel, it is important to understand how the data are distributed over different processors (cores) among the different computer nodes.

With this in mind, this chapter explores the details of solving the dense, complex matrix equation for MoM using the LU factorization method rather than describing the MoM procedure itself. After introducing the matrix equation for MoM, the serial versions of the LU decomposition method are investigated. Then, the discussion is focused on the parallel implementation of the LU algorithm. The data distribution pattern used by the ScaLAPACK (**S***ca*lable **L**inear **A**lgebra **PACK**age) library packages is explained.

When the matrix from a MoM code is too large to fit into the random access memory (RAM) of the computer at hand, the space on the hard disk is used to extend the storage capability of the computer. An out-of-core solver, in addition to the RAM, uses the space on the hard disk, whereas an in-core solver uses only the RAM of the computer. A one-slab, left-looking, ...