Self-Organizing Task Scheduling for Parallel Execution of Logic Programs