Locality-aware task management on many-core processors