Three more patches:
- aff_disabled.patch: Some affinity fixes/cleanup:
a. Getting rid of proc_bind_disabled enum value. The disabled affinity functionality is flagged instead solely by __kmp_affinity_type = affinity_disabled. This solves the problem if a Linux machine doesn’t support affinity for whatever reason and affinity is disabled then it maps to proc-bind-var to proc_bind_false (valid value) instead of proc_bind_disabled (invalid value).
b. Adding KMP_AFFINITY_DISABLE() and KMP_AFFINITY_ENABLE(mask_size) to go along with KMP_AFFINITY_CAPABLE(). In the grand scheme of things, we want to get rid of as many explicit references to the mask size as we can to aid hwloc importing. It’s also more readable.
c. Unused affinity function __kmp_change_thread_affinity_mask() deleted.
d. The first changes in kmp_affinity.cpp concern an incorrect warning that is produced when you use OMP_PLACES=0:num_hardware_threads. The warning states that you are trying to use the num_hardware_threads thread context when you really aren’t. For example, on fxe12lin19 (hyperthreaded), if you specify OMP_PLACES=0:24, it warns against using OS thread 24. But only OS threads 0-23 are actually being used. This change prevents the warning from being emitted.
atomic8.patch: Adding some 8-bit atomic operations for future use.
cleanup.patch: Cleanup of unsigned types to be consistent for all topology related variables (requested by Hal Finkel).
aff_disabled.patch (12.4 KB)
atomic8.patch (7.83 KB)
cleanup.patch (2.65 KB)