You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
3.3 KiB
HTML
62 lines
3.3 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
<html >
|
|
<head><title>Programming model</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
<!-- html,3 -->
|
|
<meta name="src" content="userhtml.tex">
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
</head><body
|
|
>
|
|
<!--l. 449--><div class="crosslinks"><p class="noindent">[<a
|
|
href="userhtmlsu3.html" >prev</a>] [<a
|
|
href="userhtmlsu3.html#tailuserhtmlsu3.html" >prev-tail</a>] [<a
|
|
href="userhtmlsu2.html#tailuserhtmlsu4.html">tail</a>] [<a
|
|
href="userhtmlse2.html#userhtmlsu6.html" >up</a>] </p></div>
|
|
<h4 class="subsectionHead"><span class="titlemark">2.4 </span> <a
|
|
id="x11-80002.4"></a>Programming model</h4>
|
|
<!--l. 451--><p class="noindent" >The PSBLAS librarary is based on the Single Program Multiple Data (SPMD)
|
|
programming model: each process participating in the computation performs the
|
|
same actions on a chunk of data. Parallelism is thus data-driven.
|
|
<!--l. 456--><p class="indent" > Because of this structure, many subroutines coordinate their action across the
|
|
various processes, thus providing an implicit synchronization point, and therefore
|
|
<span
|
|
class="cmti-10">must </span>be called simultaneously by all processes participating in the computation. This
|
|
is certainly true for the data allocation and assembly routines, for all the
|
|
computational routines and for some of the tools routines.
|
|
<!--l. 464--><p class="indent" > However there are many cases where no synchronization, and indeed no
|
|
communication among processes, is implied; for instance, all the routines in sec. <a
|
|
href="userhtmlse3.html#x12-90003">3<!--tex4ht:ref: sec:datastruct --></a>
|
|
are only acting on the local data structures, and thus may be called independently.
|
|
The most important case is that of the coefficient insertion routines: since the
|
|
number of coefficients in the sparse and dense matrices varies among the processors,
|
|
and since the user is free to choose an arbitrary order in builiding the matrix entries,
|
|
these routines cannot imply a synchronization.
|
|
<!--l. 474--><p class="indent" > Throughout this user’s guide each subroutine will be clearly indicated
|
|
as:
|
|
<dl class="description"><dt class="description">
|
|
<span
|
|
class="cmbx-10">Synchronous:</span> </dt><dd
|
|
class="description">must be called simultaneously by all the processes in the
|
|
relevant communication context;
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">Asynchronous:</span> </dt><dd
|
|
class="description">may be called in a totally independent manner.</dd></dl>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
|
href="userhtmlsu3.html" >prev</a>] [<a
|
|
href="userhtmlsu3.html#tailuserhtmlsu3.html" >prev-tail</a>] [<a
|
|
href="userhtmlsu4.html" >front</a>] [<a
|
|
href="userhtmlse2.html#userhtmlsu6.html" >up</a>] </p></div>
|
|
<!--l. 1--><p class="indent" > <a
|
|
id="tailuserhtmlsu4.html"></a>
|
|
</body></html>
|