4. Work Sharing and Domain Decomposition

  1. Tarek El-Ghazawi1,
  2. William Carlson2,
  3. Thomas Sterling3 and
  4. Katherine Yelick4

Published Online: 27 JAN 2005

DOI: 10.1002/0471478369.ch4

UPC: Distributed Shared Memory Programming

UPC: Distributed Shared Memory Programming

How to Cite

El-Ghazawi, T., Carlson, W., Sterling, T. and Yelick, K. (2005) Work Sharing and Domain Decomposition, in UPC: Distributed Shared Memory Programming, John Wiley & Sons, Inc., Hoboken, NJ, USA. doi: 10.1002/0471478369.ch4

Author Information

  1. 1

    The George Washington University, USA

  2. 2

    IDA Center for Computing Sciences, USA

  3. 3

    California Institute of Technology, USA

  4. 4

    University of California at Berkeley, USA

Publication History

  1. Published Online: 27 JAN 2005
  2. Published Print: 13 MAY 2005

Book Series:

  1. Wiley Series on Parallel and Distributed Computing

Book Series Editors:

  1. Albert Y. Zomaya

ISBN Information

Print ISBN: 9780471220480

Online ISBN: 9780471478362



  • parallel iterations;
  • multidimensional data;
  • sequential N-queens


Work sharing is simply to make each thread able to understand its responsibilities during a parallel program. Domain decomposition typically refers to partitioning the data across the threads in a manner consistent with the duties of each thread. Coming up with effective work sharing and domain decomposition strategies requires self-awareness, i.e. each thread should be able to identify itself, e.g. using MYTHREAD, and awareness of what other threads are there to help, e.g. using THREADS. More convenient constructs to use are also available in UPC, such as upc_forall().

UPC is a locality-aware programming paradigm. Data decomposition is mainly done as a part of the declarations, and workload sharing can be easily planned in such a way that exploits data locality.