---
name: "weaver"
section: "1"
platform: "linux"
package: "coop-computing-tools"
version: "1:7.14.5-1+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/weaver"
---

# weaver(1)

workflow engine for executing distributed workflows

## NAME

**weaver** - workflow engine for executing distributed workflows

## SYNOPSIS

FCweaver \[options\] *\<weaverfile\>*FT

## DESCRIPTION

**Weaver** is a high level interface to **makeflow**. A **weaver** input file is written in **python**, with the definition of functions to be applied on sets of files. **weaver** interprets this input file and generates a workflow specification that can be executed by **makeflow**. This allows an straightforward implementation of different workflow execution patterns, such as MapReduce, and AllPairs.

```

```

-

  				      /--------				    +-+ Python \|\
   				    \| ---+----/ +---------------------------------+ \|     \| Generate DAG \|	      Weaver		  +-+     v +---------------------------------+   /-------\|	     Makeflow		  +---+  DAG  \| +--------+-----------+-----+------+   -------/ \| Condor \| WorkQueue \| SGE \| Unix +-+     \| Dispatch Jobs +--------+-----------+-----+------+ \|     v\
   				    \| /-------				    +-+ Jobs  \|\
   				      \-------/

## OPTIONS

By default, running FCweaverFT on a *\<weaverfile\>* generates an input file for FCmakeflowFT, *\<Makeflow\>*, and a directory, *\<\_Stash\>*, in which intermediate files are stored.

General options:

- **-h**

  Give help information.

- **-W**

  Stop on warnings.

- **-g**

  Include debugging symbols in DAG.

- **-I**

  Do not automatically import built-ins.

- **-N**

  Do not normalize paths.

- **-b *\<options\>***

  Set batch job options (cpu, memory, disk, batch, local, collect).

- **-d *\<subsystem\>***

  Enable debugging for subsystem.

- **-o *\<log\_path\>***

  Set log path (default: stderr).

- **-O *\<directory\>***

  Set stash output directory (default *\<\_Stash\>*).

  Optimization Options:

- **-a**

  Automatically nest abstractions.

- **-t *\<group\_size\>***

  Inline tasks based on group size.

  Engine Options:

- **-x**

  Execute DAG using workflow engine after compiling.

- **-e *\<arguments\>***

  Set arguments to workflow engine when executing.

- **-w *\<wrapper\>***

  Set workflow engine wrapper.

## EXIT STATUS

On success, returns zero.  On failure, returns non-zero.

## EXAMPLES

**Weaver** expresses common workflow patterns succinctly. For example, with only the following three lines of code we can express a **map** pattern, in which we convert some images to the jpeg format:

```

```

-

  convert = ParseFunction('convert {IN} {OUT}') dataset = Glob('/usr/share/pixmaps/\*.xpm') jpgs    = Map(convert, dataset, '{basename\_woext}.jpg')

Please refer to FCcctools/doc/weaver\_examplesFT for further information.

The Cooperative Computing Tools are Copyright (C) 2022 The University of Notre Dame.  This software is distributed under the GNU General Public License.  See the file COPYING for details.
