[comp.os.research] NUMAtic project

carla@macbeth.cs.duke.edu (Carla Ellis) (10/18/89)

NUMAtic Project


CONTACTS:
	Carla Ellis  
	carla@cs.duke.edu
	(919) 660-6523

	Mark Holliday
	holliday@cs.duke.edu
	(919) 660-6525

	Department of Computer Science
	Duke University
	Durham NC 27243
	USA

DESCRIPTION:

Non-uniformity of memory access is an almost inevitable feature of the
memory architecture in any shared memory multiprocessor design that
can scale to large numbers of processors.  The NUMAtic project is a
program of experimental research exploring memory management on NUMA
machines.

Experience has shown that attention to placement and movement of data
and code is crucial to performance in NUMA environments.  However, the
need to explicitly manage the location of data is a significant burden
on the programmer.  The additional complexity of this memory
architecture demands that the operating system assume an even larger
role in providing memory management support.

The scope of the project covers a full range of policies and
mechanisms for controlling the location and movement of data including
1) the migration of code and data among the distinct memory modules 
   that collectively comprise the main memory of a NUMA machine, 
2) the replication (or caching) of copies of pages within main memory,
3) the page fetch, placement, and pageout algorithms associated with
   virtual memory,  
and 
4) the organization and management of secondary memory based on
   parallel independent disks.  
The emphasis is on evaluating the impact of design alternatives and
identifying the factors affecting behavior of systems employing these
techniques.

The environment for the project is the BBN Butterfly GP-1000
multiprocessor.

REFERENCES:

@inproceedings{ellis:prefetch,
        AUTHOR = "C. Ellis and D. Kotz",
        TITLE = "Prefetching in File Systems for {MIMD} Multiprocessors",
        BOOKTITLE = icpp89,
        YEAR = "1989",
        MONTH = "August",
        NOTE = ""               }
 
@inproceedings{holliday:pagetable,
        AUTHOR = "M. Holliday",
        TITLE = "Page Table Management in Local/Remote Architectures",
        BOOKTITLE = "ACM SIGARCH Int. Conf. on Supercomputing",
        YEAR = "1988",
        PAGES = "1-8",
        MONTH = "July",
        NOTE = ""               }

@inproceedings{holliday:asplos,
        AUTHOR = "M. Holliday",
        TITLE = "Reference History, Page Size, and Migration Daemons in Local/remote Architectures",
        BOOKTITLE = ASPLOS ,
        YEAR = "1989",
        PAGES = "",
        MONTH = "April",
        NOTE = ""               }
 
@techreport{holliday:placement,
        AUTHOR = "M. Holliday",
        TITLE = "On the Effectiveness of Dynamic Page Placement",
        INSTITUTION = "Duke University",
        YEAR = "1989",
        NUMBER = "TR-1989-19",
        MONTH = "September",
        NOTE = ""               }
 
@ARTICLE{kotz:prefetch,
        AUTHOR = "D. Kotz and C. Ellis",
        TITLE = "Prefetching in File Systems for {MIMD} Multiprocessors",
        JOURNAL = "IEEE Transactions on Parallel and Distributed Systems",
        YEAR = "1990",
        VOLUME = "1",
        NUMBER = "1",
        MONTH = jan,
        NOTE = "to appear"  }
 
@techreport{kotz:coop,
        AUTHOR = "D. Kotz and C. Ellis",
        TITLE = "Inter-process Cooperation in Prefetching for Parallel
File Systems ", 
        INSTITUTION = "Duke University",
        YEAR = "1989",
        MONTH = "October",
        NOTE = ""               }

@techreport{larowe:placement,
        AUTHOR = "R. LaRowe and C. Ellis",
        TITLE = "Virtual Page Placement Policies for {NUMA} Multiprocessors",
        YEAR = "1989",
        MONTH = "April",
        INSTITUTION = "Duke University",
        NUMBER = "CS-1989-2",
        NOTE = "" }

@techreport{larowe:recall,
        AUTHOR = "R. LaRowe and C. Ellis",
        TITLE = "Dynamic Page Placement in a {NUMA} Multiprocessor Virtual Memory System",
        INSTITUTION = "Duke University",
        YEAR = "1989",
        MONTH = "October",
        NUMBER = "TR CS-1989-21",
        NOTE = ""               }