I’m facing a performance issue in Grasshopper:
my definitions take a very long time to compute, even though my system shows plenty of unused CPU and RAM.
Symptoms:
CPU usage stays around 5–10%
RAM usage about 30%
Grasshopper solver is still extremely slow
From what I’ve learned, most Rhino and Grasshopper geometry operations are single-threaded, meaning only one CPU core is being used even on a modern multi-core system.
I’d like to know:
Is there any built-in or recommended way to enable or leverage multiple cores / threads in Grasshopper for heavy geometry tasks (like Brep intersections, trims, morphs, etc.)?
Are there specific components, workflows, or plugins that can take advantage of multiple cores (for example, Anemone with “Parallel” enabled, Python/C# multithreading, or Rhino Compute + Hops)?
For Brep-heavy definitions, are there best practices or optimization strategies to improve performance when multi-core usage isn’t available?
And finally — is there any official update or roadmap for Rhino 9 that includes true multi-core / multi-thread geometry processing in the Rhino or Grasshopper computation engine?
Can you post a picture of the geometry you’re trying to process - you say Brep-heavy, but it would be good to see specifics and what you’re trying to achieve (your build looks like it should be able to handle quite a bit)
Uploaded a small video, (that’s 80cm (800 mm height)) vase.
And used 3D voronoi for that voronoi pattern on surface and morphed points on surface and pulled points on voronoi surface and generated straight line. Then pipe and rectangular pipe also. ,
I’ll attach.gh file also if , may you please take a look?
Interesting - I agree on trying them as meshes - but in terms of workflow, when you’re writing the script, it would work the same if you had 10x or even 20x fewer items, this would dramatically improve performance while you’re refining the logic and once you’re done, you increase the number back to what you need.
For demanding scripts you can sometimes use a timer/anemone loop to cycle through the objects - so instead of asking for an intersection between 1 and 50k other objects, you take small batches and process them to stop your computer seizing up for 35 minutes for one operation
feel free to post the script though, we can see if there are more efficient ways to do what you’re doing
I will take look to check my logic and , I hope by using some other method will reduce computing time, and your advice to use loop is very effective. (I have to study it properly, to find out the nodes where I can apply anemone)