~ubuntu-branches/ubuntu/saucy/nwchem/saucy

« back to all changes in this revision

Viewing changes to src/tools/ga-5-1/doc/armci/www/armci_doc.htm

  • Committer: Package Import Robot
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2012-02-09 20:02:41 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120209200241-jgk03qfsphal4ug2
Tags: 6.1-1
* New upstream release.

[ Michael Banck ]
* debian/patches/02_makefile_flags.patch: Updated.
* debian/patches/02_makefile_flags.patch: Use internal blas and lapack code.
* debian/patches/02_makefile_flags.patch: Define GCC4 for LINUX and LINUX64
  (Closes: #632611 and LP: #791308).
* debian/control (Build-Depends): Added openssh-client.
* debian/rules (USE_SCALAPACK, SCALAPACK): Removed variables (Closes:
  #654658).
* debian/rules (LIBDIR, USE_MPIF4, ARMCI_NETWORK): New variables.
* debian/TODO: New file.
* debian/control (Build-Depends): Removed libblas-dev, liblapack-dev and
  libscalapack-mpi-dev.
* debian/patches/04_show_testsuite_diff_output.patch: New patch, shows the
  diff output for failed tests.
* debian/patches/series: Adjusted.
* debian/testsuite: Optionally run all tests if "all" is passed as option.
* debian/rules: Run debian/testsuite with "all" if DEB_BUILD_OPTIONS
  contains "checkall".

[ Daniel Leidert ]
* debian/control: Used wrap-and-sort. Added Vcs-Svn and Vcs-Browser fields.
  (Priority): Moved to extra according to policy section 2.5.
  (Standards-Version): Bumped to 3.9.2.
  (Description): Fixed a typo.
* debian/watch: Added.
* debian/patches/03_hurd-i386_define_path_max.patch: Added.
  - Define MAX_PATH if not defines to fix FTBFS on hurd.
* debian/patches/series: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html>
 
3
<head>
 
4
  <title>ARMCI - Aggregate Remote Memory Copy Interface</title>
 
5
  <meta http-equiv="Content-Type"
 
6
 content="text/html; charset=iso-8859-1">
 
7
  <meta name="Description"
 
8
 content="The homepage for the ARMCI portable remote memory copy library.">
 
9
  <meta name="KeyWords"
 
10
 content="remote memory copy, one-sided communication, 1-sided communication, MPI-2, Global Arrays, ACTS,  parallel computing, pmodels">
 
11
</head>
 
12
<body
 
13
 style="background-image: url(file:///Q:/docs/parsoft/armci/images/main_bg.jpg);"
 
14
 leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
 
15
<script type="text/javascript" language="javascript"
 
16
 src="scripts/header.js"> </script>
 
17
<table width="100%" height="364" border="0" cellpadding="0"
 
18
 cellspacing="0">
 
19
  <tbody>
 
20
    <tr>
 
21
      <td valign="top">
 
22
      <table width="750" height="600" border="0" cellpadding="0"
 
23
 cellspacing="0">
 
24
        <tbody>
 
25
          <tr>
 
26
            <td width="140" valign="top">
 
27
            <table width="140" border="0" cellpadding="0"
 
28
 cellspacing="1">
 
29
              <tbody>
 
30
                <tr>
 
31
                  <td width="122" height="40"><a href="#init"><font
 
32
 size="-1">Initialization
 
33
&amp; Termination</font></a></td>
 
34
                </tr>
 
35
                <tr>
 
36
                  <td width="122" height="40"><a href="#copyvec"><font
 
37
 size="-1">Put/Get (vector)</font></a></td>
 
38
                </tr>
 
39
                <tr>
 
40
                  <td width="122" height="40"><a href="#copys"><font
 
41
 size="-1">PutGet (strided)</font></a></td>
 
42
                </tr>
 
43
                <tr>
 
44
                  <td width="122" height="40"><a href="#copy"><font
 
45
 size="-1">Put/Get
 
46
(contiguous)</font></a></td>
 
47
                </tr>
 
48
                <tr>
 
49
                  <td width="122" height="40"><a href="#accv"><font
 
50
 size="-1">Accumulate (vector)</font></a></td>
 
51
                </tr>
 
52
                <tr>
 
53
                  <td width="122" height="40"><a href="#accs"><font
 
54
 size="-1">Accumulate
 
55
(strided)</font></a></td>
 
56
                </tr>
 
57
                <tr>
 
58
                  <td width="122" height="40"><a href="#acc"><font
 
59
 size="-1">Accumulate
 
60
(contig.)</font></a></td>
 
61
                </tr>
 
62
                <tr>
 
63
                  <td width="122" height="40"><a href="#reg"><font
 
64
 size="-1">Register Ops</font></a></td>
 
65
                </tr>
 
66
                <tr>
 
67
                  <td width="122" height="40"><a href="#compl"><font
 
68
 size="-1">Fence / Wait /
 
69
Barrier</font></a></td>
 
70
                </tr>
 
71
                <tr>
 
72
                  <td width="122" height="40"><a href="#aggr"><font
 
73
 size="-1">Aggregation</font></a></td>
 
74
                </tr>
 
75
                <tr>
 
76
                  <td width="122" height="40"><a href="#atomic"><font
 
77
 size="-1">Atomic / Sync</font></a></td>
 
78
                </tr>
 
79
                <tr>
 
80
                  <td width="122" height="40"><a href="#mem"><font
 
81
 size="-1">Memory Mgmt.</font></a></td>
 
82
                </tr>
 
83
                <tr>
 
84
                  <td width="122" height="40"><a href="#collect"><font
 
85
 size="-1">Collective Ops</font></a></td>
 
86
                </tr>
 
87
                <tr>
 
88
                  <td style="vertical-align: top;"><small><a
 
89
 href="#config">Configuration Info</a></small><br>
 
90
                  </td>
 
91
                </tr>
 
92
              </tbody>
 
93
            </table>
 
94
            </td>
 
95
            <td width="628" valign="top"><!-- ----------- TEXT STARTS HERE ------------- -->
 
96
            <br>
 
97
            <font face="Arial,Helvetica"><font color="#000099">
 
98
            <h2>ARMCI - Programming Interfaces<br>
 
99
            </h2>
 
100
            </font></font> <font face="Arial,Helvetica"><font size="+0"
 
101
 color="#000099"> </font></font><small><font face="Arial,Helvetica"><font
 
102
 size="-1"><big style="color: rgb(0, 0, 153);">ARMCI programming
 
103
interfaces are
 
104
explained below. This is an up-to-date document that containing all the
 
105
supporting ARMCI APIs. There is also a
 
106
document
 
107
describing the ARMCI design (API corresponding to release 1.0 only) is <a
 
108
 href="publications/armci1-1.pdf">available in the&nbsp;
 
109
PDF</a><a href="publications/armci1-1.pdf">&nbsp;
 
110
format</a>. </big><br>
 
111
            </font></font></small> <br>
 
112
            <font face="Arial,Helvetica" style="font-weight: bold;"><font
 
113
 size="+0" color="#000099">Header file</font></font><br>
 
114
            <font face="Arial,Helvetica"><font size="+0" color="#000099">The
 
115
interfaces are prototyped in the "armci.h" header file.<br>
 
116
&nbsp; </font></font>
 
117
            <h3><font face="Arial,Helvetica"><font size="+0"
 
118
 color="#000099"><a name="init"></a>1 Initialization and Termination</font></font></h3>
 
119
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
120
            </font></font>
 
121
            <pre><font face="Arial,Helvetica"><font size="+0"
 
122
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_Init</span>()</font></font></pre>
 
123
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
124
            </font></font>
 
125
            <pre><font face="Arial,Helvetica"><font size="+0"
 
126
 color="#000099">PURPOSE:&nbsp;&nbsp;&nbsp;&nbsp; Initializes the ARMCI. This function must be called before any ARMCI functions.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes). </font></font></pre>
 
127
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
128
            </font></font>
 
129
            <pre><font face="Arial,Helvetica"><font size="+0"
 
130
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_Finalize</span>()</font></font></pre>
 
131
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
132
            </font></font>
 
133
            <pre><font face="Arial,Helvetica"><font size="+0"
 
134
 color="#000099">PURPOSE:&nbsp;&nbsp;&nbsp;&nbsp; Finalizes the ARMCI. This function must be called after using ARMCI functions.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
135
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
136
            </font></font>
 
137
            <pre><font face="Arial,Helvetica"><font size="+0"
 
138
 color="#000099"><br>void&nbsp;<span style="font-weight: bold;">ARMCI_Cleanup</span>()</font></font></pre>
 
139
            <pre><font face="Arial,Helvetica"><font size="+0"
 
140
 color="#000099">PURPOSE: Releases any system resources (like System V shmem ids) that<br>ARMCI can be holding. It is intended to be used before terminating a program<br>(e.g., by calling MPI_Abort) in case of an error.</font></font></pre>
 
141
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
142
            </font></font>
 
143
            <pre><font face="Arial,Helvetica"><font size="+0"
 
144
 color="#000099"><br>void&nbsp;<span style="font-weight: bold;">ARMCI_Error</span>(char *message, int code)</font></font></pre>
 
145
            <font face="Arial,Helvetica"><font size="+0" color="#000099">Purpose:
 
146
Combines the functionality of ARMCI_Cleanup and MPI_Abort, and
 
147
it prints (to the stdout and stderr) a user specified message followed
 
148
by an integer code. </font></font>
 
149
            <pre><font face="Arial,Helvetica"><font size="+0"
 
150
 color="#000099">ARGUMENTS:&nbsp;&nbsp;&nbsp;<br>message&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Message to print out<br>code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Error code<br></font></font></pre>
 
151
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
152
            </font></font>
 
153
            <hr style="width: 100%; height: 2px;"><font
 
154
 face="Arial,Helvetica"><font size="+0" color="#000099"> </font></font>
 
155
            <h3><font face="Arial,Helvetica"><font size="+0"
 
156
 color="#000099"><a name="copyvec"></a>2 Copy operations using
 
157
the generalized I/O vector format</font></font></h3>
 
158
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
159
            </font></font>
 
160
            <pre><font face="Arial,Helvetica"><font size="+0"
 
161
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_PutV</span>(armci_giov_t *dsrc_arr, int arr_len, int proc)</font></font></pre>
 
162
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
163
Generalized&nbsp; I/O vector operation that transfers data
 
164
from
 
165
the local memory of calling process (source) to the memory of a remote
 
166
process (destination). </font></font>
 
167
            <pre><font face="Arial,Helvetica"><font size="+0"
 
168
 color="#000099">DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;</font></font></pre>
 
169
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
170
            </font></font>
 
171
            <pre><font face="Arial,Helvetica"><font size="+0"
 
172
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr - Array of data (type of armci_giov_t) to be put to remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).</font></font></pre>
 
