This paper studies scheduling of malleable fork-join tasks. In our scheduling problem, each task can be partitioned into multiple sub-tasks, and the sub-tasks are scheduled independently. The optimal number of sub-tasks is determined during scheduling simultaneously. This paper formulates the scheduling problem as an integer linear programming problem.
Task scheduling has a significant impact on multicore computing systems. This paper studies scheduling of data-parallel tasks on multicore architectures. Unlike traditional task scheduling, this work allows individual tasks to run on multiple cores in a data-parallel fashion. In this paper, the inter-task communication overhead is taken into account during scheduling. The communication happens if main threads of two tasks with data-dependencies are mapped onto the different processors. This paper proposes two methods for data-parallel task scheduling with communication overhead. One is two-step method, which schedules tasks without communication and then assigns threads in the task on cores. The other is integrated method, which performs task scheduling and thread assignment simultaneously. Both of the two methods are based on integer linear programming. The proposed methods are evaluated through experiments and encouraging results are obtained.
This paper proposes an energy-aware scheduling of malleable fork-join (MFJ) tasks on heterogeneous multicores. This work allows a task to be split into multiple sub-tasks for fork-join parallel execution. The number of the sub-tasks is determined simultaneously with scheduling. Our scheduling technique aims at the minimization of energy consumption under a deadline constraint. In addition, this paper proposes a technique for simultaneous scheduling and core-type optimization. The technique optimally decides types of cores (to be either "big" or "little") at the same time as MFJ task scheduling in order to further reduce energy consumption.
With the increasing demand for high-performance computing, multicore architectures became appealing in various application domains. In order to exploit the parallelism of the multicore architectures, task scheduling has become more important than ever. Classical multicore task scheduling assumes that each task is executed on one of the cores. However, many tasks in modern applications have inherent parallelism and can be multi-threaded. A task is partitioned into threads which can be executed on multiple cores in a fork-join fashion. A multi-threaded task is called malleable if the number of threads is flexible and is determined at the same time as task scheduling. This paper proposes multicore scheduling methods for malleable tasks. Given a set of dependent tasks in the form of directed acyclic graph and homogeneous multiple cores, the proposed methods decide the number of threads for each task and schedule the threads on the multicores simultaneously, with the goal of minimizing the overall schedule length. The proposed scheduling methods are based on constraint programming. Experimental results show that the proposed methods outperform state-of-the-art work which is based on integer linear programming.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.