### D.2.13 tasks_lib

Library:
  tasks.lib
Purpose:
  A parallel framework based on tasks

Author:
  Andreas Steenpass, e-mail: steenpass@mathematik.uni-kl.de

Overview:
  This library provides a parallel framework based on tasks. It introduces a new Singular type `task`; an object of this type is a command (given by a string) applied to a list of arguments. Tasks can be computed in parallel via the procedures in this library and they can even be started recursively, i.e. from within other tasks.

  tasks.lib respects the limits for computational resources defined in resources_lib, i.e., all tasks within the same Singular session will not use more computational resources than provided via resources.lib, even if tasks are started recursively.

  The Singular library parallel_lib provides implementations of several parallel 'skeletons' based on tasks.lib.

Procedures:

> D.2.13.1 createTask |  | create a task
> D.2.13.2 killTask |  | kill a task
> D.2.13.3 copyTask |  | copy a task
> D.2.13.4 compareTasks |  | compare two tasks
> D.2.13.5 printTask |  | print a task
> D.2.13.6 startTasks |  | start tasks
> D.2.13.7 stopTask |  | stop a task
> D.2.13.8 waitTasks |  | wait for a certain number of tasks
> D.2.13.9 waitAllTasks |  | wait for all tasks
> D.2.13.10 pollTask |  | poll a task
> D.2.13.11 getCommand |  | get the command of a task
> D.2.13.12 getArguments |  | get the arguments of a task
> D.2.13.13 getResult |  | get the result of a task
> D.2.13.14 getState |  | get the state of a task

See also: parallel_lib; resources_lib.

User manual for Singular version 4.4.1, 2025, generated by texi2html.