gpt4 book ai didi

c - 如何强制 C 程序在特定内核上运行

转载 作者:太空狗 更新时间:2023-10-29 14:57:58 26 4
gpt4 key购买 nike

假设我有以下 c 程序:

#include <stdio.h>

int main()
{
printf("Hello world \n");
getchar();

return 0;
}

gcc 1.c -o helloworld

并且,假设我有一台双核机器:

cat /proc/cpuinfo | grep processor | wc -l

现在我的问题是,当我们执行程序时,我们如何强制该程序在 core-0(或任何其他特定内核)中运行?

如何以编程方式执行此操作?示例、api、代码引用会很有帮助。

如果没有可用的 api,那么是否有任何编译时间、链接时间、加载时间的方式来执行此操作?

OTOH,如何检查程序是在 core-0 还是 core-1(或任何其他内核)中运行?

最佳答案

既然你在谈论/proc/cpu,我假设你使用的是 linux。在 Linux 中,您将使用 sched_setaffinity 函数。在您的示例中,您会调用

cpu_set_t set;
CPU_ZERO(&set); // clear cpu mask
CPU_SET(0, &set); // set cpu 0
sched_setaffinity(0, sizeof(cpu_set_t), &set); // 0 is the calling process

查看 man sched_setaffinity 了解更多详情。

关于c - 如何强制 C 程序在特定内核上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8326427/

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