1 2 3 4 5 6 7 8 9 10 11 12 13 14 | double sumLocal[N_THREADS]; . . . . . . . . . . void ThreadFunc(void *data) { . . . . . . . int id = p->threadId; sumLocal[id] = 0.0; . . . . . . . . . . . . for (i=0; i<N; i++) sumLocal[id] += p; . . . . . . } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Linux Example: /* Get a process' CPU affinity mask */ extern int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset); /* Set a process's affinity mask */ extern int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset); Windows Example: /* Set processor affinity */ BOOL WINAPI SetProcessAffinityMask(Handle hProcess, DWORD_PTR dwProcessAffinityMask); /* Set Thread affinity */ DWORD_PTR WINAPI SetThreadAffinityMask(Handle hThread, DWORD_PTR dwThreadAffinityMask); |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |