| OCR Text |
Show 104 rear left righ~_ .. ·· front Figure 8.14. The Auxiliary Panels for a Processor in a Mesh. • the front auxiliary panel is used to receive the rear side ordinary panel of Pi,j - 1; • the rear auxiliary panel is used to receive the front side ordinary panel of Pi,j+I, After all these auxiliary panels receive their data, the grids in Pi ,j can be similarly updated as in the sequential code (with different ranges for index i and index j ). We thus focus on efficient methods for exchanging panels with surrounding nodes in the following . The exchange of panels can be carried out by first in rows and next in columns. More precisely, we have Ny rows of processors and each row of processors is connected as a linear array (see Fig. 8.15 (a)). This means that for each row of processors, we can use a similar communication code as in Fig. 8.3 to update the left and the right auxiliary panels. Moreover, the exchange of panels also needs only four communication steps since each row can carry out its own communication independently. Similarly, we view each column as a linear array as shown in Fig. 8.15 (b)); then, the front and the rear auxiliary panels can also be updated in four communication steps. As a result, the four auxiliary panels in each processor can be updated in total eight communication steps. For sending out all grid data to the host computer, we can use a two-level pipeline as shown in Fig. 8.16 (a) instead of a linear array embedded in the mesh as shown in Fig. 8.16 (b). The two-level pipeline contains Nx parallel pipelines, which are formed by the columns of the mesh, and a pipeline in the first row which is connected to the host |