Grasshopper

algorithmic modeling for Rhino

Nik Willmore recently posted a script PointDistribution3DBoneStructure.gh, which can be found in the following thread http://www.grasshopper3d.com/forum/topics/idea-with-bone

NIk's script happens to tax the resources of my computer, such that my 4GB Geforce 760 video card, stutters along when I try to move the GH window from one monitor to the other, with ghost images remaining of its previous location for up to 2 sec.

When I close the script everything Video wise is back to normal. I also use KeyShot which is a GPU based renderer which does a reasonable job, with a 4GB Geforce 760 video to render scenes flawlessly in reasonable time.

I'm trying to determine whats causing......Running out of computer resources?

1. Is is Rhino ?
2. Is it Grasshopper ?
3. Is it Kangaroo which is a component in Nik's script ?
4. Is it a result of having too many 3rd party GH scripts installed on my system?
5. Is 8GB of ram not enough to run Rhino & GH & Kangaroo ?

Views: 1827

Replies to This Discussion

I don't know what it could be, but it's not (4). It doesn't really matter how much code is installed, it matters how much code is running. There are three things which can make an application unresponsive:

  1. It is using up all or a lot of the cycles on the app UI thread. So there's no computing power left over to handle mouse events, keyboard events and paint events.
  2. It is using up more memory than the computer physically has, so Windows starts paging (i.e. using the hard-disk as a memory space). Since disc read/write access is orders of magnitude slower than RAM read/write speed, this will slow down everything.
  3. Some other application is using a lot of computing power/memory and Windows deems that app more important than Rhino.

8GB might not be enough if Rhino needs more than 5GB or so to run. Windows will take up ~2, other apps will take up ~1 unless they are also doing heavy lifting, so you have about 5 left over for Rhino+Grasshopper+++. It is not difficult to make Grasshopper use lots of a memory, but its also not demanded. If you generate 5000 complicated Brep objects, they are going to have to be stored somewhere.

However I cannot comment from here about whether your problem is processor or memory related, or both.

Hi Kim

In addition to what David said:

1. Indeed 8Gb is the entry point these days. BTW: set swap size ~ 1.5 * available memory.

2. Game cards ARE not the same animals with CAD cards (the likes of Quadro). The quality of the driver is also critical: hard to imagine NVidia working overnight to fix "some" driver bugs due to requests from gamers. Game cards are notoriously bad in dual monitor configurations. 

3. A zillion of cores (triumph of marketing VS common sense) divided by the given clock rate ... gives you just ONE poor old core (Rhino/gh are single-threaded apps) that tries to do the job.

4. Single Xeon E5 2xxx V3 (the higher the clock the LESS the cores = better) would be my recommendation. ECC fast memory is also a must.

PS: Find a friend who operates a "loaded" H/P Z840 and test your defs.

About your point 3. - I think there is some confusion about cores and clock rate - see my reply here.

