| OCR Text |
Show 58 the reference and the referenced value cell stlll may be efficient. The number of bindings made to a particular variable is gen erally rather small; thus a method whose performance degrades with the number of bindings may still perform well in general. Finally, data collected from a multiprocessor implementation of another multi-sequential system indicate that the frequency of task migration increases dramatically near the end of program execution (for "well-beh aved" problems with near-uniform branching) [44]. In addition. recent evidence suggests that many branches of search trees are very short; the branches fail quickly [7]. These data suggest that the binding method should require little time to initialize a new branch search. These generalized obsetvations support a belief that we should strive to obtain a method in which • accesses to local value cells (cells for variables created by the accessing process) are fast, • a small time penalty is permissible for dealing with remote value cells (cells for variables created by other processes). • initializing new branch searches is fast, and • the access time for a specific value cell of a variable is proportional to the number of bindings, with some upper bound for the case where there are many bindings. The studies from which the preceding data is drawn are insufficient to support the design decisions incorporated in Boplog. All but one are derived from simula-tions on uniprocessors, and the parallel study [44] was performed on a custom architecture, using interpreted rather than compiled code. None of the studies in-valved a system based on the WAM, and in particular they did not use WAM-style indexing to avoid unnecessary unification attempts. These studies, however, represent the best available data are are therefore used here as the basis for Boplog's design. |