173
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
174
            </font></font>
 
175
            <pre><font face="Arial,Helvetica"><font size="+0"
 
176
 color="#000099">RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
177
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
178
            </font></font>
 
179
            <pre><font face="Arial,Helvetica"><font size="+0"
 
180
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbPutV</span>(armci_giov_t *dsrc_arr,int arr_len,int proc,armci_hdl_t* handle)</font></font></pre>
 
181
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
182
Generalized Non-Blocking I/O vector operation that transfers
 
183
data
 
184
from the local memory of the calling process (source) to the memory of
 
185
a
 
186
remote
 
187
process (destination). </font></font>
 
188
            <pre><font face="Arial,Helvetica"><font size="+0"
 
189
 color="#000099">DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;</font></font></pre>
 
190
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
191
            </font></font>
 
192
            <pre><font face="Arial,Helvetica"><font size="+0"
 
193
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr - Array of data (type of armci_giov_t) to be put to remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.</font></font></pre>
 
194
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
195
            </font></font>
 
196
            <pre><font face="Arial,Helvetica"><font size="+0"
 
197
 color="#000099">RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
198
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
199
            </font></font>
 
200
            <pre><font face="Arial,Helvetica"><font size="+0"
 
201
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_GetV</span>(armci_giov_t *dsrc_arr,int arr_len,int proc)</font></font></pre>
 
202
            <font face="Arial,Helvetica"><font size="+0" color="#000099">&nbsp;PURPOSE:
 
203
Generalized&nbsp; I/O vector blocking operation that
 
204
transfers
 
205
data from the remote process memory (source) to the calling process
 
206
local
 
207
memory (destination). </font></font>
 
208
            <pre><font face="Arial,Helvetica"><font size="+0"
 
209
 color="#000099">DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;</font></font></pre>
 
210
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
211
            </font></font>
 
212
            <pre><font face="Arial,Helvetica"><font size="+0"
 
213
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr - Array of data (type of armci_giov_t) to get from remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (source).</font></font></pre>
 
214
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
215
            </font></font>
 
216
            <pre><font face="Arial,Helvetica"><font size="+0"
 
217
 color="#000099">RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
218
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
219
            </font></font>
 
220
            <pre><font face="Arial,Helvetica"><font size="+0"
 
221
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbGetV</span>(armci_giov_t *dsrc_arr,int arr_len,int proc,armci_hdl_t* handle)</font></font></pre>
 
222
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
223
Generalized Non-blocking I/O vector operation that transfers
 
224
data from the remote process memory (source) to the callingprocess
 
