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"><</span><span class="keyword">float</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></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"><</span><span class="keyword">double</span><span class="special">,</span> 755 <span class="keyword">int</span><span class="special">></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"><</span><span class="keyword">long</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></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"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></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"><</span><span class="keyword">short</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></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"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></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">&</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 <ulink url="http://www.boost.org/LICENSE_1_0.txt"> 2805 http://www.boost.org/LICENSE_1_0.txt </ulink>) 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