
5.6 Implications for Software 359
6 IMPLICATIONS FOR SOFTWARE
So far, we have looked at high-level architectural issues for bus-based cache-
coherent multiprocessors and at how architectural and protocol trade-offs are
affected by workload characteristics. Let us now come full circle and examine how
the architectural characteristics of these small-scale machines influence parallel soft-
ware. That is, instead of keeping the workload fixed and improving the machine or
its protocols, we keep the machine fixed and examine how to improve parallel pro-
grams. Improving synchronization algorithms to reduce traffic and latency was an
example of this