• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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=UTF-8">
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 26. 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 26.1. 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 26.2. 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 26.3. 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 26.4. 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 26.5. 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 26.6. 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 26.7. 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 26.8. 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 26.9. 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 26.10. 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 26.11. 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 26.12. 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 26.13. 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 26.14. 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 26.15. 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 26.16. 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 26.17. 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 © 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>
2815