225
local memory (destination). </font></font>
 
226
            <pre><font face="Arial,Helvetica"><font size="+0"
 
227
 color="#000099">DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;<br>ARGUMENTS:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr - Array of data (type of armci_giov_t) to get from remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (source).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
228
            <font face="Arial,Helvetica"><font size="+0" color="#000099">_____________________________________________________________________________
 
229
            <br>
 
230
            </font></font>
 
231
            <h3><font face="Arial,Helvetica"><font size="+0"
 
232
 color="#000099"><a name="copys"></a>3 Copy operations using the
 
233
strided
 
234
format</font></font></h3>
 
235
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
236
            </font></font>
 
237
            <pre><font face="Arial,Helvetica"><font size="+0"
 
238
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_PutS</span>(void* src_ptr, int src_stride_ar[], void* dst_ptr, int dst_stride_ar[], <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count[], int stride_levels, int proc)<br></font></font></pre>
 
239
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
240
Blocking strided&nbsp; operation that transfers data from the
 
241
local memory of calling process (source) to the memory of a remote
 
242
process (destination).<br>
 
243
            </font></font>
 
244
            <pre><font face="Arial,Helvetica"><font size="+0"
 
245
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_ar&nbsp; - Destination array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
246
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
247
            </font></font>
 
248
            <pre><font face="Arial,Helvetica"><font size="+0"
 
249
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbPutS</span>(void* src_ptr, int src_stride_ar[], void* dst_ptr, int dst_stride_ar[], <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count[], int stride_levels, int proc,armci_hdl_t* handle)</font></font></pre>
 
250
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
251
Non-blocking strided&nbsp; operation that transfer data
 
252
from
 
253
the local memory of calling process (source) to the memory of a remote
 
254
process (destination). </font></font>
 
255
            <pre><font face="Arial,Helvetica"><font size="+0"
 
256
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_ar&nbsp; - Destination array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
257
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
258
            </font></font>
 
259
            <pre><font face="Arial,Helvetica"><font size="+0"
 
260
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_GetS</span>(void *src_ptr c_ptr, int src_stride_ar[], void* dst_ptr,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int dst_stride_ar[], int count[], int stride_levels, int proc)</font></font></pre>
 
261
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
262
Blocking strided operation that transfers data
 
263
from
 
264
the remote process memory (source) to the calling process&nbsp; local
 
265
memory
 
266
(destination). <br>
 
267
            </font></font>
 
268
            <pre><font face="Arial,Helvetica"><font size="+0"
 
269
 color="#000099">ARGUMENTS:<br>       src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to get.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to get data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_arr - Destination array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (source).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
270
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
271
            </font></font>
 
272
            <pre><font face="Arial,Helvetica"><font size="+0"
 
273
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbGetS</span>(void *src_ptr c_ptr, int src_stride_ar[], void* dst_ptr, int dst_stride_ar[], <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int count[], int stride_levels, int proc, armci_hdl_t* handle)</font></font></pre>
 
274
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
275
Non-blocking strided operation that transfers data
 
276
from
 
277
the remote process memory (source) to the calling process&nbsp; local
 
278
memory
 
279
(destination). <br>
 
280
            </font></font>
 
281
            <pre><font face="Arial,Helvetica"><font size="+0"
 
282
 color="#000099">&nbsp;&nbsp;&nbsp;&nbsp; ARGUMENTS:<br>       src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to get.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to get data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_arr - Destination array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (source).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>       zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
283
            <font face="Arial,Helvetica"><font size="+0" color="#000099">_____________________________________________________________________________
 
284
            <br>
 
285
            </font></font>
 
286
            <h3><font face="Arial,Helvetica"><font size="+0"
 
287
 color="#000099"><a name="copy"></a>4 Copy operations for contiguous
 
288
data</font></font></h3>
 
289
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
290
            </font></font>
 
291
            <pre><font face="Arial,Helvetica"><font size="+0"
 
292
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_Put</span>(void* src, void* dst, int bytes, int proc)</font></font></pre>
 
293
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
294
            <small>PURPOSE: Blocking transfer of contiguous data from
 
295
the local process&nbsp;
 
296
memory (source) to remote process memory (destination).</small> </font></font>
 
297
            <pre><font face="Arial,Helvetica"><font size="+0"
 
298
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp; - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
299
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
300
            </font></font>
 
301
            <pre><font face="Arial,Helvetica"><font size="+0"
 
302
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbPut</span>(void* src, void* dst, int bytes, int proc, armci_hdl_t* handle)</font></font></pre>
 
303
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
304
            <small>PURPOSE: Non-blocking transfer of contiguous data
 
305
from
 
306
the local
 
307
process&nbsp;
 
308
memory (source) to remote process memory (destination).</small> </font></font>
 
309
            <pre><font face="Arial,Helvetica"><font size="+0"
 
310
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp; - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp; - Remote process ID (destination).            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br><br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
311
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
312
            </font></font>
 
313
            <pre><font face="Arial,Helvetica"><font size="+0"
 
314
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_Get</span>(src, dst, bytes, proc)</font></font></pre>
 
315
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
316
Blocking transfer of contiguous data from the remote process&nbsp;
 
317
memory (source) to the calling process
 
318
memory (destination). </font></font>
 
319
            <pre><font face="Arial,Helvetica"><font size="+0"
 
320
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp; - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>            <br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
321
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
322
            </font></font>
 
323
            <pre><font face="Arial,Helvetica"><font size="+0"
 
324
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbGet</span>(src, dst, bytes, proc, armci_hdl_t* handle)</font></font></pre>
 
325
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
326
Non-blocking transfer of contiguous
 
327
data
 
328
from the remote process&nbsp; memory (source) to the calling process
 
329
memory
 
330
(destination). </font></font>
 
331
            <pre><font face="Arial,Helvetica"><font size="+0"
 
332
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp; - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
333
            <font face="Arial,Helvetica"><font size="+0" color="#000099">__________________________________________________________________________
 
334
            </font></font>
 
335
            <h3><font face="Arial,Helvetica"><font size="+0"
 
336
 color="#000099"><a name="accv"></a>5 Accumulate operation using the
 
337
generalized I/O
 
338
vector format</font></font></h3>
 
339
            <font face="Arial,Helvetica"><font size="+0" color="#000099">Accumulate
 
340
operation performs atomic scaled reduction, i.e.,&nbsp;
 
341
remote += scale*local <br>
 
342
            <br>
 
343
            </font></font>
 
344
            <pre><font face="Arial,Helvetica"><font size="+0"
 
