Imported Upstream version 1.72.0
[platform/upstream/boost.git] / doc / html / mpi / c_mapping.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
5 <title>Mapping from C MPI to Boost.MPI</title>
6 <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
7 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8 <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9 <link rel="up" href="../mpi.html" title="Chapter&#160;26.&#160;Boost.MPI">
10 <link rel="prev" href="tutorial.html" title="Tutorial">
11 <link rel="next" href="reference.html" title="Reference">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table cellpadding="2" width="100%"><tr>
15 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
16 <td align="center"><a href="../../../index.html">Home</a></td>
17 <td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
18 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20 <td align="center"><a href="../../../more/index.htm">More</a></td>
21 </tr></table>
22 <hr>
23 <div class="spirit-nav">
24 <a accesskey="p" href="tutorial.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mpi.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
25 </div>
26 <div class="section">
27 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
28 <a name="mpi.c_mapping"></a><a class="link" href="c_mapping.html" title="Mapping from C MPI to Boost.MPI">Mapping from C MPI to Boost.MPI</a>
29 </h2></div></div></div>
30 <p>
31       This section provides tables that map from the functions and constants of the
32       standard C MPI to their Boost.MPI equivalents. It will be most useful for users
33       that are already familiar with the C or Fortran interfaces to MPI, or for porting
34       existing parallel programs to Boost.MPI.
35     </p>
36 <p>
37       Note that this is not a perfect one to one mapping, the Boost.MPI will sometime
38       use function from the C API in a way that is transparent for the end user.
39       For example, <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node50.html#Node50" target="_top"><code class="computeroutput"><span class="identifier">MPI_Probe</span> <span class="keyword">and</span> <span class="identifier">friends</span></code></a> can be used to implement
40       asynchronous send/recv.
41     </p>
42 <div class="table">
43 <a name="mpi.c_mapping.point_to_point_communication"></a><p class="title"><b>Table&#160;26.1.&#160;Point-to-point communication</b></p>
44 <div class="table-contents"><table class="table" summary="Point-to-point communication">
45 <colgroup>
46 <col>
47 <col>
48 </colgroup>
49 <thead><tr>
50 <th>
51               <p>
52                 C Function/Constant
53               </p>
54             </th>
55 <th>
56               <p>
57                 Boost.MPI Equivalent
58               </p>
59             </th>
60 </tr></thead>
61 <tbody>
62 <tr>
63 <td>
64               <p>
65                 <code class="computeroutput"><span class="identifier">MPI_ANY_SOURCE</span></code>
66               </p>
67             </td>
68 <td>
69               <p>
70                 <code class="computeroutput"><span class="identifier">any_source</span></code>
71               </p>
72             </td>
73 </tr>
74 <tr>
75 <td>
76               <p>
77                 <code class="computeroutput"><span class="identifier">MPI_ANY_TAG</span></code>
78               </p>
79             </td>
80 <td>
81               <p>
82                 <code class="computeroutput"><span class="identifier">any_tag</span></code>
83               </p>
84             </td>
85 </tr>
86 <tr>
87 <td>
88               <p>
89                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node40.html#Node40" target="_top"><code class="computeroutput"><span class="identifier">MPI_Bsend</span></code></a>
90               </p>
91             </td>
92 <td>
93               <p>
94                 unsupported
95               </p>
96             </td>
97 </tr>
98 <tr>
99 <td>
100               <p>
101                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Bsend_init</span></code></a>
102               </p>
103             </td>
104 <td>
105               <p>
106                 unsupported
107               </p>
108             </td>
109 </tr>
110 <tr>
111 <td>
112               <p>
113                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node42.html#Node42" target="_top"><code class="computeroutput"><span class="identifier">MPI_Buffer_attach</span></code></a>
114               </p>
115             </td>
116 <td>
117               <p>
118                 unsupported
119               </p>
120             </td>
121 </tr>
122 <tr>
123 <td>
124               <p>
125                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node42.html#Node42" target="_top"><code class="computeroutput"><span class="identifier">MPI_Buffer_detach</span></code></a>
126               </p>
127             </td>
128 <td>
129               <p>
130                 unsupported
131               </p>
132             </td>
133 </tr>
134 <tr>
135 <td>
136               <p>
137                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node50.html#Node50" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cancel</span></code></a>
138               </p>
139             </td>
140 <td>
141               <p>
142                 <code class="computeroutput"><a class="link" href="../boost/mpi/request.html#id-1_3_27_7_21_2_1_1_7_3-bb">request::cancel</a></code>
143               </p>
144             </td>
145 </tr>
146 <tr>
147 <td>
148               <p>
149                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node35.html#Node35" target="_top"><code class="computeroutput"><span class="identifier">MPI_Get_count</span></code></a>
150               </p>
151             </td>
152 <td>
153               <p>
154                 <code class="computeroutput"><a class="link" href="../boost/mpi/status.html#id-1_3_27_7_24_2_1_1_4_5-bb">status::count</a></code>
155               </p>
156             </td>
157 </tr>
158 <tr>
159 <td>
160               <p>
161                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node46.html#Node46" target="_top"><code class="computeroutput"><span class="identifier">MPI_Ibsend</span></code></a>
162               </p>
163             </td>
164 <td>
165               <p>
166                 unsupported
167               </p>
168             </td>
169 </tr>
170 <tr>
171 <td>
172               <p>
173                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node50.html#Node50" target="_top"><code class="computeroutput"><span class="identifier">MPI_Iprobe</span></code></a>
174               </p>
175             </td>
176 <td>
177               <p>
178                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_26-bb">communicator::iprobe</a></code>
179               </p>
180             </td>
181 </tr>
182 <tr>
183 <td>
184               <p>
185                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node46.html#Node46" target="_top"><code class="computeroutput"><span class="identifier">MPI_Irsend</span></code></a>
186               </p>
187             </td>
188 <td>
189               <p>
190                 unsupported
191               </p>
192             </td>
193 </tr>
194 <tr>
195 <td>
196               <p>
197                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node46.html#Node46" target="_top"><code class="computeroutput"><span class="identifier">MPI_Isend</span></code></a>
198               </p>
199             </td>
200 <td>
201               <p>
202                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_16-bb">communicator::isend</a></code>
203               </p>
204             </td>
205 </tr>
206 <tr>
207 <td>
208               <p>
209                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node46.html#Node46" target="_top"><code class="computeroutput"><span class="identifier">MPI_Issend</span></code></a>
210               </p>
211             </td>
212 <td>
213               <p>
214                 unsupported
215               </p>
216             </td>
217 </tr>
218 <tr>
219 <td>
220               <p>
221                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node46.html#Node46" target="_top"><code class="computeroutput"><span class="identifier">MPI_Irecv</span></code></a>
222               </p>
223             </td>
224 <td>
225               <p>
226                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_16-bb">communicator::irecv</a></code>
227               </p>
228             </td>
229 </tr>
230 <tr>
231 <td>
232               <p>
233                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node50.html#Node50" target="_top"><code class="computeroutput"><span class="identifier">MPI_Probe</span></code></a>
234               </p>
235             </td>
236 <td>
237               <p>
238                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_25-bb">communicator::probe</a></code>
239               </p>
240             </td>
241 </tr>
242 <tr>
243 <td>
244               <p>
245                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node53.html#Node53" target="_top"><code class="computeroutput"><span class="identifier">MPI_PROC_NULL</span></code></a>
246               </p>
247             </td>
248 <td>
249               <p>
250                 unsupported
251               </p>
252             </td>
253 </tr>
254 <tr>
255 <td>
256               <p>
257                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node34.html#Node34" target="_top"><code class="computeroutput"><span class="identifier">MPI_Recv</span></code></a>
258               </p>
259             </td>
260 <td>
261               <p>
262                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_9-bb">communicator::recv</a></code>
263               </p>
264             </td>
265 </tr>
266 <tr>
267 <td>
268               <p>
269                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Recv_init</span></code></a>
270               </p>
271             </td>
272 <td>
273               <p>
274                 unsupported
275               </p>
276             </td>
277 </tr>
278 <tr>
279 <td>
280               <p>
281                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Request_free</span></code></a>
282               </p>
283             </td>
284 <td>
285               <p>
286                 unsupported
287               </p>
288             </td>
289 </tr>
290 <tr>
291 <td>
292               <p>
293                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node40.html#Node40" target="_top"><code class="computeroutput"><span class="identifier">MPI_Rsend</span></code></a>
294               </p>
295             </td>
296 <td>
297               <p>
298                 unsupported
299               </p>
300             </td>
301 </tr>
302 <tr>
303 <td>
304               <p>
305                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Rsend_init</span></code></a>
306               </p>
307             </td>
308 <td>
309               <p>
310                 unsupported
311               </p>
312             </td>
313 </tr>
314 <tr>
315 <td>
316               <p>
317                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node31.html#Node31" target="_top"><code class="computeroutput"><span class="identifier">MPI_Send</span></code></a>
318               </p>
319             </td>
320 <td>
321               <p>
322                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_4-bb">communicator::send</a></code>
323               </p>
324             </td>
325 </tr>
326 <tr>
327 <td>
328               <p>
329                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node52.html#Node52" target="_top"><code class="computeroutput"><span class="identifier">MPI_Sendrecv</span></code></a>
330               </p>
331             </td>
332 <td>
333               <p>
334                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_15-bb">communicator::sendrecv</a></code>
335               </p>
336             </td>
337 </tr>
338 <tr>
339 <td>
340               <p>
341                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node52.html#Node52" target="_top"><code class="computeroutput"><span class="identifier">MPI_Sendrecv_replace</span></code></a>
342               </p>
343             </td>
344 <td>
345               <p>
346                 unsupported
347               </p>
348             </td>
349 </tr>
350 <tr>
351 <td>
352               <p>
353                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Send_init</span></code></a>
354               </p>
355             </td>
356 <td>
357               <p>
358                 unsupported
359               </p>
360             </td>
361 </tr>
362 <tr>
363 <td>
364               <p>
365                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node40.html#Node40" target="_top"><code class="computeroutput"><span class="identifier">MPI_Ssend</span></code></a>
366               </p>
367             </td>
368 <td>
369               <p>
370                 unsupported
371               </p>
372             </td>
373 </tr>
374 <tr>
375 <td>
376               <p>
377                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Ssend_init</span></code></a>
378               </p>
379             </td>
380 <td>
381               <p>
382                 unsupported
383               </p>
384             </td>
385 </tr>
386 <tr>
387 <td>
388               <p>
389                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Start</span></code></a>
390               </p>
391             </td>
392 <td>
393               <p>
394                 unsupported
395               </p>
396             </td>
397 </tr>
398 <tr>
399 <td>
400               <p>
401                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node51.html#Node51" target="_top"><code class="computeroutput"><span class="identifier">MPI_Startall</span></code></a>
402               </p>
403             </td>
404 <td>
405               <p>
406                 unsupported
407               </p>
408             </td>
409 </tr>
410 <tr>
411 <td>
412               <p>
413                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Test</span></code></a>
414               </p>
415             </td>
416 <td>
417               <p>
418                 <code class="computeroutput"><a class="link" href="../boost/mpi/request.html#id-1_3_27_7_21_2_1_1_7_1-bb">request::test</a></code>
419               </p>
420             </td>
421 </tr>
422 <tr>
423 <td>
424               <p>
425                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Testall</span></code></a>
426               </p>
427             </td>
428 <td>
429               <p>
430                 <code class="computeroutput"><a class="link" href="../boost/mpi/test_all.html" title="Function test_all">test_all</a></code>
431               </p>
432             </td>
433 </tr>
434 <tr>
435 <td>
436               <p>
437                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Testany</span></code></a>
438               </p>
439             </td>
440 <td>
441               <p>
442                 <code class="computeroutput"><a class="link" href="../boost/mpi/test_any.html" title="Function template test_any">test_any</a></code>
443               </p>
444             </td>
445 </tr>
446 <tr>
447 <td>
448               <p>
449                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Testsome</span></code></a>
450               </p>
451             </td>
452 <td>
453               <p>
454                 <code class="computeroutput"><a class="link" href="../boost/mpi/test_some.html" title="Function test_some">test_some</a></code>
455               </p>
456             </td>
457 </tr>
458 <tr>
459 <td>
460               <p>
461                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node50.html#Node50" target="_top"><code class="computeroutput"><span class="identifier">MPI_Test_cancelled</span></code></a>
462               </p>
463             </td>
464 <td>
465               <p>
466                 <code class="computeroutput"><a class="link" href="../boost/mpi/status.html#id-1_3_27_7_24_2_1_1_4_4-bb">status::cancelled</a></code>
467               </p>
468             </td>
469 </tr>
470 <tr>
471 <td>
472               <p>
473                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Wait</span></code></a>
474               </p>
475             </td>
476 <td>
477               <p>
478                 <code class="computeroutput"><a class="link" href="../boost/mpi/request.html#id-1_3_27_7_21_2_1_1_7_1-bb">request::wait</a></code>
479               </p>
480             </td>
481 </tr>
482 <tr>
483 <td>
484               <p>
485                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Waitall</span></code></a>
486               </p>
487             </td>
488 <td>
489               <p>
490                 <code class="computeroutput"><a class="link" href="../boost/mpi/wait_all.html" title="Function wait_all">wait_all</a></code>
491               </p>
492             </td>
493 </tr>
494 <tr>
495 <td>
496               <p>
497                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Waitany</span></code></a>
498               </p>
499             </td>
500 <td>
501               <p>
502                 <code class="computeroutput"><a class="link" href="../boost/mpi/wait_any.html" title="Function template wait_any">wait_any</a></code>
503               </p>
504             </td>
505 </tr>
506 <tr>
507 <td>
508               <p>
509                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node47.html#Node47" target="_top"><code class="computeroutput"><span class="identifier">MPI_Waitsome</span></code></a>
510               </p>
511             </td>
512 <td>
513               <p>
514                 <code class="computeroutput"><a class="link" href="../boost/mpi/wait_some.html" title="Function wait_some">wait_some</a></code>
515               </p>
516             </td>
517 </tr>
518 </tbody>
519 </table></div>
520 </div>
521 <br class="table-break"><p>
522       Boost.MPI automatically maps C and C++ data types to their MPI equivalents.
523       The following table illustrates the mappings between C++ types and MPI datatype
524       constants.
525     </p>
526 <div class="table">
527 <a name="mpi.c_mapping.datatypes"></a><p class="title"><b>Table&#160;26.2.&#160;Datatypes</b></p>
528 <div class="table-contents"><table class="table" summary="Datatypes">
529 <colgroup>
530 <col>
531 <col>
532 </colgroup>
533 <thead><tr>
534 <th>
535               <p>
536                 C Constant
537               </p>
538             </th>
539 <th>
540               <p>
541                 Boost.MPI Equivalent
542               </p>
543             </th>
544 </tr></thead>
545 <tbody>
546 <tr>
547 <td>
548               <p>
549                 <code class="computeroutput"><span class="identifier">MPI_CHAR</span></code>
550               </p>
551             </td>
552 <td>
553               <p>
554                 <code class="computeroutput"><span class="keyword">signed</span> <span class="keyword">char</span></code>
555               </p>
556             </td>
557 </tr>
558 <tr>
559 <td>
560               <p>
561                 <code class="computeroutput"><span class="identifier">MPI_SHORT</span></code>
562               </p>
563             </td>
564 <td>
565               <p>
566                 <code class="computeroutput"><span class="keyword">signed</span> <span class="keyword">short</span>
567                 <span class="keyword">int</span></code>
568               </p>
569             </td>
570 </tr>
571 <tr>
572 <td>
573               <p>
574                 <code class="computeroutput"><span class="identifier">MPI_INT</span></code>
575               </p>
576             </td>
577 <td>
578               <p>
579                 <code class="computeroutput"><span class="keyword">signed</span> <span class="keyword">int</span></code>
580               </p>
581             </td>
582 </tr>
583 <tr>
584 <td>
585               <p>
586                 <code class="computeroutput"><span class="identifier">MPI_LONG</span></code>
587               </p>
588             </td>
589 <td>
590               <p>
591                 <code class="computeroutput"><span class="keyword">signed</span> <span class="keyword">long</span>
592                 <span class="keyword">int</span></code>
593               </p>
594             </td>
595 </tr>
596 <tr>
597 <td>
598               <p>
599                 <code class="computeroutput"><span class="identifier">MPI_UNSIGNED_CHAR</span></code>
600               </p>
601             </td>
602 <td>
603               <p>
604                 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">char</span></code>
605               </p>
606             </td>
607 </tr>
608 <tr>
609 <td>
610               <p>
611                 <code class="computeroutput"><span class="identifier">MPI_UNSIGNED_SHORT</span></code>
612               </p>
613             </td>
614 <td>
615               <p>
616                 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span>
617                 <span class="keyword">int</span></code>
618               </p>
619             </td>
620 </tr>
621 <tr>
622 <td>
623               <p>
624                 <code class="computeroutput"><span class="identifier">MPI_UNSIGNED_INT</span></code>
625               </p>
626             </td>
627 <td>
628               <p>
629                 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
630               </p>
631             </td>
632 </tr>
633 <tr>
634 <td>
635               <p>
636                 <code class="computeroutput"><span class="identifier">MPI_UNSIGNED_LONG</span></code>
637               </p>
638             </td>
639 <td>
640               <p>
641                 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
642                 <span class="keyword">int</span></code>
643               </p>
644             </td>
645 </tr>
646 <tr>
647 <td>
648               <p>
649                 <code class="computeroutput"><span class="identifier">MPI_FLOAT</span></code>
650               </p>
651             </td>
652 <td>
653               <p>
654                 <code class="computeroutput"><span class="keyword">float</span></code>
655               </p>
656             </td>
657 </tr>
658 <tr>
659 <td>
660               <p>
661                 <code class="computeroutput"><span class="identifier">MPI_DOUBLE</span></code>
662               </p>
663             </td>
664 <td>
665               <p>
666                 <code class="computeroutput"><span class="keyword">double</span></code>
667               </p>
668             </td>
669 </tr>
670 <tr>
671 <td>
672               <p>
673                 <code class="computeroutput"><span class="identifier">MPI_LONG_DOUBLE</span></code>
674               </p>
675             </td>
676 <td>
677               <p>
678                 <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
679               </p>
680             </td>
681 </tr>
682 <tr>
683 <td>
684               <p>
685                 <code class="computeroutput"><span class="identifier">MPI_BYTE</span></code>
686               </p>
687             </td>
688 <td>
689               <p>
690                 unused
691               </p>
692             </td>
693 </tr>
694 <tr>
695 <td>
696               <p>
697                 <code class="computeroutput"><span class="identifier">MPI_PACKED</span></code>
698               </p>
699             </td>
700 <td>
701               <p>
702                 used internally for <a class="link" href="tutorial.html#mpi.tutorial.user_data_types" title="User-defined data types">serialized
703                 data types</a>
704               </p>
705             </td>
706 </tr>
707 <tr>
708 <td>
709               <p>
710                 <code class="computeroutput"><span class="identifier">MPI_LONG_LONG_INT</span></code>
711               </p>
712             </td>
713 <td>
714               <p>
715                 <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span>
716                 <span class="keyword">int</span></code>, if supported by compiler
717               </p>
718             </td>
719 </tr>
720 <tr>
721 <td>
722               <p>
723                 <code class="computeroutput"><span class="identifier">MPI_UNSIGNED_LONG_LONG_INT</span></code>
724               </p>
725             </td>
726 <td>
727               <p>
728                 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
729                 <span class="keyword">long</span> <span class="keyword">int</span></code>,
730                 if supported by compiler
731               </p>
732             </td>
733 </tr>
734 <tr>
735 <td>
736               <p>
737                 <code class="computeroutput"><span class="identifier">MPI_FLOAT_INT</span></code>
738               </p>
739             </td>
740 <td>
741               <p>
742                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
743               </p>
744             </td>
745 </tr>
746 <tr>
747 <td>
748               <p>
749                 <code class="computeroutput"><span class="identifier">MPI_DOUBLE_INT</span></code>
750               </p>
751             </td>
752 <td>
753               <p>
754                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span>
755                 <span class="keyword">int</span><span class="special">&gt;</span></code>
756               </p>
757             </td>
758 </tr>
759 <tr>
760 <td>
761               <p>
762                 <code class="computeroutput"><span class="identifier">MPI_LONG_INT</span></code>
763               </p>
764             </td>
765 <td>
766               <p>
767                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
768               </p>
769             </td>
770 </tr>
771 <tr>
772 <td>
773               <p>
774                 <code class="computeroutput"><span class="identifier">MPI_2INT</span></code>
775               </p>
776             </td>
777 <td>
778               <p>
779                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
780               </p>
781             </td>
782 </tr>
783 <tr>
784 <td>
785               <p>
786                 <code class="computeroutput"><span class="identifier">MPI_SHORT_INT</span></code>
787               </p>
788             </td>
789 <td>
790               <p>
791                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">short</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
792               </p>
793             </td>
794 </tr>
795 <tr>
796 <td>
797               <p>
798                 <code class="computeroutput"><span class="identifier">MPI_LONG_DOUBLE_INT</span></code>
799               </p>
800             </td>
801 <td>
802               <p>
803                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
804               </p>
805             </td>
806 </tr>
807 </tbody>
808 </table></div>
809 </div>
810 <br class="table-break"><p>
811       Boost.MPI does not provide direct wrappers to the MPI derived datatypes functionality.
812       Instead, Boost.MPI relies on the <a href="../../../libs/serialization/doc" target="_top">Boost.Serialization</a>
813       library to construct MPI datatypes for user-defined classes. The section on
814       <a class="link" href="tutorial.html#mpi.tutorial.user_data_types" title="User-defined data types">user-defined data types</a>
815       describes this mechanism, which is used for types that marked as "MPI
816       datatypes" using <code class="computeroutput"><a class="link" href="../boost/mpi/is_mpi_datatype.html" title="Struct template is_mpi_datatype">is_mpi_datatype</a></code>.
817     </p>
818 <p>
819       The derived datatypes table that follows describes which C++ types correspond
820       to the functionality of the C MPI's datatype constructor. Boost.MPI may not
821       actually use the C MPI function listed when building datatypes of a certain
822       form. Since the actual datatypes built by Boost.MPI are typically hidden from
823       the user, many of these operations are called internally by Boost.MPI.
824     </p>
825 <div class="table">
826 <a name="mpi.c_mapping.derived_datatypes"></a><p class="title"><b>Table&#160;26.3.&#160;Derived datatypes</b></p>
827 <div class="table-contents"><table class="table" summary="Derived datatypes">
828 <colgroup>
829 <col>
830 <col>
831 </colgroup>
832 <thead><tr>
833 <th>
834               <p>
835                 C Function/Constant
836               </p>
837             </th>
838 <th>
839               <p>
840                 Boost.MPI Equivalent
841               </p>
842             </th>
843 </tr></thead>
844 <tbody>
845 <tr>
846 <td>
847               <p>
848                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node56.html#Node56" target="_top"><code class="computeroutput"><span class="identifier">MPI_Address</span></code></a>
849               </p>
850             </td>
851 <td>
852               <p>
853                 used automatically in Boost.MPI for MPI version 1.x
854               </p>
855             </td>
856 </tr>
857 <tr>
858 <td>
859               <p>
860                 <a href="http://www.mpi-forum.org/docs/mpi-20-html/node76.htm#Node76" target="_top"><code class="computeroutput"><span class="identifier">MPI_Get_address</span></code></a>
861               </p>
862             </td>
863 <td>
864               <p>
865                 used automatically in Boost.MPI for MPI version 2.0 and higher
866               </p>
867             </td>
868 </tr>
869 <tr>
870 <td>
871               <p>
872                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node58.html#Node58" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_commit</span></code></a>
873               </p>
874             </td>
875 <td>
876               <p>
877                 used automatically in Boost.MPI
878               </p>
879             </td>
880 </tr>
881 <tr>
882 <td>
883               <p>
884                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_contiguous</span></code></a>
885               </p>
886             </td>
887 <td>
888               <p>
889                 arrays
890               </p>
891             </td>
892 </tr>
893 <tr>
894 <td>
895               <p>
896                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node56.html#Node56" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_extent</span></code></a>
897               </p>
898             </td>
899 <td>
900               <p>
901                 used automatically in Boost.MPI
902               </p>
903             </td>
904 </tr>
905 <tr>
906 <td>
907               <p>
908                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node58.html#Node58" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_free</span></code></a>
909               </p>
910             </td>
911 <td>
912               <p>
913                 used automatically in Boost.MPI
914               </p>
915             </td>
916 </tr>
917 <tr>
918 <td>
919               <p>
920                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_hindexed</span></code></a>
921               </p>
922             </td>
923 <td>
924               <p>
925                 any type used as a subobject
926               </p>
927             </td>
928 </tr>
929 <tr>
930 <td>
931               <p>
932                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_hvector</span></code></a>
933               </p>
934             </td>
935 <td>
936               <p>
937                 unused
938               </p>
939             </td>
940 </tr>
941 <tr>
942 <td>
943               <p>
944                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_indexed</span></code></a>
945               </p>
946             </td>
947 <td>
948               <p>
949                 any type used as a subobject
950               </p>
951             </td>
952 </tr>
953 <tr>
954 <td>
955               <p>
956                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node57.html#Node57" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_lb</span></code></a>
957               </p>
958             </td>
959 <td>
960               <p>
961                 unsupported
962               </p>
963             </td>
964 </tr>
965 <tr>
966 <td>
967               <p>
968                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node56.html#Node56" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_size</span></code></a>
969               </p>
970             </td>
971 <td>
972               <p>
973                 used automatically in Boost.MPI
974               </p>
975             </td>
976 </tr>
977 <tr>
978 <td>
979               <p>
980                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_struct</span></code></a>
981               </p>
982             </td>
983 <td>
984               <p>
985                 user-defined classes and structs with MPI 1.x
986               </p>
987             </td>
988 </tr>
989 <tr>
990 <td>
991               <p>
992                 <a href="http://www.mpi-forum.org/docs/mpi-20-html/node76.htm#Node76" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_create_struct</span></code></a>
993               </p>
994             </td>
995 <td>
996               <p>
997                 user-defined classes and structs with MPI 2.0 and higher
998               </p>
999             </td>
1000 </tr>
1001 <tr>
1002 <td>
1003               <p>
1004                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node57.html#Node57" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_ub</span></code></a>
1005               </p>
1006             </td>
1007 <td>
1008               <p>
1009                 unsupported
1010               </p>
1011             </td>
1012 </tr>
1013 <tr>
1014 <td>
1015               <p>
1016                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node55.html#Node55" target="_top"><code class="computeroutput"><span class="identifier">MPI_Type_vector</span></code></a>
1017               </p>
1018             </td>
1019 <td>
1020               <p>
1021                 used automatically in Boost.MPI
1022               </p>
1023             </td>
1024 </tr>
1025 </tbody>
1026 </table></div>
1027 </div>
1028 <br class="table-break"><p>
1029       MPI's packing facilities store values into a contiguous buffer, which can later
1030       be transmitted via MPI and unpacked into separate values via MPI's unpacking
1031       facilities. As with datatypes, Boost.MPI provides an abstract interface to
1032       MPI's packing and unpacking facilities. In particular, the two archive classes
1033       <code class="computeroutput"><a class="link" href="../boost/mpi/packed_oarchive.html" title="Class packed_oarchive">packed_oarchive</a></code>
1034       and <code class="computeroutput"><a class="link" href="../boost/mpi/packed_iarchive.html" title="Class packed_iarchive">packed_iarchive</a></code>
1035       can be used to pack or unpack a contiguous buffer using MPI's facilities.
1036     </p>
1037 <div class="table">
1038 <a name="mpi.c_mapping.packing_and_unpacking"></a><p class="title"><b>Table&#160;26.4.&#160;Packing and unpacking</b></p>
1039 <div class="table-contents"><table class="table" summary="Packing and unpacking">
1040 <colgroup>
1041 <col>
1042 <col>
1043 </colgroup>
1044 <thead><tr>
1045 <th>
1046               <p>
1047                 C Function
1048               </p>
1049             </th>
1050 <th>
1051               <p>
1052                 Boost.MPI Equivalent
1053               </p>
1054             </th>
1055 </tr></thead>
1056 <tbody>
1057 <tr>
1058 <td>
1059               <p>
1060                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node62.html#Node62" target="_top"><code class="computeroutput"><span class="identifier">MPI_Pack</span></code></a>
1061               </p>
1062             </td>
1063 <td>
1064               <p>
1065                 <code class="computeroutput"><a class="link" href="../boost/mpi/packed_oarchive.html" title="Class packed_oarchive">packed_oarchive</a></code>
1066               </p>
1067             </td>
1068 </tr>
1069 <tr>
1070 <td>
1071               <p>
1072                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node62.html#Node62" target="_top"><code class="computeroutput"><span class="identifier">MPI_Pack_size</span></code></a>
1073               </p>
1074             </td>
1075 <td>
1076               <p>
1077                 used internally by Boost.MPI
1078               </p>
1079             </td>
1080 </tr>
1081 <tr>
1082 <td>
1083               <p>
1084                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node62.html#Node62" target="_top"><code class="computeroutput"><span class="identifier">MPI_Unpack</span></code></a>
1085               </p>
1086             </td>
1087 <td>
1088               <p>
1089                 <code class="computeroutput"><a class="link" href="../boost/mpi/packed_iarchive.html" title="Class packed_iarchive">packed_iarchive</a></code>
1090               </p>
1091             </td>
1092 </tr>
1093 </tbody>
1094 </table></div>
1095 </div>
1096 <br class="table-break"><p>
1097       Boost.MPI supports a one-to-one mapping for most of the MPI collectives. For
1098       each collective provided by Boost.MPI, the underlying C MPI collective will
1099       be invoked when it is possible (and efficient) to do so.
1100     </p>
1101 <div class="table">
1102 <a name="mpi.c_mapping.collectives"></a><p class="title"><b>Table&#160;26.5.&#160;Collectives</b></p>
1103 <div class="table-contents"><table class="table" summary="Collectives">
1104 <colgroup>
1105 <col>
1106 <col>
1107 </colgroup>
1108 <thead><tr>
1109 <th>
1110               <p>
1111                 C Function
1112               </p>
1113             </th>
1114 <th>
1115               <p>
1116                 Boost.MPI Equivalent
1117               </p>
1118             </th>
1119 </tr></thead>
1120 <tbody>
1121 <tr>
1122 <td>
1123               <p>
1124                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node73.html#Node73" target="_top"><code class="computeroutput"><span class="identifier">MPI_Allgather</span></code></a>
1125               </p>
1126             </td>
1127 <td>
1128               <p>
1129                 <code class="computeroutput"><a class="link" href="../boost/mpi/all_gather.html" title="Function all_gather">all_gather</a></code>
1130               </p>
1131             </td>
1132 </tr>
1133 <tr>
1134 <td>
1135               <p>
1136                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node73.html#Node73" target="_top"><code class="computeroutput"><span class="identifier">MPI_Allgatherv</span></code></a>
1137               </p>
1138             </td>
1139 <td>
1140               <p>
1141                 most uses supported by <code class="computeroutput"><a class="link" href="../boost/mpi/all_gather.html" title="Function all_gather">all_gather</a></code>
1142               </p>
1143             </td>
1144 </tr>
1145 <tr>
1146 <td>
1147               <p>
1148                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node82.html#Node82" target="_top"><code class="computeroutput"><span class="identifier">MPI_Allreduce</span></code></a>
1149               </p>
1150             </td>
1151 <td>
1152               <p>
1153                 <code class="computeroutput"><a class="link" href="../boost/mpi/all_reduce.html" title="Function all_reduce">all_reduce</a></code>
1154               </p>
1155             </td>
1156 </tr>
1157 <tr>
1158 <td>
1159               <p>
1160                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node75.html#Node75" target="_top"><code class="computeroutput"><span class="identifier">MPI_Alltoall</span></code></a>
1161               </p>
1162             </td>
1163 <td>
1164               <p>
1165                 <code class="computeroutput"><a class="link" href="../boost/mpi/all_to_all.html" title="Function all_to_all">all_to_all</a></code>
1166               </p>
1167             </td>
1168 </tr>
1169 <tr>
1170 <td>
1171               <p>
1172                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node75.html#Node75" target="_top"><code class="computeroutput"><span class="identifier">MPI_Alltoallv</span></code></a>
1173               </p>
1174             </td>
1175 <td>
1176               <p>
1177                 most uses supported by <code class="computeroutput"><a class="link" href="../boost/mpi/all_to_all.html" title="Function all_to_all">all_to_all</a></code>
1178               </p>
1179             </td>
1180 </tr>
1181 <tr>
1182 <td>
1183               <p>
1184                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node66.html#Node66" target="_top"><code class="computeroutput"><span class="identifier">MPI_Barrier</span></code></a>
1185               </p>
1186             </td>
1187 <td>
1188               <p>
1189                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_27-bb">communicator::barrier</a></code>
1190               </p>
1191             </td>
1192 </tr>
1193 <tr>
1194 <td>
1195               <p>
1196                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node67.html#Node67" target="_top"><code class="computeroutput"><span class="identifier">MPI_Bcast</span></code></a>
1197               </p>
1198             </td>
1199 <td>
1200               <p>
1201                 <code class="computeroutput"><a class="link" href="../boost/mpi/broadcast.html" title="Function broadcast">broadcast</a></code>
1202               </p>
1203             </td>
1204 </tr>
1205 <tr>
1206 <td>
1207               <p>
1208                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node69.html#Node69" target="_top"><code class="computeroutput"><span class="identifier">MPI_Gather</span></code></a>
1209               </p>
1210             </td>
1211 <td>
1212               <p>
1213                 <code class="computeroutput"><a class="link" href="../boost/mpi/gather.html" title="Function gather">gather</a></code>
1214               </p>
1215             </td>
1216 </tr>
1217 <tr>
1218 <td>
1219               <p>
1220                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node69.html#Node69" target="_top"><code class="computeroutput"><span class="identifier">MPI_Gatherv</span></code></a>
1221               </p>
1222             </td>
1223 <td>
1224               <p>
1225                 most uses supported by <code class="computeroutput"><a class="link" href="../boost/mpi/gather.html" title="Function gather">gather</a></code>, other usages
1226                 supported by <code class="computeroutput"><a class="link" href="../boost/mpi/gatherv.html" title="Function gatherv">gatherv</a></code>
1227               </p>
1228             </td>
1229 </tr>
1230 <tr>
1231 <td>
1232               <p>
1233                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node77.html#Node77" target="_top"><code class="computeroutput"><span class="identifier">MPI_Reduce</span></code></a>
1234               </p>
1235             </td>
1236 <td>
1237               <p>
1238                 <code class="computeroutput"><a class="link" href="../boost/mpi/reduce.html" title="Function reduce">reduce</a></code>
1239               </p>
1240             </td>
1241 </tr>
1242 <tr>
1243 <td>
1244               <p>
1245                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node83.html#Node83" target="_top"><code class="computeroutput"><span class="identifier">MPI_Reduce_scatter</span></code></a>
1246               </p>
1247             </td>
1248 <td>
1249               <p>
1250                 unsupported
1251               </p>
1252             </td>
1253 </tr>
1254 <tr>
1255 <td>
1256               <p>
1257                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node84.html#Node84" target="_top"><code class="computeroutput"><span class="identifier">MPI_Scan</span></code></a>
1258               </p>
1259             </td>
1260 <td>
1261               <p>
1262                 <code class="computeroutput"><a class="link" href="../boost/mpi/scan.html" title="Function scan">scan</a></code>
1263               </p>
1264             </td>
1265 </tr>
1266 <tr>
1267 <td>
1268               <p>
1269                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node71.html#Node71" target="_top"><code class="computeroutput"><span class="identifier">MPI_Scatter</span></code></a>
1270               </p>
1271             </td>
1272 <td>
1273               <p>
1274                 <code class="computeroutput"><a class="link" href="../boost/mpi/scatter.html" title="Function scatter">scatter</a></code>
1275               </p>
1276             </td>
1277 </tr>
1278 <tr>
1279 <td>
1280               <p>
1281                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node71.html#Node71" target="_top"><code class="computeroutput"><span class="identifier">MPI_Scatterv</span></code></a>
1282               </p>
1283             </td>
1284 <td>
1285               <p>
1286                 most uses supported by <code class="computeroutput"><a class="link" href="../boost/mpi/scatter.html" title="Function scatter">scatter</a></code>, other uses
1287                 supported by <code class="computeroutput"><a class="link" href="../boost/mpi/scatterv.html" title="Function scatterv">scatterv</a></code>
1288               </p>
1289             </td>
1290 </tr>
1291 <tr>
1292 <td>
1293               <p>
1294                 <a href="http://www.mpi-forum.org/docs/mpi-20-html/node145.htm#Node145" target="_top"><code class="computeroutput"><span class="identifier">MPI_IN_PLACE</span></code></a>
1295               </p>
1296             </td>
1297 <td>
1298               <p>
1299                 supported implicitly by <code class="computeroutput"><a class="link" href="../boost/mpi/all_reduce.html" title="Function all_reduce">all_reduce by omitting the output
1300                 value</a></code>
1301               </p>
1302             </td>
1303 </tr>
1304 </tbody>
1305 </table></div>
1306 </div>
1307 <br class="table-break"><p>
1308       Boost.MPI uses function objects to specify how reductions should occur in its
1309       equivalents to <code class="computeroutput"><span class="identifier">MPI_Allreduce</span></code>,
1310       <code class="computeroutput"><span class="identifier">MPI_Reduce</span></code>, and <code class="computeroutput"><span class="identifier">MPI_Scan</span></code>. The following table illustrates
1311       how <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node78.html#Node78" target="_top">predefined</a>
1312       and <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node80.html#Node80" target="_top">user-defined</a>
1313       reduction operations can be mapped between the C MPI and Boost.MPI.
1314     </p>
1315 <div class="table">
1316 <a name="mpi.c_mapping.reduction_operations"></a><p class="title"><b>Table&#160;26.6.&#160;Reduction operations</b></p>
1317 <div class="table-contents"><table class="table" summary="Reduction operations">
1318 <colgroup>
1319 <col>
1320 <col>
1321 </colgroup>
1322 <thead><tr>
1323 <th>
1324               <p>
1325                 C Constant
1326               </p>
1327             </th>
1328 <th>
1329               <p>
1330                 Boost.MPI Equivalent
1331               </p>
1332             </th>
1333 </tr></thead>
1334 <tbody>
1335 <tr>
1336 <td>
1337               <p>
1338                 <code class="computeroutput"><span class="identifier">MPI_BAND</span></code>
1339               </p>
1340             </td>
1341 <td>
1342               <p>
1343                 <code class="computeroutput"><a class="link" href="../boost/mpi/bitwise_and.html" title="Struct template bitwise_and">bitwise_and</a></code>
1344               </p>
1345             </td>
1346 </tr>
1347 <tr>
1348 <td>
1349               <p>
1350                 <code class="computeroutput"><span class="identifier">MPI_BOR</span></code>
1351               </p>
1352             </td>
1353 <td>
1354               <p>
1355                 <code class="computeroutput"><a class="link" href="../boost/mpi/bitwise_or.html" title="Struct template bitwise_or">bitwise_or</a></code>
1356               </p>
1357             </td>
1358 </tr>
1359 <tr>
1360 <td>
1361               <p>
1362                 <code class="computeroutput"><span class="identifier">MPI_BXOR</span></code>
1363               </p>
1364             </td>
1365 <td>
1366               <p>
1367                 <code class="computeroutput"><a class="link" href="../boost/mpi/bitwise_xor.html" title="Struct template bitwise_xor">bitwise_xor</a></code>
1368               </p>
1369             </td>
1370 </tr>
1371 <tr>
1372 <td>
1373               <p>
1374                 <code class="computeroutput"><span class="identifier">MPI_LAND</span></code>
1375               </p>
1376             </td>
1377 <td>
1378               <p>
1379                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">logical_and</span></code>
1380               </p>
1381             </td>
1382 </tr>
1383 <tr>
1384 <td>
1385               <p>
1386                 <code class="computeroutput"><span class="identifier">MPI_LOR</span></code>
1387               </p>
1388             </td>
1389 <td>
1390               <p>
1391                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">logical_or</span></code>
1392               </p>
1393             </td>
1394 </tr>
1395 <tr>
1396 <td>
1397               <p>
1398                 <code class="computeroutput"><span class="identifier">MPI_LXOR</span></code>
1399               </p>
1400             </td>
1401 <td>
1402               <p>
1403                 <code class="computeroutput"><a class="link" href="../boost/mpi/logical_xor.html" title="Struct template logical_xor">logical_xor</a></code>
1404               </p>
1405             </td>
1406 </tr>
1407 <tr>
1408 <td>
1409               <p>
1410                 <code class="computeroutput"><span class="identifier">MPI_MAX</span></code>
1411               </p>
1412             </td>
1413 <td>
1414               <p>
1415                 <code class="computeroutput"><a class="link" href="../boost/mpi/maximum.html" title="Struct template maximum">maximum</a></code>
1416               </p>
1417             </td>
1418 </tr>
1419 <tr>
1420 <td>
1421               <p>
1422                 <code class="computeroutput"><span class="identifier">MPI_MAXLOC</span></code>
1423               </p>
1424             </td>
1425 <td>
1426               <p>
1427                 unsupported
1428               </p>
1429             </td>
1430 </tr>
1431 <tr>
1432 <td>
1433               <p>
1434                 <code class="computeroutput"><span class="identifier">MPI_MIN</span></code>
1435               </p>
1436             </td>
1437 <td>
1438               <p>
1439                 <code class="computeroutput"><a class="link" href="../boost/mpi/minimum.html" title="Struct template minimum">minimum</a></code>
1440               </p>
1441             </td>
1442 </tr>
1443 <tr>
1444 <td>
1445               <p>
1446                 <code class="computeroutput"><span class="identifier">MPI_MINLOC</span></code>
1447               </p>
1448             </td>
1449 <td>
1450               <p>
1451                 unsupported
1452               </p>
1453             </td>
1454 </tr>
1455 <tr>
1456 <td>
1457               <p>
1458                 <code class="computeroutput"><span class="identifier">MPI_Op_create</span></code>
1459               </p>
1460             </td>
1461 <td>
1462               <p>
1463                 used internally by Boost.MPI
1464               </p>
1465             </td>
1466 </tr>
1467 <tr>
1468 <td>
1469               <p>
1470                 <code class="computeroutput"><span class="identifier">MPI_Op_free</span></code>
1471               </p>
1472             </td>
1473 <td>
1474               <p>
1475                 used internally by Boost.MPI
1476               </p>
1477             </td>
1478 </tr>
1479 <tr>
1480 <td>
1481               <p>
1482                 <code class="computeroutput"><span class="identifier">MPI_PROD</span></code>
1483               </p>
1484             </td>
1485 <td>
1486               <p>
1487                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">multiplies</span></code>
1488               </p>
1489             </td>
1490 </tr>
1491 <tr>
1492 <td>
1493               <p>
1494                 <code class="computeroutput"><span class="identifier">MPI_SUM</span></code>
1495               </p>
1496             </td>
1497 <td>
1498               <p>
1499                 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">plus</span></code>
1500               </p>
1501             </td>
1502 </tr>
1503 </tbody>
1504 </table></div>
1505 </div>
1506 <br class="table-break"><p>
1507       MPI defines several special communicators, including <code class="computeroutput"><span class="identifier">MPI_COMM_WORLD</span></code>
1508       (including all processes that the local process can communicate with), <code class="computeroutput"><span class="identifier">MPI_COMM_SELF</span></code> (including only the local process),
1509       and <code class="computeroutput"><span class="identifier">MPI_COMM_EMPTY</span></code> (including
1510       no processes). These special communicators are all instances of the <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1511       class in Boost.MPI.
1512     </p>
1513 <div class="table">
1514 <a name="mpi.c_mapping.predefined_communicators"></a><p class="title"><b>Table&#160;26.7.&#160;Predefined communicators</b></p>
1515 <div class="table-contents"><table class="table" summary="Predefined communicators">
1516 <colgroup>
1517 <col>
1518 <col>
1519 </colgroup>
1520 <thead><tr>
1521 <th>
1522               <p>
1523                 C Constant
1524               </p>
1525             </th>
1526 <th>
1527               <p>
1528                 Boost.MPI Equivalent
1529               </p>
1530             </th>
1531 </tr></thead>
1532 <tbody>
1533 <tr>
1534 <td>
1535               <p>
1536                 <code class="computeroutput"><span class="identifier">MPI_COMM_WORLD</span></code>
1537               </p>
1538             </td>
1539 <td>
1540               <p>
1541                 a default-constructed <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1542               </p>
1543             </td>
1544 </tr>
1545 <tr>
1546 <td>
1547               <p>
1548                 <code class="computeroutput"><span class="identifier">MPI_COMM_SELF</span></code>
1549               </p>
1550             </td>
1551 <td>
1552               <p>
1553                 a <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1554                 that contains only the current process
1555               </p>
1556             </td>
1557 </tr>
1558 <tr>
1559 <td>
1560               <p>
1561                 <code class="computeroutput"><span class="identifier">MPI_COMM_EMPTY</span></code>
1562               </p>
1563             </td>
1564 <td>
1565               <p>
1566                 a <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1567                 that evaluates false
1568               </p>
1569             </td>
1570 </tr>
1571 </tbody>
1572 </table></div>
1573 </div>
1574 <br class="table-break"><p>
1575       Boost.MPI supports groups of processes through its <code class="computeroutput"><a class="link" href="../boost/mpi/group.html" title="Class group">group</a></code> class.
1576     </p>
1577 <div class="table">
1578 <a name="mpi.c_mapping.group_operations_and_constants"></a><p class="title"><b>Table&#160;26.8.&#160;Group operations and constants</b></p>
1579 <div class="table-contents"><table class="table" summary="Group operations and constants">
1580 <colgroup>
1581 <col>
1582 <col>
1583 </colgroup>
1584 <thead><tr>
1585 <th>
1586               <p>
1587                 C Function/Constant
1588               </p>
1589             </th>
1590 <th>
1591               <p>
1592                 Boost.MPI Equivalent
1593               </p>
1594             </th>
1595 </tr></thead>
1596 <tbody>
1597 <tr>
1598 <td>
1599               <p>
1600                 <code class="computeroutput"><span class="identifier">MPI_GROUP_EMPTY</span></code>
1601               </p>
1602             </td>
1603 <td>
1604               <p>
1605                 a default-constructed <code class="computeroutput"><a class="link" href="../boost/mpi/group.html" title="Class group">group</a></code>
1606               </p>
1607             </td>
1608 </tr>
1609 <tr>
1610 <td>
1611               <p>
1612                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node97.html#Node97" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_size</span></code></a>
1613               </p>
1614             </td>
1615 <td>
1616               <p>
1617                 <code class="computeroutput"><a class="link" href="../boost/mpi/group.html#id-1_3_27_7_13_2_1_1_3_2-bb">group::size</a></code>
1618               </p>
1619             </td>
1620 </tr>
1621 <tr>
1622 <td>
1623               <p>
1624                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node97.html#Node97" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_rank</span></code></a>
1625               </p>
1626             </td>
1627 <td>
1628               <p>
1629                 memberref boost::mpi::group::rank <code class="computeroutput"><span class="identifier">group</span><span class="special">::</span><span class="identifier">rank</span></code>
1630               </p>
1631             </td>
1632 </tr>
1633 <tr>
1634 <td>
1635               <p>
1636                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node97.html#Node97" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_translate_ranks</span></code></a>
1637               </p>
1638             </td>
1639 <td>
1640               <p>
1641                 memberref boost::mpi::group::translate_ranks <code class="computeroutput"><span class="identifier">group</span><span class="special">::</span><span class="identifier">translate_ranks</span></code>
1642               </p>
1643             </td>
1644 </tr>
1645 <tr>
1646 <td>
1647               <p>
1648                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node97.html#Node97" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_compare</span></code></a>
1649               </p>
1650             </td>
1651 <td>
1652               <p>
1653                 operators <code class="computeroutput"><span class="special">==</span></code> and <code class="computeroutput"><span class="special">!=</span></code>
1654               </p>
1655             </td>
1656 </tr>
1657 <tr>
1658 <td>
1659               <p>
1660                 <code class="computeroutput"><span class="identifier">MPI_IDENT</span></code>
1661               </p>
1662             </td>
1663 <td>
1664               <p>
1665                 operators <code class="computeroutput"><span class="special">==</span></code> and <code class="computeroutput"><span class="special">!=</span></code>
1666               </p>
1667             </td>
1668 </tr>
1669 <tr>
1670 <td>
1671               <p>
1672                 <code class="computeroutput"><span class="identifier">MPI_SIMILAR</span></code>
1673               </p>
1674             </td>
1675 <td>
1676               <p>
1677                 operators <code class="computeroutput"><span class="special">==</span></code> and <code class="computeroutput"><span class="special">!=</span></code>
1678               </p>
1679             </td>
1680 </tr>
1681 <tr>
1682 <td>
1683               <p>
1684                 <code class="computeroutput"><span class="identifier">MPI_UNEQUAL</span></code>
1685               </p>
1686             </td>
1687 <td>
1688               <p>
1689                 operators <code class="computeroutput"><span class="special">==</span></code> and <code class="computeroutput"><span class="special">!=</span></code>
1690               </p>
1691             </td>
1692 </tr>
1693 <tr>
1694 <td>
1695               <p>
1696                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_group</span></code></a>
1697               </p>
1698             </td>
1699 <td>
1700               <p>
1701                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_3-bb">communicator::group</a></code>
1702               </p>
1703             </td>
1704 </tr>
1705 <tr>
1706 <td>
1707               <p>
1708                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_union</span></code></a>
1709               </p>
1710             </td>
1711 <td>
1712               <p>
1713                 operator <code class="computeroutput"><span class="special">|</span></code> for groups
1714               </p>
1715             </td>
1716 </tr>
1717 <tr>
1718 <td>
1719               <p>
1720                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_intersection</span></code></a>
1721               </p>
1722             </td>
1723 <td>
1724               <p>
1725                 operator <code class="computeroutput"><span class="special">&amp;</span></code> for groups
1726               </p>
1727             </td>
1728 </tr>
1729 <tr>
1730 <td>
1731               <p>
1732                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_difference</span></code></a>
1733               </p>
1734             </td>
1735 <td>
1736               <p>
1737                 operator <code class="computeroutput"><span class="special">-</span></code> for groups
1738               </p>
1739             </td>
1740 </tr>
1741 <tr>
1742 <td>
1743               <p>
1744                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_incl</span></code></a>
1745               </p>
1746             </td>
1747 <td>
1748               <p>
1749                 <code class="computeroutput"><a class="link" href="../boost/mpi/group.html#id-1_3_27_7_13_2_1_1_3_6-bb">group::include</a></code>
1750               </p>
1751             </td>
1752 </tr>
1753 <tr>
1754 <td>
1755               <p>
1756                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_excl</span></code></a>
1757               </p>
1758             </td>
1759 <td>
1760               <p>
1761                 <code class="computeroutput"><a class="link" href="../boost/mpi/group.html#id-1_3_27_7_13_2_1_1_3_6-bb">group::exclude</a></code>
1762               </p>
1763             </td>
1764 </tr>
1765 <tr>
1766 <td>
1767               <p>
1768                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_range_incl</span></code></a>
1769               </p>
1770             </td>
1771 <td>
1772               <p>
1773                 unsupported
1774               </p>
1775             </td>
1776 </tr>
1777 <tr>
1778 <td>
1779               <p>
1780                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node98.html#Node98" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_range_excl</span></code></a>
1781               </p>
1782             </td>
1783 <td>
1784               <p>
1785                 unsupported
1786               </p>
1787             </td>
1788 </tr>
1789 <tr>
1790 <td>
1791               <p>
1792                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node99.html#Node99" target="_top"><code class="computeroutput"><span class="identifier">MPI_Group_free</span></code></a>
1793               </p>
1794             </td>
1795 <td>
1796               <p>
1797                 used automatically in Boost.MPI
1798               </p>
1799             </td>
1800 </tr>
1801 </tbody>
1802 </table></div>
1803 </div>
1804 <br class="table-break"><p>
1805       Boost.MPI provides manipulation of communicators through the <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code> class.
1806     </p>
1807 <div class="table">
1808 <a name="mpi.c_mapping.communicator_operations"></a><p class="title"><b>Table&#160;26.9.&#160;Communicator operations</b></p>
1809 <div class="table-contents"><table class="table" summary="Communicator operations">
1810 <colgroup>
1811 <col>
1812 <col>
1813 </colgroup>
1814 <thead><tr>
1815 <th>
1816               <p>
1817                 C Function
1818               </p>
1819             </th>
1820 <th>
1821               <p>
1822                 Boost.MPI Equivalent
1823               </p>
1824             </th>
1825 </tr></thead>
1826 <tbody>
1827 <tr>
1828 <td>
1829               <p>
1830                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node101.html#Node101" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_size</span></code></a>
1831               </p>
1832             </td>
1833 <td>
1834               <p>
1835                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_2-bb">communicator::size</a></code>
1836               </p>
1837             </td>
1838 </tr>
1839 <tr>
1840 <td>
1841               <p>
1842                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node101.html#Node101" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_rank</span></code></a>
1843               </p>
1844             </td>
1845 <td>
1846               <p>
1847                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_1-bb">communicator::rank</a></code>
1848               </p>
1849             </td>
1850 </tr>
1851 <tr>
1852 <td>
1853               <p>
1854                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node101.html#Node101" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_compare</span></code></a>
1855               </p>
1856             </td>
1857 <td>
1858               <p>
1859                 operators <code class="computeroutput"><span class="special">==</span></code> and <code class="computeroutput"><span class="special">!=</span></code>
1860               </p>
1861             </td>
1862 </tr>
1863 <tr>
1864 <td>
1865               <p>
1866                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node102.html#Node102" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_dup</span></code></a>
1867               </p>
1868             </td>
1869 <td>
1870               <p>
1871                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1872                 class constructor using <code class="computeroutput"><span class="identifier">comm_duplicate</span></code>
1873               </p>
1874             </td>
1875 </tr>
1876 <tr>
1877 <td>
1878               <p>
1879                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node102.html#Node102" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_create</span></code></a>
1880               </p>
1881             </td>
1882 <td>
1883               <p>
1884                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html" title="Class communicator">communicator</a></code>
1885                 constructor
1886               </p>
1887             </td>
1888 </tr>
1889 <tr>
1890 <td>
1891               <p>
1892                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node102.html#Node102" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_split</span></code></a>
1893               </p>
1894             </td>
1895 <td>
1896               <p>
1897                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_30-bb">communicator::split</a></code>
1898               </p>
1899             </td>
1900 </tr>
1901 <tr>
1902 <td>
1903               <p>
1904                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node103.html#Node103" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_free</span></code></a>
1905               </p>
1906             </td>
1907 <td>
1908               <p>
1909                 used automatically in Boost.MPI
1910               </p>
1911             </td>
1912 </tr>
1913 </tbody>
1914 </table></div>
1915 </div>
1916 <br class="table-break"><p>
1917       Boost.MPI currently provides support for inter-communicators via the <code class="computeroutput"><a class="link" href="../boost/mpi/intercommunicator.html" title="Class intercommunicator">intercommunicator</a></code>
1918       class.
1919     </p>
1920 <div class="table">
1921 <a name="mpi.c_mapping.inter_communicator_operations"></a><p class="title"><b>Table&#160;26.10.&#160;Inter-communicator operations</b></p>
1922 <div class="table-contents"><table class="table" summary="Inter-communicator operations">
1923 <colgroup>
1924 <col>
1925 <col>
1926 </colgroup>
1927 <thead><tr>
1928 <th>
1929               <p>
1930                 C Function
1931               </p>
1932             </th>
1933 <th>
1934               <p>
1935                 Boost.MPI Equivalent
1936               </p>
1937             </th>
1938 </tr></thead>
1939 <tbody>
1940 <tr>
1941 <td>
1942               <p>
1943                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node112.html#Node112" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_test_inter</span></code></a>
1944               </p>
1945             </td>
1946 <td>
1947               <p>
1948                 use <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_32-bb">communicator::as_intercommunicator</a></code>
1949               </p>
1950             </td>
1951 </tr>
1952 <tr>
1953 <td>
1954               <p>
1955                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node112.html#Node112" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_remote_size</span></code></a>
1956               </p>
1957             </td>
1958 <td>
1959               <p>
1960                 <code class="computeroutput"><a class="link" href="../boost/mpi/intercommunicator.html#id-1_3_27_7_15_2_1_1_4_4-bb">boost::mpi::intercommunicator::remote_size</a></code>
1961                 <code class="computeroutput"><span class="identifier">intercommunicator</span><span class="special">::</span><span class="identifier">remote_size</span></code>
1962               </p>
1963             </td>
1964 </tr>
1965 <tr>
1966 <td>
1967               <p>
1968                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node112.html#Node112" target="_top"><code class="computeroutput"><span class="identifier">MPI_Comm_remote_group</span></code></a>
1969               </p>
1970             </td>
1971 <td>
1972               <p>
1973                 <code class="computeroutput"><a class="link" href="../boost/mpi/intercommunicator.html#id-1_3_27_7_15_2_1_1_4_5-bb">intercommunicator::remote_group</a></code>
1974               </p>
1975             </td>
1976 </tr>
1977 <tr>
1978 <td>
1979               <p>
1980                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node113.html#Node113" target="_top"><code class="computeroutput"><span class="identifier">MPI_Intercomm_create</span></code></a>
1981               </p>
1982             </td>
1983 <td>
1984               <p>
1985                 <code class="computeroutput"><a class="link" href="../boost/mpi/intercommunicator.html" title="Class intercommunicator">intercommunicator</a></code>
1986                 constructor
1987               </p>
1988             </td>
1989 </tr>
1990 <tr>
1991 <td>
1992               <p>
1993                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node113.html#Node113" target="_top"><code class="computeroutput"><span class="identifier">MPI_Intercomm_merge</span></code></a>
1994               </p>
1995             </td>
1996 <td>
1997               <p>
1998                 <code class="computeroutput"><a class="link" href="../boost/mpi/intercommunicator.html#id-1_3_27_7_15_2_1_1_4_6-bb">intercommunicator::merge</a></code>
1999               </p>
2000             </td>
2001 </tr>
2002 </tbody>
2003 </table></div>
2004 </div>
2005 <br class="table-break"><p>
2006       Boost.MPI currently provides no support for attribute caching.
2007     </p>
2008 <div class="table">
2009 <a name="mpi.c_mapping.attributes_and_caching"></a><p class="title"><b>Table&#160;26.11.&#160;Attributes and caching</b></p>
2010 <div class="table-contents"><table class="table" summary="Attributes and caching">
2011 <colgroup>
2012 <col>
2013 <col>
2014 </colgroup>
2015 <thead><tr>
2016 <th>
2017               <p>
2018                 C Function/Constant
2019               </p>
2020             </th>
2021 <th>
2022               <p>
2023                 Boost.MPI Equivalent
2024               </p>
2025             </th>
2026 </tr></thead>
2027 <tbody>
2028 <tr>
2029 <td>
2030               <p>
2031                 <code class="computeroutput"><span class="identifier">MPI_NULL_COPY_FN</span></code>
2032               </p>
2033             </td>
2034 <td>
2035               <p>
2036                 unsupported
2037               </p>
2038             </td>
2039 </tr>
2040 <tr>
2041 <td>
2042               <p>
2043                 <code class="computeroutput"><span class="identifier">MPI_NULL_DELETE_FN</span></code>
2044               </p>
2045             </td>
2046 <td>
2047               <p>
2048                 unsupported
2049               </p>
2050             </td>
2051 </tr>
2052 <tr>
2053 <td>
2054               <p>
2055                 <code class="computeroutput"><span class="identifier">MPI_KEYVAL_INVALID</span></code>
2056               </p>
2057             </td>
2058 <td>
2059               <p>
2060                 unsupported
2061               </p>
2062             </td>
2063 </tr>
2064 <tr>
2065 <td>
2066               <p>
2067                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Keyval_create</span></code></a>
2068               </p>
2069             </td>
2070 <td>
2071               <p>
2072                 unsupported
2073               </p>
2074             </td>
2075 </tr>
2076 <tr>
2077 <td>
2078               <p>
2079                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Copy_function</span></code></a>
2080               </p>
2081             </td>
2082 <td>
2083               <p>
2084                 unsupported
2085               </p>
2086             </td>
2087 </tr>
2088 <tr>
2089 <td>
2090               <p>
2091                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Delete_function</span></code></a>
2092               </p>
2093             </td>
2094 <td>
2095               <p>
2096                 unsupported
2097               </p>
2098             </td>
2099 </tr>
2100 <tr>
2101 <td>
2102               <p>
2103                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Keyval_free</span></code></a>
2104               </p>
2105             </td>
2106 <td>
2107               <p>
2108                 unsupported
2109               </p>
2110             </td>
2111 </tr>
2112 <tr>
2113 <td>
2114               <p>
2115                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Attr_put</span></code></a>
2116               </p>
2117             </td>
2118 <td>
2119               <p>
2120                 unsupported
2121               </p>
2122             </td>
2123 </tr>
2124 <tr>
2125 <td>
2126               <p>
2127                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Attr_get</span></code></a>
2128               </p>
2129             </td>
2130 <td>
2131               <p>
2132                 unsupported
2133               </p>
2134             </td>
2135 </tr>
2136 <tr>
2137 <td>
2138               <p>
2139                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node119.html#Node119" target="_top"><code class="computeroutput"><span class="identifier">MPI_Attr_delete</span></code></a>
2140               </p>
2141             </td>
2142 <td>
2143               <p>
2144                 unsupported
2145               </p>
2146             </td>
2147 </tr>
2148 </tbody>
2149 </table></div>
2150 </div>
2151 <br class="table-break"><p>
2152       Boost.MPI will provide complete support for creating communicators with different
2153       topologies and later querying those topologies. Support for graph topologies
2154       is provided via an interface to the <a href="http://www.boost.org/libs/graph/doc/index.html" target="_top">Boost
2155       Graph Library (BGL)</a>, where a communicator can be created which matches
2156       the structure of any BGL graph, and the graph topology of a communicator can
2157       be viewed as a BGL graph for use in existing, generic graph algorithms.
2158     </p>
2159 <div class="table">
2160 <a name="mpi.c_mapping.process_topologies"></a><p class="title"><b>Table&#160;26.12.&#160;Process topologies</b></p>
2161 <div class="table-contents"><table class="table" summary="Process topologies">
2162 <colgroup>
2163 <col>
2164 <col>
2165 </colgroup>
2166 <thead><tr>
2167 <th>
2168               <p>
2169                 C Function/Constant
2170               </p>
2171             </th>
2172 <th>
2173               <p>
2174                 Boost.MPI Equivalent
2175               </p>
2176             </th>
2177 </tr></thead>
2178 <tbody>
2179 <tr>
2180 <td>
2181               <p>
2182                 <code class="computeroutput"><span class="identifier">MPI_GRAPH</span></code>
2183               </p>
2184             </td>
2185 <td>
2186               <p>
2187                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_33-bb">communicator::as_graph_communicator</a></code>
2188               </p>
2189             </td>
2190 </tr>
2191 <tr>
2192 <td>
2193               <p>
2194                 <code class="computeroutput"><span class="identifier">MPI_CART</span></code>
2195               </p>
2196             </td>
2197 <td>
2198               <p>
2199                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_36-bb">communicator::has_cartesian_topology</a></code>
2200               </p>
2201             </td>
2202 </tr>
2203 <tr>
2204 <td>
2205               <p>
2206                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node133.html#Node133" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_create</span></code></a>
2207               </p>
2208             </td>
2209 <td>
2210               <p>
2211                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html" title="Class cartesian_communicator">cartesian_communicator</a></code>
2212                 constructor
2213               </p>
2214             </td>
2215 </tr>
2216 <tr>
2217 <td>
2218               <p>
2219                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node134.html#Node134" target="_top"><code class="computeroutput"><span class="identifier">MPI_Dims_create</span></code></a>
2220               </p>
2221             </td>
2222 <td>
2223               <p>
2224                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_dimensions.html" title="Function cartesian_dimensions">cartesian_dimensions</a></code>
2225               </p>
2226             </td>
2227 </tr>
2228 <tr>
2229 <td>
2230               <p>
2231                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node135.html#Node135" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graph_create</span></code></a>
2232               </p>
2233             </td>
2234 <td>
2235               <p>
2236                 <code class="computeroutput"><a class="link" href="../boost/mpi/graph_communicator.html" title="Class graph_communicator">graph_communicator
2237                 ctors</a></code>
2238               </p>
2239             </td>
2240 </tr>
2241 <tr>
2242 <td>
2243               <p>
2244                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Topo_test</span></code></a>
2245               </p>
2246             </td>
2247 <td>
2248               <p>
2249                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_33-bb">communicator::as_graph_communicator</a></code>,
2250                 <code class="computeroutput"><a class="link" href="../boost/mpi/communicator.html#id-1_3_27_7_6_2_1_1_3_36-bb">communicator::has_cartesian_topology</a></code>
2251               </p>
2252             </td>
2253 </tr>
2254 <tr>
2255 <td>
2256               <p>
2257                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graphdims_get</span></code></a>
2258               </p>
2259             </td>
2260 <td>
2261               <p>
2262                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.num_vertices">num_vertices</a></code>,
2263                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.num_edges">num_edges</a></code>
2264               </p>
2265             </td>
2266 </tr>
2267 <tr>
2268 <td>
2269               <p>
2270                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graph_get</span></code></a>
2271               </p>
2272             </td>
2273 <td>
2274               <p>
2275                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.vertices">vertices</a></code>,
2276                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.edges">edges</a></code>
2277               </p>
2278             </td>
2279 </tr>
2280 <tr>
2281 <td>
2282               <p>
2283                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cartdim_get</span></code></a>
2284               </p>
2285             </td>
2286 <td>
2287               <p>
2288                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html#id-1_3_27_7_3_2_1_1_4_1-bb">cartesian_communicator::ndims </a></code>
2289               </p>
2290             </td>
2291 </tr>
2292 <tr>
2293 <td>
2294               <p>
2295                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_get</span></code></a>
2296               </p>
2297             </td>
2298 <td>
2299               <p>
2300                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html#id-1_3_27_7_3_2_1_1_4_5-bb">cartesian_communicator::topology </a></code>
2301               </p>
2302             </td>
2303 </tr>
2304 <tr>
2305 <td>
2306               <p>
2307                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_rank</span></code></a>
2308               </p>
2309             </td>
2310 <td>
2311               <p>
2312                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html#id-1_3_27_7_3_2_1_1_4_2-bb">cartesian_communicator::rank </a></code>
2313               </p>
2314             </td>
2315 </tr>
2316 <tr>
2317 <td>
2318               <p>
2319                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_coords</span></code></a>
2320               </p>
2321             </td>
2322 <td>
2323               <p>
2324                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html#id-1_3_27_7_3_2_1_1_4_4-bb">cartesian_communicator::coordinates </a></code>
2325               </p>
2326             </td>
2327 </tr>
2328 <tr>
2329 <td>
2330               <p>
2331                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graph_neighbors_count</span></code></a>
2332               </p>
2333             </td>
2334 <td>
2335               <p>
2336                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.out_degree">out_degree</a></code>
2337               </p>
2338             </td>
2339 </tr>
2340 <tr>
2341 <td>
2342               <p>
2343                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node136.html#Node136" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graph_neighbors</span></code></a>
2344               </p>
2345             </td>
2346 <td>
2347               <p>
2348                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.out_edges">out_edges</a></code>,
2349                 <code class="computeroutput"><a class="link" href="reference.html#boost.mpi.adjacent_vertices">adjacent_vertices</a></code>
2350               </p>
2351             </td>
2352 </tr>
2353 <tr>
2354 <td>
2355               <p>
2356                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node137.html#Node137" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_shift</span></code></a>
2357               </p>
2358             </td>
2359 <td>
2360               <p>
2361                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html#id-1_3_27_7_3_2_1_1_4_3-bb">cartesian_communicator::shifted_ranks </a></code>
2362               </p>
2363             </td>
2364 </tr>
2365 <tr>
2366 <td>
2367               <p>
2368                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node138.html#Node138" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_sub</span></code></a>
2369               </p>
2370             </td>
2371 <td>
2372               <p>
2373                 <code class="computeroutput"><a class="link" href="../boost/mpi/cartesian_communicator.html" title="Class cartesian_communicator">cartesian_communicator</a></code>
2374                 constructor
2375               </p>
2376             </td>
2377 </tr>
2378 <tr>
2379 <td>
2380               <p>
2381                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node139.html#Node139" target="_top"><code class="computeroutput"><span class="identifier">MPI_Cart_map</span></code></a>
2382               </p>
2383             </td>
2384 <td>
2385               <p>
2386                 unsupported
2387               </p>
2388             </td>
2389 </tr>
2390 <tr>
2391 <td>
2392               <p>
2393                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node139.html#Node139" target="_top"><code class="computeroutput"><span class="identifier">MPI_Graph_map</span></code></a>
2394               </p>
2395             </td>
2396 <td>
2397               <p>
2398                 unsupported
2399               </p>
2400             </td>
2401 </tr>
2402 </tbody>
2403 </table></div>
2404 </div>
2405 <br class="table-break"><p>
2406       Boost.MPI supports environmental inquires through the <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html" title="Class environment">environment</a></code> class.
2407     </p>
2408 <div class="table">
2409 <a name="mpi.c_mapping.environmental_inquiries"></a><p class="title"><b>Table&#160;26.13.&#160;Environmental inquiries</b></p>
2410 <div class="table-contents"><table class="table" summary="Environmental inquiries">
2411 <colgroup>
2412 <col>
2413 <col>
2414 </colgroup>
2415 <thead><tr>
2416 <th>
2417               <p>
2418                 C Function/Constant
2419               </p>
2420             </th>
2421 <th>
2422               <p>
2423                 Boost.MPI Equivalent
2424               </p>
2425             </th>
2426 </tr></thead>
2427 <tbody>
2428 <tr>
2429 <td>
2430               <p>
2431                 <code class="computeroutput"><span class="identifier">MPI_TAG_UB</span></code>
2432               </p>
2433             </td>
2434 <td>
2435               <p>
2436                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_4-bb">environment::max_tag</a></code>
2437               </p>
2438             </td>
2439 </tr>
2440 <tr>
2441 <td>
2442               <p>
2443                 <code class="computeroutput"><span class="identifier">MPI_HOST</span></code>
2444               </p>
2445             </td>
2446 <td>
2447               <p>
2448                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_6-bb">environment::host_rank</a></code>
2449               </p>
2450             </td>
2451 </tr>
2452 <tr>
2453 <td>
2454               <p>
2455                 <code class="computeroutput"><span class="identifier">MPI_IO</span></code>
2456               </p>
2457             </td>
2458 <td>
2459               <p>
2460                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_7-bb">environment::io_rank</a></code>
2461               </p>
2462             </td>
2463 </tr>
2464 <tr>
2465 <td>
2466               <p>
2467                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node143.html#Node147" target="_top"><code class="computeroutput"><span class="identifier">MPI_Get_processor_name</span></code></a>
2468               </p>
2469             </td>
2470 <td>
2471               <p>
2472                 <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_8-bb">environment::processor_name</a></code>
2473               </p>
2474             </td>
2475 </tr>
2476 </tbody>
2477 </table></div>
2478 </div>
2479 <br class="table-break"><p>
2480       Boost.MPI translates MPI errors into exceptions, reported via the <code class="computeroutput"><a class="link" href="../boost/mpi/exception.html" title="Class exception">exception</a></code>
2481       class.
2482     </p>
2483 <div class="table">
2484 <a name="mpi.c_mapping.error_handling"></a><p class="title"><b>Table&#160;26.14.&#160;Error handling</b></p>
2485 <div class="table-contents"><table class="table" summary="Error handling">
2486 <colgroup>
2487 <col>
2488 <col>
2489 </colgroup>
2490 <thead><tr>
2491 <th>
2492               <p>
2493                 C Function/Constant
2494               </p>
2495             </th>
2496 <th>
2497               <p>
2498                 Boost.MPI Equivalent
2499               </p>
2500             </th>
2501 </tr></thead>
2502 <tbody>
2503 <tr>
2504 <td>
2505               <p>
2506                 <code class="computeroutput"><span class="identifier">MPI_ERRORS_ARE_FATAL</span></code>
2507               </p>
2508             </td>
2509 <td>
2510               <p>
2511                 unused; errors are translated into Boost.MPI exceptions
2512               </p>
2513             </td>
2514 </tr>
2515 <tr>
2516 <td>
2517               <p>
2518                 <code class="computeroutput"><span class="identifier">MPI_ERRORS_RETURN</span></code>
2519               </p>
2520             </td>
2521 <td>
2522               <p>
2523                 unused; errors are translated into Boost.MPI exceptions
2524               </p>
2525             </td>
2526 </tr>
2527 <tr>
2528 <td>
2529               <p>
2530                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node148.html#Node148" target="_top"><code class="computeroutput"><span class="identifier">MPI_errhandler_create</span></code></a>
2531               </p>
2532             </td>
2533 <td>
2534               <p>
2535                 unused; errors are translated into Boost.MPI exceptions
2536               </p>
2537             </td>
2538 </tr>
2539 <tr>
2540 <td>
2541               <p>
2542                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node148.html#Node148" target="_top"><code class="computeroutput"><span class="identifier">MPI_errhandler_set</span></code></a>
2543               </p>
2544             </td>
2545 <td>
2546               <p>
2547                 unused; errors are translated into Boost.MPI exceptions
2548               </p>
2549             </td>
2550 </tr>
2551 <tr>
2552 <td>
2553               <p>
2554                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node148.html#Node148" target="_top"><code class="computeroutput"><span class="identifier">MPI_errhandler_get</span></code></a>
2555               </p>
2556             </td>
2557 <td>
2558               <p>
2559                 unused; errors are translated into Boost.MPI exceptions
2560               </p>
2561             </td>
2562 </tr>
2563 <tr>
2564 <td>
2565               <p>
2566                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node148.html#Node148" target="_top"><code class="computeroutput"><span class="identifier">MPI_errhandler_free</span></code></a>
2567               </p>
2568             </td>
2569 <td>
2570               <p>
2571                 unused; errors are translated into Boost.MPI exceptions
2572               </p>
2573             </td>
2574 </tr>
2575 <tr>
2576 <td>
2577               <p>
2578                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node148.html#Node148" target="_top"><code class="computeroutput"><span class="identifier">MPI_Error_string</span></code></a>
2579               </p>
2580             </td>
2581 <td>
2582               <p>
2583                 used internally by Boost.MPI
2584               </p>
2585             </td>
2586 </tr>
2587 <tr>
2588 <td>
2589               <p>
2590                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node149.html#Node149" target="_top"><code class="computeroutput"><span class="identifier">MPI_Error_class</span></code></a>
2591               </p>
2592             </td>
2593 <td>
2594               <p>
2595                 <code class="computeroutput"><a class="link" href="../boost/mpi/exception.html#id-1_3_27_7_11_2_1_1_4_4-bb">exception::error_class</a></code>
2596               </p>
2597             </td>
2598 </tr>
2599 </tbody>
2600 </table></div>
2601 </div>
2602 <br class="table-break"><p>
2603       The MPI timing facilities are exposed via the Boost.MPI <code class="computeroutput"><a class="link" href="../boost/mpi/timer.html" title="Class timer">timer</a></code> class, which provides an
2604       interface compatible with the <a href="http://www.boost.org/libs/timer/index.html" target="_top">Boost
2605       Timer library</a>.
2606     </p>
2607 <div class="table">
2608 <a name="mpi.c_mapping.timing_facilities"></a><p class="title"><b>Table&#160;26.15.&#160;Timing facilities</b></p>
2609 <div class="table-contents"><table class="table" summary="Timing facilities">
2610 <colgroup>
2611 <col>
2612 <col>
2613 </colgroup>
2614 <thead><tr>
2615 <th>
2616               <p>
2617                 C Function/Constant
2618               </p>
2619             </th>
2620 <th>
2621               <p>
2622                 Boost.MPI Equivalent
2623               </p>
2624             </th>
2625 </tr></thead>
2626 <tbody>
2627 <tr>
2628 <td>
2629               <p>
2630                 <code class="computeroutput"><span class="identifier">MPI_WTIME_IS_GLOBAL</span></code>
2631               </p>
2632             </td>
2633 <td>
2634               <p>
2635                 unnecessary; use <code class="computeroutput"><a class="link" href="../boost/mpi/timer.html#id-1_3_27_7_25_2_1_1_5_1-bb">timer::time_is_global</a></code>
2636               </p>
2637             </td>
2638 </tr>
2639 <tr>
2640 <td>
2641               <p>
2642                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node150.html#Node150" target="_top"><code class="computeroutput"><span class="identifier">MPI_Wtime</span></code></a>
2643               </p>
2644             </td>
2645 <td>
2646               <p>
2647                 use <code class="computeroutput"><a class="link" href="../boost/mpi/timer.html#id-1_3_27_7_25_2_1_1_3_2-bb">timer::elapsed</a></code>
2648                 to determine the time elapsed from some specific starting point
2649               </p>
2650             </td>
2651 </tr>
2652 <tr>
2653 <td>
2654               <p>
2655                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node150.html#Node150" target="_top"><code class="computeroutput"><span class="identifier">MPI_Wtick</span></code></a>
2656               </p>
2657             </td>
2658 <td>
2659               <p>
2660                 <code class="computeroutput"><a class="link" href="../boost/mpi/timer.html#id-1_3_27_7_25_2_1_1_3_4-bb">timer::elapsed_min</a></code>
2661               </p>
2662             </td>
2663 </tr>
2664 </tbody>
2665 </table></div>
2666 </div>
2667 <br class="table-break"><p>
2668       MPI startup and shutdown are managed by the construction and destruction of
2669       the Boost.MPI <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html" title="Class environment">environment</a></code>
2670       class.
2671     </p>
2672 <div class="table">
2673 <a name="mpi.c_mapping.startup_shutdown_facilities"></a><p class="title"><b>Table&#160;26.16.&#160;Startup/shutdown facilities</b></p>
2674 <div class="table-contents"><table class="table" summary="Startup/shutdown facilities">
2675 <colgroup>
2676 <col>
2677 <col>
2678 </colgroup>
2679 <thead><tr>
2680 <th>
2681               <p>
2682                 C Function
2683               </p>
2684             </th>
2685 <th>
2686               <p>
2687                 Boost.MPI Equivalent
2688               </p>
2689             </th>
2690 </tr></thead>
2691 <tbody>
2692 <tr>
2693 <td>
2694               <p>
2695                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node151.html#Node151" target="_top"><code class="computeroutput"><span class="identifier">MPI_Init</span></code></a>
2696               </p>
2697             </td>
2698 <td>
2699               <p>
2700                 <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html" title="Class environment">environment</a></code>
2701                 constructor
2702               </p>
2703             </td>
2704 </tr>
2705 <tr>
2706 <td>
2707               <p>
2708                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node151.html#Node151" target="_top"><code class="computeroutput"><span class="identifier">MPI_Finalize</span></code></a>
2709               </p>
2710             </td>
2711 <td>
2712               <p>
2713                 <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html" title="Class environment">environment</a></code>
2714                 destructor
2715               </p>
2716             </td>
2717 </tr>
2718 <tr>
2719 <td>
2720               <p>
2721                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node151.html#Node151" target="_top"><code class="computeroutput"><span class="identifier">MPI_Initialized</span></code></a>
2722               </p>
2723             </td>
2724 <td>
2725               <p>
2726                 <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_2-bb">environment::initialized</a></code>
2727               </p>
2728             </td>
2729 </tr>
2730 <tr>
2731 <td>
2732               <p>
2733                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node151.html#Node151" target="_top"><code class="computeroutput"><span class="identifier">MPI_Abort</span></code></a>
2734               </p>
2735             </td>
2736 <td>
2737               <p>
2738                 <code class="computeroutput"><a class="link" href="../boost/mpi/environment.html#id-1_3_27_7_10_2_1_1_10_1-bb">environment::abort</a></code>
2739               </p>
2740             </td>
2741 </tr>
2742 </tbody>
2743 </table></div>
2744 </div>
2745 <br class="table-break"><p>
2746       Boost.MPI does not provide any support for the profiling facilities in MPI
2747       1.1.
2748     </p>
2749 <div class="table">
2750 <a name="mpi.c_mapping.profiling_interface"></a><p class="title"><b>Table&#160;26.17.&#160;Profiling interface</b></p>
2751 <div class="table-contents"><table class="table" summary="Profiling interface">
2752 <colgroup>
2753 <col>
2754 <col>
2755 </colgroup>
2756 <thead><tr>
2757 <th>
2758               <p>
2759                 C Function
2760               </p>
2761             </th>
2762 <th>
2763               <p>
2764                 Boost.MPI Equivalent
2765               </p>
2766             </th>
2767 </tr></thead>
2768 <tbody>
2769 <tr>
2770 <td>
2771               <p>
2772                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node153.html#Node153" target="_top"><code class="computeroutput"><span class="identifier">PMPI_</span><span class="special">*</span></code>
2773                 routines</a>
2774               </p>
2775             </td>
2776 <td>
2777               <p>
2778                 unsupported
2779               </p>
2780             </td>
2781 </tr>
2782 <tr>
2783 <td>
2784               <p>
2785                 <a href="http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node156.html#Node156" target="_top"><code class="computeroutput"><span class="identifier">MPI_Pcontrol</span></code></a>
2786               </p>
2787             </td>
2788 <td>
2789               <p>
2790                 unsupported
2791               </p>
2792             </td>
2793 </tr>
2794 </tbody>
2795 </table></div>
2796 </div>
2797 <br class="table-break">
2798 </div>
2799 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
2800 <td align="left"></td>
2801 <td align="right"><div class="copyright-footer">Copyright &#169; 2005-2007 Douglas Gregor,
2802       Matthias Troyer, Trustees of Indiana University<p>
2803         Distributed under the Boost Software License, Version 1.0. (See accompanying
2804         file LICENSE_1_0.txt or copy at &lt;ulink url="http://www.boost.org/LICENSE_1_0.txt"&gt;
2805         http://www.boost.org/LICENSE_1_0.txt &lt;/ulink&gt;)
2806       </p>
2807 </div></td>
2808 </tr></table>
2809 <hr>
2810 <div class="spirit-nav">
2811 <a accesskey="p" href="tutorial.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mpi.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
2812 </div>
2813 </body>
2814 </html>