~ubuntu-branches/ubuntu/utopic/nwchem/utopic

« 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, Daniel Leidert, Andreas Tille, Michael Banck
  • Date: 2013-07-04 12:14:55 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130704121455-5tvsx2qabor3nrui
Tags: 6.3-1
* New upstream release.
* Fixes anisotropic properties (Closes: #696361).
* New features include:
  + Multi-reference coupled cluster (MRCC) approaches
  + Hybrid DFT calculations with short-range HF 
  + New density-functionals including Minnesota (M08, M11) and HSE hybrid
    functionals
  + X-ray absorption spectroscopy (XAS) with TDDFT
  + Analytical gradients for the COSMO solvation model
  + Transition densities from TDDFT 
  + DFT+U and Electron-Transfer (ET) methods for plane wave calculations
  + Exploitation of space group symmetry in plane wave geometry optimizations
  + Local density of states (LDOS) collective variable added to Metadynamics
  + Various new XC functionals added for plane wave calculations, including
    hybrid and range-corrected ones
  + Electric field gradients with relativistic corrections 
  + Nudged Elastic Band optimization method
  + Updated basis sets and ECPs 

[ Daniel Leidert ]
* debian/watch: Fixed.

[ Andreas Tille ]
* debian/upstream: References

[ Michael Banck ]
* debian/upstream (Name): New field.
* debian/patches/02_makefile_flags.patch: Refreshed.
* debian/patches/06_statfs_kfreebsd.patch: Likewise.
* debian/patches/07_ga_target_force_linux.patch: Likewise.
* debian/patches/05_avoid_inline_assembler.patch: Removed, no longer needed.
* debian/patches/09_backported_6.1.1_fixes.patch: Likewise.
* debian/control (Build-Depends): Added gfortran-4.7 and gcc-4.7.
* debian/patches/10_force_gcc-4.7.patch: New patch, explicitly sets
  gfortran-4.7 and gcc-4.7, fixes test suite hang with gcc-4.8 (Closes:
  #701328, #713262).
* debian/testsuite: Added tests for COSMO analytical gradients and MRCC.
* debian/rules (MRCC_METHODS): New variable, required to enable MRCC methods.

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>