345
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_AccV</span>(int datatype, void *scale, armci_giov_t *dsrc_arr, int arr_len, int proc, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; armci_hdl_t* handle)<br><br>PURPOSE: Blocking generalized I/O vector operation that atomically updates the memory of<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a remote process (destination).<br>DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;<br><br>ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype&nbsp; - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;&nbsp;&nbsp; - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr&nbsp; - Array of data (type of armci_giov_t) to be accumulated to the remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp;&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
346
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
347
            </font></font>
 
348
            <pre><font face="Arial,Helvetica"><font size="+0"
 
349
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbAccV</span>(int datatype, void *scale, armci_giov_t *dsrc_arr, int arr_len, int proc, <br>                 armci_hdl_t* handle)</font></font></pre>
 
350
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
351
Non-blocking generalized&nbsp; I/O vector operation that
 
352
atomically&nbsp;
 
353
updates the memory of a remote process (destination). </font></font>
 
354
            <pre><font face="Arial,Helvetica"><font size="+0"
 
355
 color="#000099">DATA TYPE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **src_ptr_ar;&nbsp; - Source starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void **dst_ptr_ar;&nbsp; - Destination starting addresses of each data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bytes;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - The length of each segment in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ptr_ar_len;&nbsp;&nbsp;&nbsp; - Number of data segment.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }armci_giov_t;<br>ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype&nbsp; - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.</font></font></pre>
 
356
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
357
            </font></font>
 
358
            <pre><font face="Arial,Helvetica"><font size="+0"
 
359
 color="#000099">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;&nbsp;&nbsp; - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dsrc_arr&nbsp; - Array of data (type of armci_giov_t) to be accumulated to the remote process.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_len&nbsp;&nbsp; - Number of elements in the dsrc_arr.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
360
            <font face="Arial,Helvetica"><font size="+0" color="#000099">_____________________________________________________________________________
 
361
            </font></font>
 
362
            <h3><font face="Arial,Helvetica"><font size="+0"
 
363
 color="#000099"><a name="accs"></a>6 Accumulate operation using the
 
364
strided format</font></font></h3>
 
365
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
366
            </font></font>
 
367
            <pre><font face="Arial,Helvetica"><font size="+0"
 
368
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_AccS</span>(int datatype, void *scale, void* src_ptr,int src_stride_ar[], void* dst_ptr, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int dst_stride_ar[], int count[],&nbsp; int stride_levels, int proc)<br>PURPOSE: Blocking strided operation that atomicaly updates the memory of a remote process (destination).<br>ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_arr - Destination array stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value&nbsp;&nbsp;&nbsp; - Error code (described in the release notes).</font></font></pre>
 
369
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
370
            </font></font>
 
371
            <pre><font face="Arial,Helvetica"><font size="+0"
 
372
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbAccS</span>(int datatype, void *scale, void* src_ptr,int src_stride_ar[], <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void* dst_ptr, int dst_stride_ar[], int count[],&nbsp; int stride_levels, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int proc, armci_hdl_t* handle)</font></font></pre>
 
373
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
374
            <small>PURPOSE: Non-blocking strided
 
375
operation
 
376
that atomicaly updates the memory of a remote process (destination).</small>
 
377
            </font></font>
 
378
            <pre><font face="Arial,Helvetica"><font size="+0"
 
379
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Source starting address of the data block to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src_stride_arr - Source array of stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst_stride_arr - Destination array stride distances in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Block size in each dimension. count[0] should be the<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of bytes of contiguous data in leading dimension.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stride_levels&nbsp; - The level of strides.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value&nbsp;&nbsp;&nbsp; - Error code (described in the release notes).<br></font></font></pre>
 
380
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
381
            </font></font>
 
382
            <hr style="width: 100%; height: 2px;"><font
 
383
 face="Arial,Helvetica"><font size="+0" color="#000099"> </font></font>
 
384
            <h3><font face="Arial,Helvetica"><font size="+0"
 
385
 color="#000099"><a name="acc"></a>7 Accumulate operation using
 
386
contiguous format<br>
 
387
            </font></font></h3>
 
388
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
389
            </font></font>
 
390
            <pre><font face="Arial,Helvetica"><font size="+0"
 
391
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_Acc</span>(int datatype, void *scale, void* src, void* dst, int bytes, int proc)<br>PURPOSE: Blocking operation that atomicaly updates the memory of a remote process (destination).<br><br>ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;  - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp;  - Source starting address of the data to transfer.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp;  - Destination starting address to add incoming data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp;  - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;  - Remote process ID (destination).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
392
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
393
            </font></font>
 
394
            <pre><font face="Arial,Helvetica"><font size="+0"
 
395
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbAcc</span>(int datatype, void *scale, void* src, void* dst, int bytes, int proc, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;armci_hdl_t* handle)<br><br>PURPOSE: Bon-blocking operation that atomicaly updates the memory of a remote process (destination).<br>ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datatype - Supported data types are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_INT -&gt; int, ARMCI_ACC_LNG -&gt; long,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_FLT -&gt; float, ARMCI_ACC_DBL-&gt; double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_ACC_CPL -&gt; complex, ARMCI_ACC_DCPL -&gt; double complex.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scale&nbsp;&nbsp;  - Scale for the data (dest = dest + scale * src).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;&nbsp;&nbsp;  - Source starting address of the data to transfer.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;&nbsp;&nbsp;  - Destination starting address to add incoming data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytes&nbsp;&nbsp;  - amount of data to transfer in bytes.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;  - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle&nbsp;&nbsp; - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).<br></font></font></pre>
 
396
            <font face="Arial,Helvetica"><font size="+0" color="#000099">&nbsp;_____________________________________________________________________________
 
397
            </font></font>
 
398
            <h3><font face="Arial,Helvetica"><font size="+0"
 
399
 color="#000099"><a name="reg"></a>8 Register Originated Data Transfer
 
400
Operations</font></font></h3>
 
401
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
402
            </font></font>
 
403
            <pre><font face="Arial,Helvetica"><font size="+0"
 
404
 color="#000099">int&nbsp;<span style="font-weight: bold;">ARMCI_PutValueXXX</span>(DATATYPE src, void* dst, int proc)</font></font></pre>
 
405
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
406
            <small>PURPOSE: Transfer of a value stored in a
 
407
register&nbsp; of a local
 
408
process
 
409
to remote process memory (destination).&nbsp;&nbsp; XXX can be
 
410
"Long"/"Int"/"Double"/"Float"</small> </font></font>
 
411
            <pre><font face="Arial,Helvetica"><font size="+0"
 
412
 color="#000099">ARGUMENTS:<br>DATA TYPE &nbsp;&nbsp; - long, int, float, double according to XXX in the function name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp; - Value in a register to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp; - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp; - Remote process ID (destination).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
413
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
414
            </font></font>
 
415
            <pre><font face="Arial,Helvetica"><font size="+0"
 
416
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_NbPutValueXXX</span>(DATATYPE src, void* dst, int proc, armci_hdl_t* handle)</font></font></pre>
 
