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:

Description

Add support for NUMA for Windows.

Core APIs are here https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx 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

Summary:
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: https://phabricator.haskell.org/D2534

GHC Trac Issues: #12602

comment:5 Changed 3 years ago by Phyx-

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