Check out this content on our new Help site.

Alteryx Engine and AMP: Main Differences

In the first article we have covered what is the Alteryx Engine and the new Alteryx Multi-threaded Processing (AMP). Now let’s go deeper into the main differences between the two.

Data Processing Differences

The original engine architecture allows for a single-threaded process, where your data are processed record-by-record, the records are processed sequentially. On the other hand, the new AMP concept allows for massively multi-threaded processing. Records process in 4Mb packets for a faster run time, and are processed out of order.

Output Differences

Several tools might output records in a different order than the original engine when running a workflow with the AMP engine. Some of those tools include the following:

  • Cross Tab
  • Dynamic Input
  • Fuzzy Match
  • Join: The records come in a deterministic order, but based on a hash of the join fields, not sorted on the join fields
  • Join Multiple
  • Poly Build
  • Running Total
  • Sort
  • Tile
  • Union
  • Unique

Specific functionality or configuration that has not been converted to AMP reverts to the original engine tool to work.

If you have questions as to which tools might have been converted to AMP, see: Tool Use with AMP.

Read Performance

A .yxdb file written with the AMP engine will read in faster than a .yxdb written with the original engine.

The .yxdb file written with the original engine will be read slower with AMP enabled. The formats are still compatible with each other.

Use .csv and .yxdb files with AMP - they both support multi-threaded, read in data.

Text Input Tool and AutoField

The original engine selects minimum possible size of string. For example for string “Abc”:

Type  | Size |

String | 3    |

While AMP selects maximum possible size of string:

Type    | Size       |

V_String | 2147483647 |

In case of integers, original engine targets minimum possible size and will select Byte if we have numbers in range (0;255). AMP selects int32 to ensure there will be space for downstream operations.

Parallel Branch Execution and the Tool Run Order

Some workflows read from a file and then write back to it. This requires sequencing to ensure that the read is complete before the write can start. Similarly, a workflow that wants to write several sheets in one .xlsx file needs to write the sheets one at a time. Alteryx Designer provides a Block Until Done tool to help partition the work into phases that won’t get in each other’s way.

When working on a workflow with multiple branches (largely separate streams from inputs to outputs), place the BUD tool in the workflow branch with the lowest numbered Input tool ID. This ensures every subsequent branch waits to run until the previous branch is done and the tool works as expected.

With the AMP engine, where the workflow processing is multi-threaded, the Block Until Done (BUD) tool functionality is replaced by the new Tool Run Order macro. When the BUD tool is present in the workflow, all tools get a runOrder ID along with the currentRunOrder ID present in the scope of workflow. Only the tool with ID lower or equal to the currentRunOrder ID is executed.

Available Functionality

For more information regarding specific tool functionality, see: Tool Use with AMP.