MCPcopy Create free account
hub / github.com/SeisSol/SeisSol / getWorkerUnionMask

Method getWorkerUnionMask

src/Parallel/Pin.cpp:194–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192}
193
194CpuMask Pinning::getWorkerUnionMask() {
195#ifndef __APPLE__
196 cpu_set_t workerUnion;
197 CPU_ZERO(&workerUnion);
198#ifdef _OPENMP
199#pragma omp parallel default(none) shared(workerUnion)
200 {
201 cpu_set_t worker;
202 CPU_ZERO(&worker);
203 sched_getaffinity(0, sizeof(cpu_set_t), &worker);
204#pragma omp critical
205 {
206 CPU_OR(&workerUnion, &workerUnion, &worker);
207 }
208 }
209#else
210 sched_getaffinity(0, sizeof(cpu_set_t), &workerUnion);
211#endif
212
213 return CpuMask{workerUnion};
214
215#else
216 return CpuMask{};
217#endif // __APPLE__
218}
219
220CpuMask Pinning::getFreeCPUsMask() const {
221#ifndef __APPLE__

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected