Our computational model implies that the data allocation on the parallel distributed memory machine is guided by the structure of the physical model, and specifically by the discretization mesh of the PDE.
Each point of the discretization mesh will have (at least) one
associated equation/variable, and therefore one index. We say that
point depends on point
if the equation for a
variable associated with
contains a term in
, or equivalently
if
.
After the partition of the discretization mesh into sub-domains
assigned to the parallel processes,
we classify the points of a given sub-domain as following.
We denote the sets of internal, boundary and halo points for a given
subdomain by ,
and
.
Each subdomain is assigned to one process; each process usually
owns one subdomain, although the user may choose to assign more than
one subdomain to a process. If each process
owns one
subdomain, the number of rows in the local sparse matrix is
, and the number of local columns
(i.e. those for which there exists at least one non-zero entry in the
local rows) is
.
This classification of mesh points guides the naming scheme that we adopted in the library internals and in the data structures. We explicitly note that “Halo” points are also often called “ghost” points in the literature.