gpt4 book ai didi

c++ - pthread 与英特尔 TBB 及其与 OpenMP 的关系?

转载 作者:可可西里 更新时间:2023-11-01 17:51:47 25 4
gpt4 key购买 nike

对于多线程编程,考虑到与HPC应用程序(MPI)的结合,哪个更好,是否可以说在功能上,Intel TBB(thread building block)与pthread不相上下?我只获得了 open mp 的经验,但我听说与 open mp 相比,TBB 和 Pthread 都提供了更精细的线程控制,但是与 pthread 相比,TBB 或 TBB + OpenMP 能否提供类似的功能?

最佳答案

pthread 是操作系统基础设施之上的一个瘦包装器。它允许您使用给定的线程主函数和一些同步原语(互斥信号量等)创建线程。在 Linux 下,pthread 是在 clone(2) 系统调用之上实现的。 Windows 下的等效项称为 CreateThread。所有其他线程内容都建立在这个基础之上。

Intel TBB 是更高级别的,它提供了 parallel_forparallel_reduce 以及类似于 OpenMP 的类似更高级别的构造,但作为库而不是语言扩展实现。

OpenMPI 的水平更高,仍然具有多机分布式基础架构,但它非常老套且有点笨重。

我的建议是先学习 pthread 库,直到完全理解它,然后再看更高级别的库。

关于c++ - pthread 与英特尔 TBB 及其与 OpenMP 的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082360/

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