Multi-threaded components

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 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.

https://developer.rhino3d.com/images/gh-multi-threaded.png
  • 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