Class TaskPartitionerFactoring

java.lang.Object
org.apache.sysds.runtime.controlprogram.parfor.TaskPartitioner
org.apache.sysds.runtime.controlprogram.parfor.TaskPartitionerFactoring
Direct Known Subclasses:
TaskPartitionerFactoringCmax, TaskPartitionerFactoringCmin

public class TaskPartitionerFactoring extends TaskPartitioner
This factoring task partitioner virtually iterates over the given FOR loop (from, to, incr), creates iterations and group them to tasks. Note that the task size is used here. The tasks are created with decreasing size for good load balance of heterogeneous tasks. See the original paper for details: [Susan Flynn Hummel, Edith Schonberg, Lawrence E. Flynn: Factoring: a practical and robust method for scheduling parallel loops. SC 1991: 610-632]
  • Constructor Details

    • TaskPartitionerFactoring

      public TaskPartitionerFactoring(long taskSize, int numThreads, String iterVarName, IntObject fromVal, IntObject toVal, IntObject incrVal)
  • Method Details

    • createTasks

      public List<Task> createTasks()
      Description copied from class: TaskPartitioner
      Creates and returns set of all tasks for given problem at once.
      Specified by:
      createTasks in class TaskPartitioner
      Returns:
      list of tasks
    • createTasks

      public long createTasks(LocalTaskQueue<Task> queue)
      Description copied from class: TaskPartitioner
      Creates set of all tasks for given problem, but streams them directly into task queue. This allows for more tasks than fitting in main memory.
      Specified by:
      createTasks in class TaskPartitioner
      Parameters:
      queue - queue of takss
      Returns:
      ?