417
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
418
            <small>PURPOSE: Non-blocking transfer of a value stored in
 
419
a register of a
 
420
local
 
421
process to remote process memory (destination).&nbsp;
 
422
XXX can be "Long"/"Int"/"Double"/"Float"</small> </font></font>
 
423
            <pre><font face="Arial,Helvetica"><font size="+0"
 
424
 color="#000099">ARGUMENTS:<br>DATA TYPE:&nbsp;  - long, int, float, double according to XXX in the function name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp;  - Value in a register to put.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dst&nbsp;&nbsp;  - Destination starting address to put data.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp;  - Remote process ID (destination).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Passing of a NULL value for this arg makes this function do an implicit&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle non-blocking transfer.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
425
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
426
            </font></font>
 
427
            <pre><font face="Arial,Helvetica"><font size="+0"
 
428
 color="#000099"><br>DATATYPE&nbsp;<span style="font-weight: bold;">ARMCI_GetValueXXX</span>(void *src, int proc)</font></font></pre>
 
429
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
430
            <small>PURPOSE: Transfer of a value stored in a
 
431
register&nbsp; of a process
 
432
(source).&nbsp;&nbsp;
 
433
XXX can be "Long"/"Int"/"Double"/"Float"</small> </font></font>
 
434
            <pre><font face="Arial,Helvetica"><font size="+0"
 
435
 color="#000099">ARGUMENTS:<br> DATATYPE&nbsp;&nbsp;&nbsp; - long, int, float, double according to XXX in the function name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src&nbsp;&nbsp; - Source starting address.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc&nbsp; - Remote process ID (source).<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the value (of type DATATYPE) is returned.</font></font></pre>
 
436
            <font face="Arial,Helvetica"><font size="+0" color="#000099">_____________________________________________________________________________
 
437
            </font></font>
 
438
            <h3><font face="Arial,Helvetica"><font size="+0"
 
439
 color="#000099"><a name="compl"></a>9 Completion of Outstanding
 
440
Operations</font></font></h3>
 
441
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
442
            </font></font>
 
443
            <pre><font face="Arial,Helvetica"><font size="+0"
 
444
 color="#000099">int <span style="font-weight: bold;">ARMCI_Fence</span>(int proc)</font></font></pre>
 
445
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
446
            <small>PURPOSE: Blocks the calling process until all
 
447
blocking put or
 
448
accumulate
 
449
operations<br>
 
450
issued to the specified remote process complete at the destination.</small>
 
451
            </font></font>
 
452
            <pre><font face="Arial,Helvetica"><font size="+0"
 
453
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;    proc&nbsp;&nbsp;&nbsp; - Remote process ID.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
454
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
455
            </font></font>
 
456
            <pre><font face="Arial,Helvetica"><font size="+0"
 
457
 color="#000099"><br>int <span style="font-weight: bold;">ARMCI_AllFence</span>()</font></font></pre>
 
458
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
459
            <small>PURPOSE: Blocks the calling process until all the
 
460
outstanding blocking
 
461
put or accumulate<br>
 
462
operations complete remotely regardless of the destination processor.</small>
 
463
            </font></font>
 
464
            <p><font face="Arial,Helvetica"><font size="+0"
 
465
 color="#000099"><small>ARGUMENTS: none </small><br>
 
466
            </font></font></p>
 
467
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
468
            </font></font>
 
469
            <pre><font face="Arial,Helvetica"><font size="+0"
 
470
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_Wait</span>(armci_hdl_t* handle)</font></font></pre>
 
471
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
472
            <small>PURPOSE: A common function to be used&nbsp; to wait
 
473
for non-blocking
 
474
ARMCI
 
475
operations with explicit handle.</small><br>
 
476
            </font></font>
 
477
            <pre><font face="Arial,Helvetica"><font size="+0"
 
478
 color="#000099">ARGUMENTS:<br>   handle - Pointer to a desciptor associated with a particular non-blocking transfer.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A value of NULL for the pointer is erroneous. A value other then NULL would&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make this routine act as a wait for an explicit non-blocking request with&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the handle pointed to by reqid.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
479
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
480
            </font></font>
 
481
            <pre><font face="Arial,Helvetica"><font size="+0"
 
482
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_Test</span>(armci_hdl_t* handle)</font></font></pre>
 
483
            <font face="Arial,Helvetica"><font size="+0" color="#000099">PURPOSE:
 
484
A function to be used as check completion status of&nbsp;
 
485
non-blocking
 
486
ARMCI operations with explicit handle. </font></font>
 
487
            <pre><font face="Arial,Helvetica"><font size="+0"
 
488
 color="#000099">ARGUMENTS:<br>   handle - Pointer to a desciptor associated with a particular non-blocking transfer. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A value of NULL for the pointer is erroneous. A value other then NULL would&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make this routine act as a wait for an explicit non-blocking request with&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the handle pointed to by reqid.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Completed<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - In progress<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
489
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
490
            </font></font>
 
491
            <pre><font face="Arial,Helvetica"><font size="+0"
 
492
 color="#000099"><br>int&nbsp;<span style="font-weight: bold;">ARMCI_WaitProc</span>(int proc)</font></font></pre>
 
493
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
494
            <small>PURPOSE: Wait for all outstanding non-blocking
 
495
operations with implicit
 
496
handles to a particular process to finish.</small> </font></font>
 
497
            <pre><font face="Arial,Helvetica"><font size="+0"
 
498
 color="#000099">ARGUMENTS:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proc - proc for which all the outstanding non-blocking operations have to be completed.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
499
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
500
            </font></font>
 
501
            <pre><font face="Arial,Helvetica"><font size="+0"
 
502
 color="#000099"><br>int<span style="font-weight: bold;"> ARMCI_WaitAll</span>()</font></font></pre>
 
503
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
504
            <small>PURPOSE: Wait for all outstanding non-blocking
 
505
operations with implicit
 
506
handles to finish.</small> </font></font>
 
507
            <pre><font face="Arial,Helvetica"><font size="+0"
 
508
 color="#000099">ARGUMENTS: none<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
509
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
510
            </font></font>
 
511
            <pre><font face="Arial,Helvetica"><font size="+0"
 
512
 color="#000099"><br>int<span style="font-weight: bold;"> ARMCI_Barrier</span>()<br><br>PURPOSE: Synchronize processors and memory. This operation combines functionality of <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MPI_Barrier and ARMCI_AllFence.<br>ARGUMENTS: none<br>RETURN VALUE: none</font></font></pre>
 
513
            <font face="Arial,Helvetica"><font size="+0" color="#000099">_____________________________________________________________________________
 
514
            </font></font>
 
515
            <h3><font face="Arial,Helvetica"><font size="+0"
 
