Opened 3 years ago

Closed 3 years ago

#12602 closed task (fixed)

Add NUMA support to Windows

Reported by: Phyx- Owned by: Phyx-
Priority: normal Milestone: 8.2.1
Component: Compiler Version: 8.0.1
Keywords: Cc:
Operating System: Windows Architecture: Unknown/Multiple
Type of failure: Other Test Case:
Blocked By: Blocking:
Related Tickets: #11054 Differential Rev(s): Phab:D2534
Wiki Page:


Add support for NUMA for Windows.

Core APIs are here and map pretty closely to the Linux ones for our needs.

Support is just filling in the gaps in the new functions.

Change History (5)

comment:1 Changed 3 years ago by Phyx-

Owner: set to Phyx-

comment:2 Changed 3 years ago by Phyx-

Differential Rev(s): Phab:D2534
Operating System: Unknown/MultipleWindows
Type of failure: None/UnknownOther

comment:3 Changed 3 years ago by Phyx-

Status: newpatch

comment:4 Changed 3 years ago by Tamar Christina <tamar@…>

In c93813d9/ghc:

Add NUMA support for Windows

NOTE: I have been able to do simple testing on emulated NUMA nodes.
           Real hardware would be needed for a proper test.

D2199 Added NUMA support for Linux, I have just filled in the missing pieces following
the description of the Linux APIs.

Test Plan:
Use `bcdedit.exe /set groupsize 2` to modify the kernel again (Similar to D2533).

This generates some NUMA nodes:

Logical Processor to NUMA Node Map:
NUMA Node 0:
NUMA Node 1:

Approximate Cross-NUMA Node Access Cost (relative to fastest):
     00  01
00: 1.1 1.1
01: 1.0 1.0

run ` ../test-numa.exe +RTS --numa -RTS`

and check PerfMon for NUMA allocations.

Reviewers: simonmar, erikd, bgamari, austin

Reviewed By: simonmar

Subscribers: thomie, #ghc_windows_task_force

Differential Revision:

GHC Trac Issues: #12602

comment:5 Changed 3 years ago by Phyx-

Resolution: fixed
Status: patchclosed
Note: See TracTickets for help on using tickets.