Abstract :
Symbolic applications such as expert systems, theorem provers, and computer algebra exhibit dynamic, tree-structured behavior with respect to control and data structures. This is why it is difficult to parallelize a program and get it running efficiently on a parallel computer, especially one with distributed memory. This paper introduces a semi-automatic mapping environment providing a set of support tools, intended for application to large, real-life programs. Mapping can perform adaptive granularity control, dynamic load balancing, and scheduling on parallel programs with dynamic data and control behavior, providing a set of strategies for all components. A set of mapping rules are extracted, describing when which strategy is appropriate. The approach systematically selects and configures its strategies to suit the characteristics of the application and is thus superior to a universal heuristic.