Is Dynamo multi-thread or multi-core, or both?


#1

Just wondering whether Dynamo supports (or will support) concurrency in any way.


#2

Hi Santiago,

Like some many answers about software: “it depends”.

Just to clear up a bit of terminology. Multi-core is usually used to refer to hardware. The majority of computers that Dynamo will be running on are multi-core. Multi-threading is a software technique that is used to allow something to take advantage of a multi-core hardware.

The internals already use some multi-threading. There is an internal design to reliably support very widespread multi-threaded execution, but it isn’t turned on for a few reasons. We’re chasing down some stability bugs with the engine right now, and multi-threaded bugs are hard to deal with, so we’ve opted for single threading for now.

Second - because of something called Amdahl’s law (http://en.wikipedia.org/wiki/Amdahl’s_law) there isn’t much point in multi-threading the fast part of a program if the slow part is single threaded. Right now, we can only talk on one thread to Revit.

So - a summary would be that Dynamo already uses multi-threading where it makes sense, our architecture allows us to use a lot more of it, but right now there are some limitations.

Does that answer your question?


#3

Thanks for this quite interesting information. ASM + DS make the new Dynamo a rather powerful and convenient tool for workflows that involves large amount of elements. I mean hundreds if not thousands of geometrical and solid operations. So It would be great if the multi-thread capabilities are available at some moment. Maybe they are not going to help a lot in the exchange with Revit, but probably quite a bit when you are building the geometry mostly in Dynamo. And obviously it would be great for the stand alone version.


#4

Hello Luke, many thanks for the explanation.

As models get larger and more complex, I feel the need to understand better the matters of parallel computing, which are brand new to me.

I also see a growing demand for real-time and near real-time performance of computational models, for instance in business development within the AEC industry.

I came across an article: http://isicad.net/articles.php?article_num=16761

Which appears to be fairly speculative, and more related to the CAM world, but brings-up some interesting points nonetheless

If the Autodesk Core kernel is updated to become useful for applications like architectural concept design, then I’d be very interested in trying this out through Dynamo.

Would this be available through Dynamo’s Zero Touch Import functionality?