Multi-threaded components

A guide to parallel computing in Grasshopper

Overview

Grasshopper for Rhino 6 provides multi-threaded solving in specific components. Benchmarks have shown that Grasshopper can be up to 20% faster when using multi-threaded components. Results may vary as there are only specific components that can compute in parallel.

The following components have been modified to perform calculations using multiple threads.

Curve Plane Intersection Project Curve Pull Curve
Split with Brep Shatter Split with Breps
Trim with Brep Trim with Breps Area
Area Moments Volume Volume Moments
Brep Closest Point Mesh Plane Intersection Brep Line Intersection
Brep Curve Intersection Brep Brep Intersection Brep Plane Intersection
Curve Curve Intersection Curve Curves Intersection Point in Brep
Point in Breps Curve Self-Intersection Contour
Dash Pattern Divide Curve Boundary Surface

Multi-threaded components are decorated with small dots in the upper left corner to help you understand the component’s capabilities and current ‘mode’ of operation.

  • No dots : the component does not currently support multi-threaded calculations
  • One dot: the component does support multi-threaded calculations, but is currently calculating with a single thread (i.e. legacy mode)
  • Two dots: the component does support multi-threaded calculations and is solving using multiple threads.

For components that support multi-threaded calculations, the feature can be enabled/disabled using the right click context menu on the component itself.

We continue to look for components that would be useful to have multi-threaded. Join the Multi-threaded Grasshopper component discussion to participate.

Creating you own multi-threaded components in Grasshopper

Custom multi-threaded components are also possible by programmer your own components in C# or Python. for details on this read the Making Task Capable Components in Grasshopper guide