相关疑难解决方法(0)

Pthreads与OpenMP

我正在使用Linux在C中创建一个多线程应用程序.

我不确定是否应该使用POSIX线程API或OpenMP API.

使用任何一种的利弊是什么?

编辑:

有人可以澄清两个API是否创建内核级用户级线程?

c pthreads openmp

57
推荐指数
4
解决办法
4万
查看次数

OpenMP 和 C++11 多线程

我目前正在从事一个混合高性能计算 (HPC) 和交互性的项目。
因此,HPC 部分依赖于 OpenMP(主要是具有大量相同计算的 for 循环),但它包含在具有 GUI 和多线程的更大框架中,目前使用 c++11 线程(std::threadstd::async)实现。

我已阅读OpenMP 与 C++ promises 和 futures 一起玩得好吗?以及为什么在使用嵌套的 OpenMP pragma 时 c++11 线程变得不可连接?混合使用 OpenMP 和 C++11 线程并不是一个好主意,但到目前为止它一直对我有用。
出于不同的原因,我想对此进行改进,但我不确定采用哪种策略。

OpenMP vs C++11 线程中,我读到std::thread由于线程的创建和销毁,替换 OpenMP对性能有相当大的影响,但我找不到任何关于通过基于任务的并行性替换 OpenMP 加速的内容std::async。在我看来,这应该比std::thread因为线程管理是由操作系统完成的要快,但我还不相信这是适用的。我还没有尝试过,因为它会涉及大量的重构,我希望先听听其他意见。

您有协调 HPC 和交互性的经验吗?在你眼里,应该std::async比 OpenMP 快吧?

c++ multithreading hpc openmp c++11

5
推荐指数
0
解决办法
2253
查看次数

标签 统计

openmp ×2

c ×1

c++ ×1

c++11 ×1

hpc ×1

multithreading ×1

pthreads ×1