| OCR Text |
Show 28 migrate to any free process, reducing locality. The rapid growth of tasks also presents problems when these tasks must be killed [5] [22]. The large-grained task approach underlies all other published designs. If all solutions to all goals are required, then each branch of the search tree below a choice point can be thought of as an independent search with its own top-level goal, since no synchronization is needed. Each task, then, can be treated like a complete logic program description by the process to which the task migrates. The independence of the tasks is only a useful abstraction, since tasks arising from the same choice point may share variable bindings created earlier in the search tree. 2.3.3 The Environment/Migration Trade-off The environment method and the task migration strategy are intimately connected. Typically, determining the correct binding for a variable will be hastened if the environment contains fewer bindings. The number of bindings for a variable in an environment can be made smaller by copying more of the existing environment when migrating a task. At one extreme are schemes which either re-create or copy the complete environment [1] [30]. In these schemes, there is at most one binding for each variable, so no searching is required. At the other extreme are schemes which rely on shared data structures containing potentially many bindings for each variable. These schemes require less work when migrating tasks, but pay a time penalty for variable accesses. The choice between fast access and fast migration is not an easy one. Variable accesses are very frequent and must be as fast as possible. On the other hand, memory is always limited, making replicated data structures unattractive. Furthermore, schemes relying on copying tend to require increasing amounts of work as execution progresses. Data collected for a system based on copying [44) shows that the frequency of task migrations increases dramatically near the end of execution. There is less and less work to do, and each ensuing task is shorter. These shortlived tasks require ever-increasing amounts of copying to create their environments. |