|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
|
|
|
|
<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
|
|
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
|
|
<TITLE>Basic Nomenclature</TITLE>
|
|
|
|
<META NAME="description" CONTENT="Basic Nomenclature">
|
|
|
|
<META NAME="keywords" CONTENT="userhtml">
|
|
|
|
<META NAME="resource-type" CONTENT="document">
|
|
|
|
<META NAME="distribution" CONTENT="global">
|
|
|
|
|
|
|
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2018">
|
|
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
|
|
|
|
|
|
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
|
|
|
|
|
|
|
<LINK REL="next" HREF="node5.html">
|
|
|
|
<LINK REL="previous" HREF="node3.html">
|
|
|
|
<LINK REL="up" HREF="node3.html">
|
|
|
|
<LINK REL="next" HREF="node5.html">
|
|
|
|
</HEAD>
|
|
|
|
|
|
|
|
<BODY >
|
|
|
|
|
|
|
|
<DIV CLASS="navigation"><!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html248"
|
|
|
|
HREF="node5.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
|
|
<A NAME="tex2html244"
|
|
|
|
HREF="node3.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
|
|
<A NAME="tex2html238"
|
|
|
|
HREF="node3.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
|
|
<A NAME="tex2html246"
|
|
|
|
HREF="node1.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html249"
|
|
|
|
HREF="node5.html">Library contents</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html245"
|
|
|
|
HREF="node3.html">General overview</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html239"
|
|
|
|
HREF="node3.html">General overview</A>
|
|
|
|
<B> <A NAME="tex2html247"
|
|
|
|
HREF="node1.html">Contents</A></B>
|
|
|
|
<BR>
|
|
|
|
<BR></DIV>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
|
|
|
|
<H2><A NAME="SECTION00031000000000000000">
|
|
|
|
Basic Nomenclature</A>
|
|
|
|
</H2>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
Each point of the discretization mesh will have (at least) one
|
|
|
|
associated equation/variable, and therefore one index. We say that
|
|
|
|
point <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="9" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img4.png"
|
|
|
|
ALT="$i$"></SPAN> <EM>depends</EM> on point <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="11" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img5.png"
|
|
|
|
ALT="$j$"></SPAN> if the equation for a
|
|
|
|
variable associated with <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="9" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img4.png"
|
|
|
|
ALT="$i$"></SPAN> contains a term in <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="11" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img5.png"
|
|
|
|
ALT="$j$"></SPAN>, or equivalently
|
|
|
|
if <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="53" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img6.png"
|
|
|
|
ALT="$a_{ij} \ne0$"></SPAN>.
|
|
|
|
After the partition of the discretization mesh into <EM>sub-domains</EM>
|
|
|
|
assigned to the parallel processes,
|
|
|
|
we classify the points of a given sub-domain as following.
|
|
|
|
<DL>
|
|
|
|
<DT><STRONG>Internal.</STRONG></DT>
|
|
|
|
<DD>An internal point of
|
|
|
|
a given domain <EM>depends</EM> only on points of the
|
|
|
|
same domain.
|
|
|
|
If all points of a domain are assigned to one
|
|
|
|
process, then a computational step (e.g., a
|
|
|
|
matrix-vector product) of the
|
|
|
|
equations associated with the internal points requires no data
|
|
|
|
items from other domains and no communications.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
</DD>
|
|
|
|
<DT><STRONG>Boundary.</STRONG></DT>
|
|
|
|
<DD>A point of
|
|
|
|
a given domain is a boundary point if it <EM>depends</EM> on points
|
|
|
|
belonging to other domains.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
</DD>
|
|
|
|
<DT><STRONG>Halo.</STRONG></DT>
|
|
|
|
<DD>A halo point for a given domain is a point belonging to
|
|
|
|
another domain such that there is a boundary point which <EM>depends</EM>
|
|
|
|
on it. Whenever performing a computational step, such as a
|
|
|
|
matrix-vector product, the values associated with halo points are
|
|
|
|
requested from other domains. A boundary point of a given
|
|
|
|
domain is usually a halo point for some other domain<A NAME="tex2html3"
|
|
|
|
HREF="footnode.html#foot210"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A>; therefore
|
|
|
|
the cardinality of the boundary points set denotes the amount of data
|
|
|
|
sent to other domains.
|
|
|
|
</DD>
|
|
|
|
<DT><STRONG>Overlap.</STRONG></DT>
|
|
|
|
<DD>An overlap point is a boundary point assigned to
|
|
|
|
multiple domains. Any operation that involves an overlap point
|
|
|
|
has to be replicated for each assignment.
|
|
|
|
</DD>
|
|
|
|
</DL>
|
|
|
|
Overlap points do not usually exist in the basic data
|
|
|
|
distributions; however they are a feature of Domain Decomposition
|
|
|
|
Schwarz preconditioners which are the subject of related research
|
|
|
|
work [<A
|
|
|
|
HREF="node137.html#2007c">4</A>,<A
|
|
|
|
HREF="node137.html#2007d">3</A>].
|
|
|
|
|
|
|
|
<P>
|
|
|
|
We denote the sets of internal, boundary and halo points for a given
|
|
|
|
subdomain by <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="13" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img7.png"
|
|
|
|
ALT="$\cal I$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="15" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img8.png"
|
|
|
|
ALT="$\cal B$"></SPAN> and <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="17" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img9.png"
|
|
|
|
ALT="$\cal H$"></SPAN>.
|
|
|
|
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 <SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="9" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img4.png"
|
|
|
|
ALT="$i$"></SPAN> owns one
|
|
|
|
subdomain, the number of rows in the local sparse matrix is
|
|
|
|
<!-- MATH
|
|
|
|
$|{\cal I}_i| + |{\cal B}_i|$
|
|
|
|
-->
|
|
|
|
<SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="71" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img10.png"
|
|
|
|
ALT="$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert$"></SPAN>, and the number of local columns
|
|
|
|
(i.e. those for which there exists at least one non-zero entry in the
|
|
|
|
local rows) is <!-- MATH
|
|
|
|
$|{\cal I}_i| + |{\cal B}_i| +|{\cal H}_i|$
|
|
|
|
-->
|
|
|
|
<SPAN CLASS="MATH"><IMG
|
|
|
|
WIDTH="118" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img11.png"
|
|
|
|
ALT="$\vert{\cal I}_i\vert + \vert{\cal B}_i\vert +\vert{\cal H}_i\vert$"></SPAN>.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="fig:points"></A><A NAME="274"></A>
|
|
|
|
<TABLE>
|
|
|
|
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
|
|
|
|
Point classfication.</CAPTION>
|
|
|
|
<TR><TD>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<IMG
|
|
|
|
WIDTH="318" HEIGHT="285" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img13.png"
|
|
|
|
ALT="\includegraphics[scale=0.65]{figures/points.eps}">
|
|
|
|
<!-- MATH
|
|
|
|
$\rotatebox{-90}{\includegraphics[scale=0.65]{figures/points}}$
|
|
|
|
-->
|
|
|
|
<IMG
|
|
|
|
WIDTH="131" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img12.png"
|
|
|
|
ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/points}}">
|
|
|
|
|
|
|
|
</DIV></TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
|
|
|
|
<DIV CLASS="navigation"><HR>
|
|
|
|
<!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html248"
|
|
|
|
HREF="node5.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
|
|
<A NAME="tex2html244"
|
|
|
|
HREF="node3.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
|
|
<A NAME="tex2html238"
|
|
|
|
HREF="node3.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
|
|
<A NAME="tex2html246"
|
|
|
|
HREF="node1.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html249"
|
|
|
|
HREF="node5.html">Library contents</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html245"
|
|
|
|
HREF="node3.html">General overview</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html239"
|
|
|
|
HREF="node3.html">General overview</A>
|
|
|
|
<B> <A NAME="tex2html247"
|
|
|
|
HREF="node1.html">Contents</A></B> </DIV>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
|
|
|
|
</BODY>
|
|
|
|
</HTML>
|