Skip to content

<thread>: (lack of) Support for >64 cores #2099

@Chronial

Description

@Chronial

The stl is currently limited to using 64 cores: Threads created with std::thread will only ever occupy 64 cores (see #1238 (comment)) and std::hardware_concurrency returns a maximum of 64 (see #594).

With the availability of the 128 (logical) core Threadripper this is becoming less of a philosophical issue and becoming more relevant for real-world applications.

My understanding is that given the current win32 API, manual thread affinity management is necessary to access more than 64 cores (see e.g. the way the TBB starts threads). So this might not actually be fixable within the STL. In that case the STL should probably at least clearly document this limitation somewhere, since it is a rather surprising arbitrary limit.

Some background information on the 64 core problem in win32: https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationRelated to documentation or commentsresolvedSuccessfully resolved without a commit

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions