Extending OpenMP for NUMA Machines

This paper describes extensions to OpenMP that implement data placement features needed for NUMA architectures. OpenMP is a collection of compiler directives and library routines used to write portable parallel programs for shared-memory architectures. Writing efficient parallel programs for NUMA ar...

Full description

Bibliographic Details
Main Authors: John Bircsak, Peter Craig, RaeLyn Crowell, Zarka Cvetanovic, Jonathan Harris, C. Alexander Nelson, Carl D. Offner
Format: Article
Language:English
Published: Hindawi Limited 2000-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.1155/2000/464182
id doaj-55a68f918327454c90ae49db0c258c48
record_format Article
spelling doaj-55a68f918327454c90ae49db0c258c482021-07-02T06:38:32ZengHindawi LimitedScientific Programming1058-92441875-919X2000-01-018316318110.1155/2000/464182Extending OpenMP for NUMA MachinesJohn Bircsak0Peter Craig1RaeLyn Crowell2Zarka Cvetanovic3Jonathan Harris4C. Alexander Nelson5Carl D. Offner6Compaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USACompaq Computer Corporation, 110 Spitbrook Road, Nashua, NH 03062, USAThis paper describes extensions to OpenMP that implement data placement features needed for NUMA architectures. OpenMP is a collection of compiler directives and library routines used to write portable parallel programs for shared-memory architectures. Writing efficient parallel programs for NUMA architectures, which have characteristics of both shared-memory and distributed-memory architectures, requires that a programmer control the placement of data in memory and the placement of computations that operate on that data. Optimal performance is obtained when computations occur on processors that have fast access to the data needed by those computations. OpenMP -- designed for shared-memory architectures -- does not by itself address these issues. The extensions to OpenMP Fortran presented here have been mainly taken from High Performance Fortran. The paper describes some of the techniques that the Compaq Fortran compiler uses to generate efficient code based on these extensions. It also describes some additional compiler optimizations, and concludes with some preliminary results.http://dx.doi.org/10.1155/2000/464182
collection DOAJ
language English
format Article
sources DOAJ
author John Bircsak
Peter Craig
RaeLyn Crowell
Zarka Cvetanovic
Jonathan Harris
C. Alexander Nelson
Carl D. Offner
spellingShingle John Bircsak
Peter Craig
RaeLyn Crowell
Zarka Cvetanovic
Jonathan Harris
C. Alexander Nelson
Carl D. Offner
Extending OpenMP for NUMA Machines
Scientific Programming
author_facet John Bircsak
Peter Craig
RaeLyn Crowell
Zarka Cvetanovic
Jonathan Harris
C. Alexander Nelson
Carl D. Offner
author_sort John Bircsak
title Extending OpenMP for NUMA Machines
title_short Extending OpenMP for NUMA Machines
title_full Extending OpenMP for NUMA Machines
title_fullStr Extending OpenMP for NUMA Machines
title_full_unstemmed Extending OpenMP for NUMA Machines
title_sort extending openmp for numa machines
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 2000-01-01
description This paper describes extensions to OpenMP that implement data placement features needed for NUMA architectures. OpenMP is a collection of compiler directives and library routines used to write portable parallel programs for shared-memory architectures. Writing efficient parallel programs for NUMA architectures, which have characteristics of both shared-memory and distributed-memory architectures, requires that a programmer control the placement of data in memory and the placement of computations that operate on that data. Optimal performance is obtained when computations occur on processors that have fast access to the data needed by those computations. OpenMP -- designed for shared-memory architectures -- does not by itself address these issues. The extensions to OpenMP Fortran presented here have been mainly taken from High Performance Fortran. The paper describes some of the techniques that the Compaq Fortran compiler uses to generate efficient code based on these extensions. It also describes some additional compiler optimizations, and concludes with some preliminary results.
url http://dx.doi.org/10.1155/2000/464182
work_keys_str_mv AT johnbircsak extendingopenmpfornumamachines
AT petercraig extendingopenmpfornumamachines
AT raelyncrowell extendingopenmpfornumamachines
AT zarkacvetanovic extendingopenmpfornumamachines
AT jonathanharris extendingopenmpfornumamachines
AT calexandernelson extendingopenmpfornumamachines
AT carldoffner extendingopenmpfornumamachines
_version_ 1721336905761554432