algorithmic modeling for Rhino
During processing some calculation with kangaroo I noticed that I have problem with my Computer.
In case of a retractable roof, by dynamic relaxation it works in generally fine with few elements (e.g. only fabric between 2 radial cable). But if I try to simulate a completely whole structure like picture below + if I trying to model a material that has more degree subdivision + adding diagonals (as resistance to shear deformation which causes the creases like Daniel Pikels example of tablecloth drop), then I have huge problem to deal with my hardware.
(Roof geometry can be completely asymmetrical, so let’s assuming that we can’t array the resulting geometries!)
There are some discussions about how to increase the processing power of grasshopper:
As I know that the GH is single threaded, we could over clocking the CPU + give lot of RAM.
I am curious if Kangaroo and other Apps are following the same performance-rule (single thread) like Rhino/ G.H? And what would be the key-feature to increase the power of Rhino/GH/Kangaroo in order to process the case I mentioned before (completely retractable roof)?
- Which level of CPU? Or constraint of CPU over clocking when necessary and capacity of RAM)
- How fine tuning my PC for best performance? (Parallel computing, c-flex…)
- is GPU a matter? (E.g. in Animation standard: Nvidia CUDA Quadro 4000+)
Or probably just a suggestion of workstation ;-)
Sorry I am not expertise of computer technical…
There isn't much you can do, in fact there's almost nothing you can do. As mentioned, Grasshopper does not execute components in parallel, but that wouldn't help anyway because if it did then Kangaroo would still just run the entire simulation on a single thread. Every component can decide whether or not it wants to run its logic on multiple threads. Grasshopper won't stop it from doing so. I believe the current implementation of Kangaroo is single threaded, but I could be wrong about that.
Since processors aren't getting faster any more, you can't just go and buy a newer processor and make things go faster. These days, when you buy a newer processor what you get instead is more logical cores, which isn't going to help you in the slightest.
The only thing you can do is buy faster RAM (more RAM probably doesn't help, but faster RAM will). However I think the cost/benefit ratio on this is very poor, you'll end up spending a lot of money and not getting much in return.
Until the software you use can actually handle multithreading you're stuck with your current speed.
Thank you for share the Information, it help a lot!
I'm no expert, but I noticed you mentioned having 4G of RAM. This might be a bottle neck, especially on a Win7 system. You might want to add more RAM (8 or 12Gb should be sufficient)
Also if I'm not mistaken using a 64bit version helps.
thanks omar! the information is really useful!