Tag: 亲和力

使用OpenMP在两个核上设置线程关联

我正在使用一个C程序,使用OpenMP 4.0在Windows7上使用gcc 4.9.2编译。 我的电脑是双核,有四个线程。 我想使用线程亲和力传播并使用2个线程放在不同的核心上。 所以当我从DOS设置环境变量时: 设置OMP_NUM_THREADS = 2 设置OMP_PROC_BIND =传播 设置OMP_PLACES =“核心” 我得到了变量OMP_DISPLAY_ENV = true,这个: libgomp: Invalid value for environment variable OMP_PLACES OPENMP DISPLAY ENVIRONMENT BEGIN _OPENMP = ‘201307’ OMP_DYNAMIC = ‘FALSE’ OMP_NESTED = ‘FALSE’ OMP_NUM_THREADS = ‘2’ OMP_SCHEDULE = ‘DYNAMIC’ OMP_PROC_BIND = ‘SPREAD’ OMP_PLACES = ” OMP_STACKSIZE = ‘12872703’ OMP_WAIT_POLICY = ‘PASSIVE’ OMP_THREAD_LIMIT […]

如何在C语言中使用sched_getaffinity和sched_setaffinity?

我在尝试着: 使用处理器固定同时运行16个副本(每个核心2个副本) 在处理器固定(每个核心2个副本)的同时运行8个副本,并在某个function表示function1完成后将处理器核心翻转到最远的核心。 我面临的问题是如何选择最远的处理器。 有些朋友建议使用sched_getaffinity和sched_setaffinity,但我认为没有找到任何好的例子。