org.apache.sysds.runtime.controlprogram.parfor

## 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 Summary

    Constructors
    Constructor and Description
    `TaskPartitionerFactoring(long taskSize, int numThreads, String iterVarName, IntObject fromVal, IntObject toVal, IntObject incrVal)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<Task>` | `createTasks()` Creates and returns set of all tasks for given problem at once.
    `long` | `createTasks(LocalTaskQueue<Task> queue)` Creates set of all tasks for given problem, but streams them directly into task queue.

    - ### Methods inherited from class org.apache.sysds.runtime.controlprogram.parfor.TaskPartitioner

      `getNumIterations`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TaskPartitionerFactoring

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

  - ### Method Detail

    - #### 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:
        ?

Copyright © 2021 The Apache Software Foundation. All rights reserved.