gpt4 book ai didi

c++ - 推荐用于大数据处理的 C++ 并行化库是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:34 25 4
gpt4 key购买 nike

当要处理的数据很大时,有人可以推荐在 C++ 中进行并行化的方法吗?我一直在阅读关于 openMP 和英特尔的 TBB 的 C++ 并行化,但还没有对它们进行试验。哪一个更适合并行数据处理?还有其他图书馆/方法吗?

最佳答案

“大”和“数据处理”在这里涵盖了很多领域,如果没有更多信息,很难给出一个明智的答案。

如果数据处理是“令人尴尬的并行”——​​如果它涉及进行大量彼此完全独立的计算——那么有一百万种东西可以工作,而这只是找到匹配的东西的问题你的代码和背景。

如果它不是令人尴尬的并行,但几乎是这样 - 计算需要大量数据但只是将其提炼成少量数字 - 选项更少,但仍然有很多选择。

如果计算比这更紧密耦合 - 您需要处理器串联处理大块数据,那么您可能会遇到备用 - 如果编译器的 OpenMP 功能可以处理单个数据机(也有 TBB,但通常对于数字运算,OpenMP 更快更容易)或 MPI(如果同时需要多台机器)。你提到了 C++; Boost 有一个非常好的 MPI 层。

但是考虑使用哪个库进行并行化,很可能是先想问题的错误结局。在许多情况下,您不一定需要直接处理这些层。如果数字运算涉及大量线性代数(例如),那么 PLASMA(适用于多核机器 - http://icl.cs.utk.edu/plasma/ )或支持分布式内存机器的 PetSC,例如,多台计算机( http://www.mcs.anl.gov/petsc/petsc-as/ )是不错的选择,这可以完全隐藏并行实现的实际细节。其他种类的技术也有其他库。最好考虑您需要进行哪种分析,并查看现有工具包是否具有您需要的并行化数量。只有当您确定答案是否定的时候,您才应该开始担心如何推出自己的产品。

关于c++ - 推荐用于大数据处理的 C++ 并行化库是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3856782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com