Next: Chapter Notes
Up: 6 Fortran M
Previous: 6.12 Summary
-
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.
-
Extend the programs developed in Exercise 1 to provide a
2-D decomposition of the principal data structures.
-
Complete Programs 6.4 and 6.5 and conduct
experiments to study their performance.
-
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.
-
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.
-
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 .
-
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.
-
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.
-
Extend Program 6.10 to use INTENT declarations to
pass input and output arrays to and from subdomain processes.
-
Develop a program that receives data of different types from two
sources, without busy waiting. Hint
: Use additional
channels to communicate type information.
-
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.
-
Extend Program 6.13 to implement read requests.
-
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.
-
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.
-
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.
Next: Chapter Notes
Up: 6 Fortran M
Previous: 6.12 Summary
© Copyright 1995 by Ian Foster