516
 color="#000099"><a name="aggr"></a>10 Aggregated Data Transfer
 
517
Operations</font></font></h3>
 
518
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
519
            <span style="font-weight: bold;">ARMCI_SET_AGGREGATE_HANDLE</span>
 
520
(armci_hdl_t*
 
521
handle) </font></font>
 
522
            <pre><font face="Arial,Helvetica"><font size="+0"
 
523
 color="#000099">handle - Pointer to a desciptor associated with a particular non-blocking transfer.</font></font></pre>
 
524
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
525
            <small>PURPOSE: Mark a handle as aggregate. This will allow
 
526
ARMCI to combine
 
527
nonblocking
 
528
operations that use that particular handle and process them as a single
 
529
operation. In the initial implementation only contiguous puts or gets
 
530
could
 
531
use aggregate handle. Specifying the same handle for a mix of put anmd
 
532
get calls is not allowed i.e., only multiple put or only multiple get
 
533
calls
 
534
can use the same handle.</small><br>
 
535
            <br>
 
536
            </font></font>
 
537
            <p><span style="font-weight: bold;"><font
 
538
 face="Arial,Helvetica"><font size="+0" color="#000099">ARMCI_UNSET_AGGREGATE_HANDLE</font></font></span>
 
539
            <font face="Arial,Helvetica"><font size="+0" color="#000099">(armci_hdl_t*
 
540
handle) </font></font></p>
 
541
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
542
            </font></font>
 
543
            <pre><font face="Arial,Helvetica"><font size="+0"
 
544
 color="#000099">handle - Pointer to a desciptor associated with a particular non-blocking transfer.</font></font></pre>
 
545
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
546
            <small>PURPOSE: Clears a handle that has been marked as
 
547
aggregate</small>. <br>
 
548
            </font></font>
 
549
            <hr style="width: 100%; height: 2px;"><font
 
550
 face="Arial,Helvetica"><font size="+0" color="#000099"> </font></font>
 
551
            <h3><span style="font-weight: bold;"><font
 
552
 face="Arial,Helvetica"><font size="+0" color="#000099"><a name="atomic"></a>11
 
553
Atomic and
 
554
Synchronization
 
555
Operations<br>
 
556
            </font></font></span></h3>
 
557
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
558
            </font></font>
 
559
            <pre><font face="Arial,Helvetica"><font size="+0"
 
560
 color="#000099">int <span style="font-weight: bold;">ARMCI_Rmw</span>(int op, void *ploc, void *prem, int value, proc)</font></font></pre>
 
561
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
562
            <small>PURPOSE: Combines atomically the specified
 
563
integer&nbsp; value with the
 
564
corresponding integer value (int or long) at the remote memory location
 
565
and returns the original value found at that location.</small> </font></font>
 
566
            <pre><font face="Arial,Helvetica"><font size="+0"
 
567
 color="#000099">ARGUMENTS:&nbsp;<br>&nbsp;&nbsp;&nbsp; op&nbsp;&nbsp;&nbsp; - Available operations are:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_FETCH_AND_ADD -&gt; int<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_FETCH_AND_ADD_LONG -&gt; long<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_SWAP -&gt; int<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARMCI_SWAP_LONG -&gt;long<br>&nbsp;&nbsp; ploc&nbsp;&nbsp; - Pointer to the local memory.<br>&nbsp;&nbsp; prem&nbsp;&nbsp; - Pointer to the remote memory.<br>&nbsp;&nbsp; value&nbsp; - Value to be added to the remote memory.<br>&nbsp;&nbsp; proc&nbsp;&nbsp; - Remote process ID.</font></font></pre>
 
568
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
569
            <span style="font-weight: bold;"><br>
 
570
            </span> </font></font>
 
571
            <pre><font face="Arial,Helvetica"><font size="+0"
 
572
 color="#000099">int <span style="font-weight: bold;">ARMCI_Create_mutexes</span>(int count)</font></font></pre>
 
573
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
574
            <small>PURPOSE: Collective operation to create sets of
 
575
mutexes on individual
 
576
processes.<br>
 
577
Each process specifies the number of mutexes associated with that <br>
 
578
process. The total number of mutexes allocate will be a sum of the <br>
 
579
values specified on each process.</small> </font></font>
 
580
            <pre><font face="Arial,Helvetica"><font size="+0"
 
581
 color="#000099">ARGUMENTS:<br>&nbsp; count&nbsp;&nbsp;&nbsp; - number of mutexes allocated on calling process<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count=0 means that no mutexes will be associated with that process.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
582
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
583
            </font></font>
 
584
            <pre><font face="Arial,Helvetica"><font size="+0"
 
585
 color="#000099"><br>int <span style="font-weight: bold;">ARMCI_Destroy_mutexes</span>(void)</font></font></pre>
 
586
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
587
            <small>PURPOSE: Collective operation to destroy mutex sets
 
588
allocated by
 
589
ARMCI_Create_mutexes.</small> </font></font>
 
590
            <pre><font face="Arial,Helvetica"><font size="+0"
 
591
 color="#000099">ARGUMENTS:&nbsp; none<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).</font></font></pre>
 
592
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
593
            </font></font>
 
594
            <pre><font face="Arial,Helvetica"><font size="+0"
 
595
 color="#000099"><br>void <span style="font-weight: bold;">ARMCI_Lock</span>(int mutex, int proc)</font></font></pre>
 
596
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
597
            <small>PURPOSE: Acquire the specified mutex on the
 
598
specified
 
599
process on behalf
 
600
of the calling process.</small><br>
 
601
            </font></font>
 
602
            <pre><font face="Arial,Helvetica"><font size="+0"
 
603
 color="#000099">ARGUMENTS:<br>&nbsp;mutex&nbsp;&nbsp;&nbsp; - Mutex number (0..count-1)<br>&nbsp; proc&nbsp;&nbsp;&nbsp; - Remote process ID</font></font></pre>
 
604
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
605
            </font></font>
 
606
            <pre><font face="Arial,Helvetica"><font size="+0"
 
607
 color="#000099"><br>void <span style="font-weight: bold;">ARMCI_Unlock</span>(int mutex, int proc)</font></font></pre>
 
608
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
609
            <small>PURPOSE: Releas the specified mutex on the specified
 
610
process on behalf
 
611
of the calling process. The mutex must have been acquired with
 
612
ARMCI_Lock.</small> </font></font>
 
613
            <pre><span style="font-family: arial,helvetica;"><font
 
614
 face="Arial,Helvetica"><font size="+0" color="#000099">ARGUMENTS:</font></font></span><font
 
