【发布时间】:2013-01-16 06:17:20
【问题描述】:
我正在尝试在多个内核中运行我的程序。我的桌面有 12 个内核,希望计算机一个一个地使用 1,2,3,4,......,11,12,并想测试程序在不同数量的内核中的性能。我尝试在可执行文件之后使用 -t4 或 -t 4。
./a.out -t4
但我无法确定它是否正好使用 4。谁能帮我理解这一点或指出我正确的方向。
【问题讨论】:
-
您要设置核心亲和力吗? stackoverflow.com/questions/8486314/… 和 cyberciti.biz/tips/…
-
谢谢你的链接..你看我正在使用线程并希望这些线程使用 1 到 12 的核心。我听说我们可以在 Linux 中使用命令行来做到这一点,比如 -t4 for四核..
-
你不能完全控制你在哪个内核上运行,但是当你在你的程序中创建线程时,你可以设置特定内核的亲和力(我认为 api 是 sched_setaffinity )。我认为这是需要在您的代码中完成的事情,而不是在命令行中。您的代码可以使用命令输入来控制线程/内核的数量。
-
非常感谢*100 thang .. 为我指出正确的方向:)
标签: c++ linux multithreading gcc parallel-processing