我正在尝试在多个内核中运行我的程序。我的桌面有 12 个内核,希望计算机一个一个地使用 1,2,3,4,......,11,12,并想测试程序在不同数量的内核中的执行情况。我尝试在可执行文件之后使用 -t4 或 -t 4 。
./a.out -t4
但我无法确定它是否正好使用 4。谁能帮我理解这一点或指出我正确的方向。
我正在尝试在多个内核中运行我的程序。我的桌面有 12 个内核,希望计算机一个一个地使用 1,2,3,4,......,11,12,并想测试程序在不同数量的内核中的执行情况。我尝试在可执行文件之后使用 -t4 或 -t 4 。
./a.out -t4
但我无法确定它是否正好使用 4。谁能帮我理解这一点或指出我正确的方向。
您的程序必须是多线程的才能使用机器的多个内核。
这意味着程序的实际代码必须了解线程并有效地使用它们。
您不能简单地要求程序在给定数量的线程上运行。
您必须使用诸如 pthread 之类的线程库来生成线程并在它们上分配工作。
您应该查看 libnuma 库。
您可以以编程方式设置希望不同线程在哪些内核上运行,也可以使用命令行选项运行它。这是一些详细文档的链接:http ://www.halobates.de/numaapi3.pdf