615
 face="Arial,Helvetica"><font size="+0" color="#000099"><br>&nbsp;&nbsp;&nbsp; mutex&nbsp;&nbsp;&nbsp; - Mutex number (0..count-1)<br>&nbsp;&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp;&nbsp; - Remote process ID<br></font></font></pre>
 
616
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
617
            </font></font>
 
618
            <hr style="width: 100%; height: 2px;"><font
 
619
 face="Arial,Helvetica"><font size="+0" color="#000099"> </font></font>
 
620
            <h3><font face="Arial,Helvetica"><font size="+0"
 
621
 color="#000099"><a name="mem"></a>12 Memory Management<br>
 
622
            </font></font></h3>
 
623
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
624
            </font></font>
 
625
            <pre><font face="Arial,Helvetica"><font size="+0"
 
626
 color="#000099">int <span style="font-weight: bold;">ARMCI_Malloc</span>(void* ptr[], armci_size_t bytes)</font></font></pre>
 
627
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
628
            <small>PURPOSE: Collective operation to allocate memory
 
629
that can be used in
 
630
the context<br>
 
631
of ARMCI copy operations.</small><br>
 
632
            </font></font>
 
633
            <pre><font face="Arial,Helvetica"><font size="+0"
 
634
 color="#000099">ARGUMENTS:<br>&nbsp; ptr&nbsp;&nbsp;&nbsp; - Pointer array. Each pointer points to the allocated memory of one process.<br>bytes&nbsp;&nbsp;&nbsp; - The size of allocated memory in bytes.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).<br><br></font></font></pre>
 
635
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
636
            </font></font>
 
637
            <pre><font face="Arial,Helvetica"><font size="+0"
 
638
 color="#000099">void* <span style="font-weight: bold;">ARMCI_Malloc_local</span>(armci_size_t bytes)</font></font></pre>
 
639
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
640
            <small>PURPOSE: Operation (noncollective) to allocate local
 
641
memory. This
 
642
memory can only be accessed locally. However, using this memory in
 
643
ARMCI operations can improve performance on some systems. For example,
 
644
on Myrinet or Infiniband, the memory is registered and therefore
 
645
suitable for the native RDMA communication.</small><br>
 
646
            </font></font>
 
647
            <pre><font face="Arial,Helvetica"><font size="+0"
 
648
 color="#000099">ARGUMENTS:<br>bytes&nbsp;&nbsp;&nbsp; - The size of allocated memory in bytes.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL pointer - Failure.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value  - address of newly allocated memory.<br><br></font></font></pre>
 
649
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
650
            </font></font>
 
651
            <pre><font face="Arial,Helvetica"><font size="+0"
 
652
 color="#000099">int <span style="font-weight: bold;">ARMCI_Free</span>(void *address)</font></font></pre>
 
653
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
654
            <small>PURPOSE: Collective operation to free memory which
 
655
was allocated by
 
656
ARMCI_Malloc.</small> </font></font>
 
657
            <pre><font face="Arial,Helvetica"><font size="+0"
 
658
 color="#000099">ARGUMENTS:<br>&nbsp; address&nbsp;&nbsp;&nbsp; - pointer to the allocated memory.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).<br></font></font></pre>
 
659
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
660
            </font></font>
 
661
            <pre><font face="Arial,Helvetica"><font size="+0"
 
662
 color="#000099"><br>int <span style="font-weight: bold;">ARMCI_Free_local</span>(void *address)</font></font></pre>
 
663
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
664
            <small>PURPOSE: Non-collective operation to free memory
 
665
which was allocated by
 
666
ARMCI_Malloc_local.</small> </font></font>
 
667
            <pre><font face="Arial,Helvetica"><font size="+0"
 
668
 color="#000099">ARGUMENTS:<br>&nbsp; address&nbsp;&nbsp;&nbsp; - pointer to the allocated memory.<br>RETURN VALUE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Successful.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other value - Error code (described in the release notes).<br></font></font></pre>
 
669
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
670
            </font></font>
 
671
            <hr style="width: 100%; height: 2px;"><font
 
672
 face="Arial,Helvetica"><font size="+0" color="#000099"> </font></font>
 
673
            <h3><font face="Arial,Helvetica"><font size="+0"
 
674
 color="#000099"><a name="collect"></a>13 Collective Operations</font></font></h3>
 
675
            <font face="Arial,Helvetica"><font size="+0" color="#000099">These
 
676
operations can be used as an alternative to the collective
 
677
operations in a message-passing library ARMCI is running with. The
 
678
programmer can use either. </font></font>
 
679
            <pre><font face="Arial,Helvetica"><font size="+0"
 
680
 color="#000099"><br>void <span style="font-weight: bold;">armci_msg_brdcst</span>(void* buffer, int len, int root)</font></font></pre>
 
681
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
682
            </font></font>
 
683
            <pre><font face="Arial,Helvetica"><font size="+0"
 
684
 color="#000099">PURPOSE: broadcast data from process "root" to everybody else.<br>ARGUMENTS:<br>  buffer - data to broadcast/receive<br>  len    - size of the data<br>  root   - rank of the sending process<br>RETURN VALUE: none</font></font></pre>
 
685
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
686
            </font></font>
 
687
            <pre><font face="Arial,Helvetica"><font size="+0"
 
688
 color="#000099"><br>void <span style="font-weight: bold;">armci_msg_gop2</span>(void *x, int n, int type, char* op)</font></font></pre>
 
689
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
690
            </font></font>
 
691
            <pre><font face="Arial,Helvetica"><font size="+0"
 
692
 color="#000099">PURPOSE: allreduce operation for int, long, float, double corresponding to XXX is "i"/"l","f","d" <br>ARGUMENTS:<br>  x      - data <br>  n      - number of elements<br>  type   - data type, one of: ARMCI_INT/ARMCI_LONG/ARMCI_FLOAT/ARMCI_DOUBLE<br>  op     - operator, one of: "+","-","*","min","max","abs"<br>RETURN VALUE: none</font></font></pre>
 
693
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
694
            </font></font>
 
695
            <pre><font face="Arial,Helvetica"><font size="+0"
 
696
 color="#000099"><br>void <span style="font-weight: bold;">armci_msg_barrier</span>(void)<br>PURPOSE: synchronize all processors<br>ARGUMENTS: none<br>RETURN VALUE: none</font></font></pre>
 
697
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
698
            </font></font>
 
699
            <pre><font face="Arial,Helvetica"><font size="+0"
 
700
 color="#000099"><br>void <span style="font-weight: bold;">armci_msg_reduce</span>(void *x, int n, char* op, int type, int root)<br>PURPOSE: reduce operation<br>ARGUMENTS:<br>  x      - data <br>  len    - size of the data<br>  type   - data type, one of: ARMCI_INT/ARMCI_LONG/ARMCI_FLOAT/ARMCI_DOUBLE<br>  op     - operator, one of: "+","-","*","min","max","abs"<br>RETURN VALUE: none<br></font></font></pre>
 
