Ticket #1123 (new proposed-project)

Opened 2 years ago

Last modified 1 year ago

Multiprocessor NUMA support for GHC

Reported by: chak@cse.unsw.edu.au Assigned to: none
Priority: OK Keywords:
Cc: Topic: misc
Difficulty: unknown Mentor: not-accepted

Description (Last modified by nano)

GHC can run Haskell threads on multiple cores and CPUs, which is the the way to make use of current and future multi-core and many-core architectures with GHC. However, GHC's runtime system currently treats all available cores/CPUs equal. This often results in bad performance on NUMA (non-uniform memory achitectures), where the memory-access latency and bandwidth chracteristics vary in dependence on the CPU and (physical) memory region accessed - i.e., each CPU has its own memory that it can access faster than that of other CPUs.

The goal of this project is to increase GHC's awareness of the memory characteristics of NUMA machines by allocating physical memory pages in suitable memory areas, making GC NUMA-aware, and providing library support to allocate memory with specific CPU affinity.

We have a 8x dualcore AMD Opteron NUMA machine (i.e., overall 16 cores) to develop and test code on.

Interested Mentors

Interested Students

Change History

03/23/07 09:14:59 changed by nominolo

  • description changed.

03/21/08 16:24:27 changed by nano

  • priority set to not yet rated.
  • description changed.

03/22/08 03:20:25 changed by nominolo

  • priority changed from not yet rated to OK.
  • description changed.

03/24/08 10:49:52 changed by simonmar

  • description changed.

04/15/08 01:01:31 changed by nano

  • description changed.