| OCR Text |
Show 103 cells themselves are almost entirely local. 1t is possible that many references to nonvartable values are non-local. Such references do not require the examination of value cells to determine their value. 5.1.6 Processor UtiUzatlon Since there is one Boplog process per Butterfly processor node, processor utilization is the same as process "busy time". In an ideal parallel implementation, each process would spend all of its cycles performing useful work: executing WAM instructions, dereferenctng vartables, migrating choices, and so on. In practice, this is never possible, since there are always sequential execution segments which force some processes to await the availability of work. For example, execution must begin with some single process, which runs sequentially until other processes can migrate work. Similarly, when program execution is nearly complete, no further work is generated, so some processes will be unable to perform useful functions. These "ramp-up" and "ramp-down" times are short for the OR-parallel programs for which Boplog has been used so far. When a process is idle, it executes no WAM instructions. It spends its cycles • searching for more work, • testing for termination, and • attempting to recover shared data areas. The inclusion of shared-space recovery in the list of idle tasks is questionable, since this recovery is vital for large programs and for the detection of program completion. Table 8 shows the amount of time spent performing each of these tasks and the percentage of time they take collectively. 5.1. 7 ScaUng Considerations How well the model scales as processor nodes are added can be assessed by running the same program on different numbers of nodes (different numbers of processes) and noting changes in performance statistics. So far, Boplog has only been run on a 16-node machine. Whether the performance continues to change in |