In this thread (http://www.grasshopper3d.com/group/kangaroo/forum/topics/kangamark-...) several people tested the same code on their machines and reported the results. This test was with a Kangaroo script (timing only the computation, not Rhino or Grasshopper display), but I imagine the results would be pretty similar with other types of .net scripts.

The i7 processors (in particular the Devil's Canyon generation) performed significantly better than the Xeons, (though I don't think anyone testing was on a very recent Xeon, would be interesting to see how they compare).

had some improvement (300%) on my system (HP envy laptop, 8 gb, 4 core) using an idiot package 'system mechanic' to crank clock speed, cutting longer script execution times to about 1/3

Thanks I'll have a look at system mechanic. I run CCleaner each morning, sometimes twice a day. It also cleans the registry. I don't even know if my old Core2 Quad Q6600 2.4Ghz is capable of clock speed changes

Yikes.... I don't know how I missed that thread.... I will investigate..... thanks

Clock speeds become more nebulous when you are also dealing with multiple cores. This has to do with the fact that the processor can now process multiple data threads due to the extra cores (assuming that ... blah, blah) but each of those cores will be running at lower speeds because of the thermal restrictions.

For instance, a dual core  may have base clock speeds of 3.5 GHz for each processor while a quad core processor may only run at 3.0GHz. Focusing to single core (on each of them) the dual core processor will be able to about fourteen percent faster than on the quad core. Thus, if you have a program/app that is only single threaded (99% of what's available for AEC puproses to be honest), the dual core processor is actually better. Then again, if you have something that can (?) use (??) all (???) four processors such as the notorious Nexus rendering engine (Modo/Microstation/AECOSim), then the quad core processor will actually be about seventy percent faster than that dual core processor.

But no AEC engineer worth his name cares about rendering stuff, he he.

AMD and Intel have introduced technologies that can dynamically increase the speed of a processor core to help offset these differences between the dual and quad/octa core products. For instance, Intel may have the quad core processor with a base clock speed be 3.0GHz but when only a single processor core is in use at full load, that processor core will be boosted up to 3.4GHz. This would then make the quad core processor just three percent slower than a dual core processor that runs at 3.5GHz.

In general and theoretically, a multiple core processor is a "better" choice but that does not necessarily mean that you will better overall performance.

Speaking of Intel, Intel is working on IntelSilicon photonics it might be worth waiting for. It will require an entirely new computer architecture and hardware, unlike anything we have now. Apparently to D/L a 4K movie from Netflix will take only about 1.5 seconds.

https://www.youtube.com/watch?v=Ou9AGiMvdkQ


My upgrade from 12GB to 24GB this year was life changing as I struggled with various 3D software like Grasshopper, Rhino itself with T-Splines, and Geomagic Freeform. I also upgraded to an expensive graphics card (NVIDIA Quatro K4000) that Freeform recommended but that didn't seem to help as much as the memory, especially since it's much cheaper now than ever before so I got the fastest memory I could find too, with heat sinks on it. I only have four cores (i7 @ 2.66GHz not overclocked) but software usually can't use them all anyway except in rendering. I don't even have SSD disks yet, since Windows 7 is so stable I haven't had to reinstall Windows for years which is what it would take to make me go through upgrading my disks. My single monitor is large but not high definition (La Cie 324i at 1920x1200). I have also tweaked Windows 7 to rid it of any fancy interface features, so my system looks rather old school.

Also, I'm an organic synthetic chemist by training, so my patience level is very high with continuous parameter tweaking in Grasshopper and constantly force quitting Rhino by right clicking it in the Taskbar to use "Close window" instead of the inconvenient Task Manager. I rely on the Grasshopper preference settings that turns on recovery file creation, and that system works nearly always, letting you re-open unsaved work with the Solver deactivated as an option so you can change the parameters back to mellow. So when I make things look easy, that's because compared to chemistry, merely quitting a program all day in order to change a parameter in Grasshopper, is something I hardly even notice having to do so often. It certainly bothered me early on, a lot, before I understood that Grasshopper 2 was coming one day, and that the existing program just wasn't designed to handle what it's being now taxed with.

BTW: With regard SSD's: due to a BIG O/S disk crash (on an "uncrushable" Western Digital RE series HD: the best thing out there) I had extensive talks with data retrieval gurus here and in Europe/US. All agree that SSD's are quite "vulnerable" to voltage fluctuations and recommend to put O/S in a Samsung 840 Pro/Corsair Neutron SSD (speed) and data on some RE/SE series RAID disks (reliability). All that provided that a UPS takes care of the voltage AND is working 100% correctly.

BTW: https://www.cpubenchmark.net/high_end_cpus.html

BTW: If you live in US/Canada/Australia I would highly recommend the Puget alternative (to H/P Z840/Boxx/etc):

https://www.pugetsystems.com/nav/genesis/I/customize.php#

FYI: Here is another nugget worthwhile investigating, apply for an account:

http://forums.redflagdeals.com/hot-deals-f9/

Here you get access to the lowest prices, plus customer feedback on a huge forum on various topics, related to opinions on what to buy and what not to buy ,  as well as performance of the crap customers though was a good buy.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service