[DBPP] previous next up contents index [Search]
Next: Chapter Notes Up: 6 Fortran M Previous: 6.12 Summary


  1.   Complete Programs 6.10 and 6.11. Modify each program to allow for fixed instead of periodic boundary conditions. Implement them on a parallel computer, and compare their performances with those predicted by the performance models developed in Chapter 3.

  2. Extend the programs developed in Exercise 1 to provide a 2-D decomposition of the principal data structures.

  3. Complete Programs 6.4 and 6.5 and conduct experiments to study their performance.

  4. A disadvantage of Program 6.4 is that a worker is idle while waiting for a task to arrive from the manager. This problem can be avoided by having the worker generate a request for the next task before processing the task just received. Write a variant of Program 6.4 based on this idea. Compare the performance of the two programs.

  5. Design and implement a decentralized variant of the manager/worker structure described in Example 6.4. Design and carry out experiments to determine when this code is more efficient than the centralized code presented in the text.

  6. Write programs that can be used to quantify process creation and communication costs on a uniprocessor and on a networked or parallel computer system. Conduct experiments to measure these costs, and obtain estimates for and .

  7. Write programs that implement two-way communication (a) by using a pair of channels and (b) with a single channel and dynamically-created reply channels. Compare the performance of the two programs on a parallel computer. Draw conclusions regarding the relative costs of the two mechanisms as implemented in your FM compiler.

  8. Implement a variant of Programs 6.4 and 6.5 in which dynamically created reply channels, rather than a static network of reply channels, are used to return tasks to workers.

  9. Extend Program 6.10 to use INTENT declarations to pass input and output arrays to and from subdomain processes.

  10. Develop a program that receives data of different types from two sources, without busy waiting. Hint : Use additional channels to communicate type information.

  11. Show how the functionality provided by the PROBE statement can be implemented by using a merger. Hint : A process sends a distinguished message to itself when it wants to check for pending input.

  12. Extend Program 6.13 to implement read requests.

  13. Complete Program 6.12, extend it to support message tags (Chapter 8), and use the resulting program to implement the symmetric pairwise interactions algorithm of Section 1.4.2.

  14. Using the code in Programs 6.10 and 6.11 as a basis, implement a hypercube communication template (see Chapter 11). Use this template to implement simple reduction, vector reduction, and broadcast algorithms.

  15. Construct an FM implementation of the tuple space module described in Section 4.5. Use this module to implement the database search problem described in that section.

[DBPP] previous next up contents index [Search]

© Copyright 1995 by Ian Foster