701
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
702
            </font></font>
 
703
            <hr style="width: 100%; height: 2px;">
 
704
            <h3><font face="Arial,Helvetica"><font size="+0"
 
705
 color="#000099">
 
706
            <h3><a name="config"></a>14 System Configuration</h3>
 
707
            </font></font></h3>
 
708
            <font face="Arial,Helvetica"><font size="+0" color="#000099">These
 
709
operations can be used to determine configuration of the system the
 
710
application&nbsp; is running on.<br>
 
711
The system configuration is described in terms of locality domains. For
 
712
example on clusters with SMP nodes, SMP node is one of two locality
 
713
domains for a process. The ARMCI header file predefines
 
714
ARMCI_DOMAIN_SMP for querying configuration information on clusters
 
715
composed of computer nodes with shared memory. <br>
 
716
            </font></font><font face="Arial,Helvetica"><font size="+0"
 
717
 color="#000099"> </font></font>
 
718
            <pre><font face="Arial,Helvetica"><font size="+0"
 
719
 color="#000099"><br>int <span style="font-weight: bold;">armci_domain_nprocs</span>(armci_domain_t domain, int id)</font></font></pre>
 
720
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
721
            </font></font>
 
722
            <pre><font face="Arial,Helvetica"><font size="+0"
 
723
 color="#000099">PURPOSE: return number of processes/tasks in locality domain represented by id. <br>ARGUMENTS:<br>  domain - domain name <br>  id     - identifier of a node within the locality domain, value &lt; 0 means my node<br>RETURN VALUE:<br>   &lt; 0         - error<br>   other value - number of processes/tasks (0, ..., armci_domain_count(domain)-1)<br><br></font></font><pre
 
724
 style="font-family: monospace;"><font face="Arial,Helvetica"><font
 
725
 size="+0" color="#000099"><font size="+0" color="#000099">int <span
 
726
 style="font-weight: bold;">armci_domain_count</span>(armci_domain_t domain)<br></font></font></font><pre><font
 
727
 face="Arial,Helvetica"><font size="+0" color="#000099"><font size="+0"
 
728
 color="#000099"><font><font><font face="Arial,Helvetica"><font
 
729
 size="+0" color="#000099">PURPOSE: return number of nodes in specified locality domain. <br>ARGUMENTS:<br>  domain - domain name <br>RETURN VALUE:<br>    &lt;  0        - error<br>    other value - number of nodes<br><br></font></font></font></font></font></font></font></pre><pre><font
 
730
 face="Arial,Helvetica"><font size="+0" color="#000099"><font size="+0"
 
731
 color="#000099"><font><font><font face="Arial,Helvetica"><font
 
732
 size="+0" color="#000099">int <span style="font-weight: bold;">armci_domain_id</span>(armci_domain_t domain, int glob_proc_id)<br><br>PURPOSE: return ID of locality domain of specified process<br>ARGUMENTS:<br>  domain - domain name <br>  id     - process/task id<br>RETURN VALUE<br>    &lt; 0         - error<br>    other value - process/task i<span
 
733
 style="font-family: monospace;">d<br><br></span></font></font></font></font></font></font></font></pre><span
 
734
 style="font-family: arial; color: rgb(0, 0, 153);">int </span><span
 
735
 style="font-weight: bold; font-family: arial; color: rgb(0, 0, 153);">armci_domain_glob_proc_id</span><span
 
736
 style="font-family: arial; color: rgb(0, 0, 153);">(armci_domain_t domain, int id, int loc_proc_id)</span></pre></pre>
 
737
            <font face="Arial,Helvetica" style="font-family: arial;"
 
738
 size="-1"><font color="#000099"><font color="#000099"><font><font><font
 
739
 color="#000099"><font><font><font color="#000099">PURPOSE: Returns
 
740
global process/task id based on its id in a given locality domain node </font></font></font></font></font></font></font></font></font><br
 
741
 style="font-family: arial;">
 
742
            <font size="-1" style="font-family: arial;"> </font><font
 
743
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
744
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
745
 color="#000099">ARGUMENTS:</font></font></font></font></font></font></font></font></font><br
 
746
 style="font-family: arial;">
 
747
            <font size="-1" style="font-family: arial;"> </font><font
 
748
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
749
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
750
 color="#000099">&nbsp; domain - domain name</font></font></font></font></font></font></font></font></font><br
 
751
 style="font-family: arial;">
 
752
            <font size="-1" style="font-family: arial;"> </font><font
 
753
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
754
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
755
 color="#000099">&nbsp; id - identifier of a node within the locality
 
756
domain, value &lt; 0 means my node</font></font></font></font></font></font></font></font></font><br
 
757
 style="font-family: arial;">
 
758
            <font size="-1" style="font-family: arial;"> </font><font
 
759
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
760
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
761
 color="#000099">RETURN VALUE:</font></font></font></font></font></font></font></font></font><br
 
762
 style="font-family: arial;">
 
763
            <font size="-1" style="font-family: arial;"> </font><font
 
764
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
765
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
766
 color="#000099">&nbsp; &lt; 0 - error</font></font></font></font></font></font></font></font></font><br
 
767
 style="font-family: arial;">
 
768
            <font size="-1" style="font-family: arial;"> </font><font
 
769
 face="Arial,Helvetica" style="font-family: arial;" size="-1"><font
 
770
 color="#000099"><font color="#000099"><font><font><font color="#000099"><font><font><font
 
771
 color="#000099">&nbsp; other value - process/task id</font></font></font></font></font></font></font></font></font>
 
772
            <pre style="font-family: arial; color: rgb(0, 0, 153);"><pre
 
773
 style="font-family: arial;"><font size="-1">int <span
 
774
 style="font-weight: bold;">armci_domain_my_id</span>(armci_domain_t domain)</font></pre><font
 
775
 size="-1">PURPOSE: Returns id node in specified domain the calling process/task belongs to <br>ARGUMENTS:<br>  domain - domain name<br>  id     - identifier of a node within the locality domain, value &lt; 0 means my node<br>RETURN VALUE: id of domain</font></pre>
 
776
            <font face="Arial,Helvetica"><font size="+0" color="#000099">
 
777
            </font></font><font face="Arial,Helvetica"><font size="+0"
 
778
 color="#000099">
 
779
            <hr style="width: 100%; height: 2px;"> </font></font><!-- ----------- TEXT ENDS HERE ------------- -->
 
780
            </td>
 
781
          </tr>
 
782
        </tbody>
 
783
      </table>
 
784
      </td>
 
785
    </tr>
 
786
  </tbody>
 
787
</table>
 
788
<br>
 
789
</body>
 
790
</html>