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.
182 lines
7.6 KiB
HTML
182 lines
7.6 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
<html >
|
|
<head><title>psb_nrm2 — Global 2-norm reduction</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
<!-- html,3 -->
|
|
<meta name="src" content="userhtml.tex">
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
</head><body
|
|
>
|
|
<!--l. 711--><div class="crosslinks"><p class="noindent">[<a
|
|
href="userhtmlsu74.html" >next</a>] [<a
|
|
href="userhtmlsu70.html" >prev</a>] [<a
|
|
href="userhtmlsu70.html#tailuserhtmlsu70.html" >prev-tail</a>] [<a
|
|
href="userhtmlsu68.html#tailuserhtmlsu71.html">tail</a>] [<a
|
|
href="userhtmlsu59.html#userhtmlse8.html" >up</a>] </p></div>
|
|
<h4 class="subsectionHead"><span class="titlemark">7.15 </span> <a
|
|
id="x83-1200007.15"></a>psb_nrm2 — Global 2-norm reduction</h4>
|
|
|
|
|
|
|
|
<pre class="verbatim" id="verbatim-75">
|
|
call psb_nrm2(ctxt, dat, root [, mode, request])
|
|
</pre>
|
|
<!--l. 715--><p class="nopar" >
|
|
<!--l. 717--><p class="indent" > This subroutine implements a 2-norm value reduction operation based on the
|
|
underlying communication library.
|
|
<dl class="description"><dt class="description">
|
|
<span
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
class="description">Synchronous.
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
class="description">
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">ctxt</span> </dt><dd
|
|
class="description">the communication context identifying the virtual parallel machine.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">global</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">required</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">in</span>.<br
|
|
class="newline" />Specified as: an integer variable.
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">dat</span> </dt><dd
|
|
class="description">The local contribution to the global minimum.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">local</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">required</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">inout</span>.<br
|
|
class="newline" />Specified as: a real variable, which may be a scalar, or a rank 1 array.
|
|
 Kind, rank and size must agree on all processes.
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">root</span> </dt><dd
|
|
class="description">Process to hold the final value, or <span
|
|
class="cmsy-10">-</span>1 to make it available on all processes.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">global</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">optional</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">in</span>.<br
|
|
class="newline" />Specified as: an integer value <span
|
|
class="cmsy-10">-</span>1 <span
|
|
class="cmmi-10"><</span>= <span
|
|
class="cmmi-10">root <</span>= <span
|
|
class="cmmi-10">np </span><span
|
|
class="cmsy-10">- </span>1, default -1. <br
|
|
class="newline" />
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">mode</span> </dt><dd
|
|
class="description">Whether the call is started in non-blocking mode and completed later,
|
|
or is executed fully.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">global</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">optional</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">in</span>.<br
|
|
class="newline" />Specified as: an integer, with the value determined by the bitwise OR of
|
|
<span class="obeylines-h"><span class="verb"><span
|
|
class="cmtt-10">psb_collective_start_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
|
class="cmtt-10">psb_collective_end_</span></span></span>. Default: both fields are
|
|
selected.<br
|
|
class="newline" />
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">request</span> </dt><dd
|
|
class="description">A request variable to check for operation completion.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">local</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">optional</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">inout</span>.<br
|
|
class="newline" />If <span class="obeylines-h"><span class="verb"><span
|
|
class="cmtt-10">mode</span></span></span> does not specifies immediate completion, then this variable must
|
|
be present.</dd></dl>
|
|
<!--l. 758--><p class="indent" >
|
|
<dl class="description"><dt class="description">
|
|
<span
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
class="description">
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">dat</span> </dt><dd
|
|
class="description">On destination process(es), the result of the 2-norm reduction.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">global</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">required</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">inout</span>.<br
|
|
class="newline" />Specified as: a real variable, which may be a scalar, or a rank 1 array. <br
|
|
class="newline" />Kind, rank and size must agree on all processes.
|
|
</dd><dt class="description">
|
|
<span
|
|
class="cmbx-10">request</span> </dt><dd
|
|
class="description">A request variable to check for operation completion.<br
|
|
class="newline" />Scope: <span
|
|
class="cmbx-10">local</span>.<br
|
|
class="newline" />Type: <span
|
|
class="cmbx-10">optional</span>.<br
|
|
class="newline" />Intent: <span
|
|
class="cmbx-10">inout</span>.<br
|
|
class="newline" />If <span class="obeylines-h"><span class="verb"><span
|
|
class="cmtt-10">mode</span></span></span> does not specifies immediate completion, then this variable must
|
|
be present.</dd></dl>
|
|
<!--l. 776--><p class="noindent" ><span
|
|
class="cmbx-12">Notes</span>
|
|
<ol class="enumerate1" >
|
|
<li
|
|
class="enumerate" id="x83-120002x1">This reduction is appropriate to compute the results of multiple (local)
|
|
NRM2 operations at the same time.
|
|
</li>
|
|
<li
|
|
class="enumerate" id="x83-120004x2">Denoting by <span
|
|
class="cmmi-10">dat</span><sub><span
|
|
class="cmmi-7">i</span></sub> the value of the variable <span
|
|
class="cmmi-10">dat </span>on process <span
|
|
class="cmmi-10">i</span>, the output <span
|
|
class="cmmi-10">res</span>
|
|
is equivalent to the computation of
|
|
<center class="math-display" >
|
|
<img
|
|
src="userhtml29x.png" alt=" ∘ -------
|
|
∑ 2
|
|
res = dati,
|
|
i
|
|
" class="math-display" ></center>
|
|
<!--l. 782--><p class="nopar" > with care taken to avoid unnecessary overflow.
|
|
</li>
|
|
<li
|
|
class="enumerate" id="x83-120006x3">The <span class="obeylines-h"><span class="verb"><span
|
|
class="cmtt-10">dat</span></span></span> argument is both input and output, and its value may be changed
|
|
even on processes different from the final result destination.</li></ol>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 791--><div class="crosslinks"><p class="noindent">[<a
|
|
href="userhtmlsu74.html" >next</a>] [<a
|
|
href="userhtmlsu70.html" >prev</a>] [<a
|
|
href="userhtmlsu70.html#tailuserhtmlsu70.html" >prev-tail</a>] [<a
|
|
href="userhtmlsu71.html" >front</a>] [<a
|
|
href="userhtmlsu59.html#userhtmlse8.html" >up</a>] </p></div>
|
|
<!--l. 791--><p class="indent" > <a
|
|
id="tailuserhtmlsu71.html"></a>
|
|
</body></html>
|