Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Control over individual cores?

Multicore architecture can be exploited by multithreading the application. But can the programmer have control overindividual cores? Is it that the only responsibility of the programmer is to parallelize the application as much as possible and not worry about the cores, except for the scalability factor?
0 Kudos
1 Reply
Honored Contributor III

Most multi-processor operating systems permit the programmer to have the ability to select logical processors as opposed to individual cores. With additional programming you can determine the identity (location System/Package/Core/HT thread) of the logical processor.

For general programming, the number of threads is contolled without regard to processor (threads are not assigned affinity).

For specific applications if may be advantagous to use thread affinity. e.g. permit the application to burden all but one processor.

Tying a given thread to a given processor can potentially make better use of the cache.

Tying threads with high data sharing requirements to a set of processors on the same memory node can inhance performance.

For you. I would suggest to start with getting your application to run with multiple threads. Then experiment with the numbers of threads. Messing with Affinity is sometimes a double-edged sword.

Jim Dempsey

0 Kudos