Boost C++ 库

……这是世界上评价最高、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

设计理念 - Boost C++ 函数库
PrevUpHomeNext

Parallel MPI 库的设计理念非常简单:既方便又高效。MPI 是一个为高性能应用程序而构建的库,但它以 FORTRAN 为中心、注重性能的设计,从 C++ 的角度来看相当不灵活:在进程之间传递字符串很麻烦,需要多个消息和显式的缓冲;在进程之间传递字符串容器需要额外的手动管理;而传递字符串到字符串容器的映射更是令人极其恼火。Parallel MPI 库允许使用相同的简单 send()recv() 原语来传递所有这些数据类型。同样,诸如 reduce() 等集体操作允许任意数据类型和函数对象,这与 C++ 标准库非常相似。

为方便起见提供的高级抽象不得对应用程序的性能产生影响。例如,通过 send 发送一个整数必须与调用 MPI_Send 一样高效,这意味着它必须通过一个简单的 MPI_Send 调用来实现;同样,使用 std::plus<int> 的整数 reduce() 必须通过对整数进行 MPI_Reduce 调用并使用 MPI_SUM 操作来实现:任何低于此标准的做法都会影响性能。本质上,这就是“不为不需要的东西付费”原则:如果用户不传输字符串,则不应承担与字符串相关的开销。

有时,实现最大性能意味着放弃方便的抽象,并使用更底层的原语来实现某些功能。因此,始终可以从 Boost.MPI 的抽象中提取足够的信息,以最大程度地减少在 Boost.MPI 和 C MPI 库之间进行接口所需的努力。


PrevUpHomeNext