sách gpt4 ai đã đi

openmp - 在 OpenMP 中,如何让每个内核运行一个线程?

In lại 作者:行者123 更新时间:2023-12-04 17:12:28 25 4
mua khóa gpt4 Nike

我在 3 天前开始使用 OpenMP。我想知道如何使用#pragma使每个内核运行一个线程。详细信息:-
int ncores = omp_get_num_procs();for(i = 0; i < ncores;i++){....}
我希望这个 for 循环分布在我拥有的核心中,#pragma我应该用吗?

另一件事,那些是什么#pragmas意思是?
#pragma omp parallel#pragma omp for#pragma omp parallel for
我对那些 #pragmas 有点困惑

十分感谢 .. :)

1 Câu trả lời

线程固定

I want to know how to use #pragma to make every single core runs a single thread.



您使用哪个 openmp 实现?答案取决于此。

固定不是用 pragma 定义的。您将不得不使用环境变量。使用 gcc 时,可以使用环境变量将线程固定到内核:
GOMP_CPU_AFFINITY="0-3" ./main

将第一个线程绑定(bind)到第一个内核,将第二个线程绑定(bind)到第二个内核,依此类推。见 gomp documentation了解更多信息(第 3 节,环境变量)。我忘记了如何使用 PGI 和其他编译器做同样的事情,但是您应该能够使用流行的搜索引擎找到这些编译器的答案。

OpenMP 编译指示

没有办法避免阅读文档。见 this link to an IBM website例如。我找到了 tutorial by Blaise Barney很有用。

关于openmp - 在 OpenMP 中,如何让每个内核运行一个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688553/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com