29.11.2012 Views

Compile-time Loop Splitting for Distributed Memory ... - Stanford AI Lab

Compile-time Loop Splitting for Distributed Memory ... - Stanford AI Lab

Compile-time Loop Splitting for Distributed Memory ... - Stanford AI Lab

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 2<br />

Array Management in<br />

Multiprocessors<br />

Be<strong>for</strong>e describing the details of loop splitting, this thesis presents some background<br />

in<strong>for</strong>mation on multiprocessor array management. Specifically, the multiprocessors<br />

discussed here are distributed memory machines. This section helps to give perspective on<br />

both the complexities of array references and the benefits of loop splitting in reducing<br />

these expressions.<br />

2.1 Introduction<br />

Multiprocessors are designed with the hope that many computers can per<strong>for</strong>m the job of<br />

one computer in less <strong>time</strong>. Ideally hidden from the user, a program is run on a<br />

communication network of processor-memory pairs, as seen in Figure 2-1. However, to<br />

utilize more than one processor, a system of distributing the job among the processing<br />

elements must first be devised. In the most ideal case, a load-balanced partition – an<br />

equitable division of work among all processors – is found; and a multiprocessor terminates<br />

a program in Ia€ �� the <strong>time</strong> of a uniprocessor, where € is the number of processors.<br />

However, partitioning problems, data dependencies, processor communication, and<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!