zoukankan      html  css  js  c++  java
  • Linux 操作系统下CPU多核心的绑定 深圳

    现在多CPU的趋势越来越大了. 有时候为了更好地操作机器, 需要将某个进程绑定到具体的CPU上去. 下面给出了一个进程绑定到具体的CPU上去的一个例子.


    cpu.c

    [CODE]
    #include<stdlib.h>
    #include<stdio.h>
    #include<sys/types.h>
    #include<sys/sysinfo.h>
    #include<unistd.h>

    #define __USE_GNU
    #include<sched.h>
    #include<ctype.h>
    #include<string.h>

    int main(int argc, char* argv[])
    {
            int num = sysconf(_SC_NPROCESSORS_CONF);
            int created_thread = 0;
            int myid;
            int i;
            int j = 0;

            cpu_set_t mask;
            cpu_set_t get;

            if (argc != 2)
            {
                    printf("usage : ./cpu num\n");  //输入要绑定的CPU序号
                    exit(1);
            }

            myid = atoi(argv[1]);

            printf("system has %i processor(s). \n", num);

            CPU_ZERO(&mask);
            CPU_SET(myid, &mask);

            if (sched_setaffinity(0, sizeof(mask), &mask) == -1)  //绑定到CPU
            {
                    printf("warning: could not set CPU affinity, continuing...\n");
            }
            while (1)
            {

                    CPU_ZERO(&get);
                    if (sched_getaffinity(0, sizeof(get), &get) == -1)
                    {
                            printf("warning: cound not get cpu affinity, continuing...\n");
                    }
                    for (i = 0; i < num; i++)
                    {
                            if (CPU_ISSET(i, &get))
                            {
                                    printf("this process %d is running processor : %d\n",getpid(), i);
                            }
                    }
            }
            return 0;

  • 相关阅读:
    MySql
    027 mysql
    navicat
    基于阿里云资源的分布式部署方案
    translate(50%,50%) 实现水平垂直居中
    SSH2 协议详解
    DNS服务配置篇 巴哥学Server2003
    Java 8 后的新功能梳理
    IBM Cognos BI 最佳实践系列 网站地址
    jsf2.0 入门视频 教程
  • 原文地址:https://www.cnblogs.com/ybgame/p/2216777.html
Copyright © 2011-2022 走看看