algorithmic modeling for Rhino
Following a few recent discussions:
building-a-computer-around-kangaroo-physics-grasshopper
high-performance-computer-for-gh
hardware-requirements-and-suggestions
and inspired by the example of Holomark for Rhino, this is a first go at a very simple tool to get an idea of how fast different computers are at performing the sort of calculations used in Kangaroo, with the aim of informing those buying or upgrading their machines.
If you could take a couple of minutes to download and run this definition (after closing other running applications), then post here the result and your PC specs, hopefully we can start building a basic picture of what effect different hardware really has on the speed Kangaroo runs.
Most of the information can be found in the System page of Control Panel.
RAM speed can be checked in your BIOS, or with a tool like CPU-Z (note that the reported frequency from this should be doubled to get the actual RAM speed rating - eg if the frequency is 800MHz you should write DDR3-1600. It's confusing I know - see some discussion of this here), or by searching online for the specs of your PC model number.
This definition is purely testing the speed of the internal physics calculation, not display, so graphics-cards are irrelevant.
For now this is just to get a single general measure of overall Kangaroo speed, but it might also be interesting later to run a variety of tests to see how the speed varies with the size and complexity of simulation.
Of course a way of benchmarking general Grasshopper performance would be very nice to have as well, but would involve a lot more variables, and I'd be interested if anyone has ideas about how that could work.
Note - I posted a couple of versions of this earlier with various errors that were causing incorrect results. If you downloaded the earlier KangaMark01.gh or KangaMark02.gh file, please disregard that and any results from it and use the one posted here below:
Tags:
KangaMark Score: 98
PC model: Dell Precision M-4700
Operating system: Windows 7 Enterprise
Processor model and speed: Intel core i7-3520M @ 2.90 GHz
Amount and speed of RAM: 8 GB DDR3 @ 1600 MHz
KangaMark Score: 94
PC model: Dell Inspiron 5520 (laptop)
Operating system: Windows 7 Home Premium
Processor model and speed: Intel core i7-3612QM @ 2.10 GHz
Amount and speed of RAM: 8 GB DDR3-1600
KangaMark Score: 98
PC model: @xi MTower
Operating system: Windows 7 PROFESSIONAL
Processor model and speed: Intel core i7-x990 @3.47 GHz
Amount and speed of RAM: 24 GB DDR3 @ 1333 MHz
KangaMark Score: 145
PC model: Custom
Operating system: Windows 7 Ultimate
Processor model and speed: Intel core i7-4770 @ 3.40 GHz
Amount and speed of RAM:16 GB DDR3 @ 1600 MHz + 16 Gb DDR3 @ 1333 MHz
Data is very unstable, restart the computer scoring 120, hovering between 139 reboot
KangaMark Score: 130
PC model: maxdata
Operating system: Windows 7, 64 bit
Processor model and speed: Intel i7-4770 CPU @ 3.4 GHz
Amount and speed of RAM: 8.00 GB DDR3-1600 MHz
I ran this test a couple times in a row and also noticed that when CPU heavy Keyshot was open, the score was significantly lower, around 50 - 60...
KangaMark Score: 70
PC model: Custom Desktop
Operating system: Windows 7 Professional
Processor model and speed: AMD FX(tm)-8350 Eight-Core Processor @ 4.00GHz
Amount and speed of RAM: 16 GB DDR3 - 1600 Mhz
Hi Daniel,
nice Idea! This machine is pretty new and doesn´t seem to be to bad when looking at the specs. It also hit a decent scoring at Holomark2 (34512). Can you tell me why the KangaMark03 score is so low?
Best,
Phillip
Philip.
Not sure if this is relevant in your case. (Text copied from the 'hardware-requirements-and-suggestions' post at top of page).
- Processors are tricky, so pay attention. It is important that you get as much bang for your buck as possible since computational speed is often a bottleneck. But remember that Grasshopper and (most of) Rhino are single-threaded applications* and therefore do not benefit from multiple cores. Do not be bamboozled by advertised processor speeds as those speeds may be given as a sum-total over all cores. I.e. an 8 core processor that has a total clock-rate of 6GHz will only give you 6/8 = 0.75GHz per core. If all you care about is Rhino and Grasshopper, you'd be better off getting a dual core @ 2GHz or even a single core at 1.8GHz
Hi Nick,
Indeed I missed that and I think this is the case. Thanks for pointing at it!The Holomark score confused me a little, since I thought Rhino itself is mostly single thread too and so I expected a better performance.
Well, that leaves me waiting for GH2...
Thanks ans Best,
p
I actually think the text in bold quoted above is incorrect, or at least rather misleading. A processor listed as "4-core 3GHz" has 4 cores, each running at 3GHz, and when AMD or Intel, or any even semi-reputable seller lists the chip they do it that way, not as a sum-total.
The way the number of physical cores vs logical cores is referred to does seem to be a bit less consistent though. Intel use hyper-threading to make each core 'sort of' act as 2 cores (the details here get very technical, and I'm just reporting here what I can figure out from a bit of online reading). So a dual-core Intel chip with hyper-threading on will show up as 4 CPUs in your performance monitor. I think depending on the scenario, hyper-threading can sometimes almost effectively double the performance relative to the number of physical cores, but in other cases it can actually make things slower.
Now AMD don't use hyper-threading, but they do have something a bit similar. Looking it up, apparently in the 8350 that Phillip lists above, there are 4 'modules', each with 2 cores on, sharing some resources, so it won't act the same as 8 separate cores on an Intel chip.
There is also a lot more to effective speed than just GHz, and 2 processors with the same clock speed and number of cores could still perform very differently, depending on their architecture and the size of the different caches (Anandtech has fascinating in depth technical reviews of processor models, though mostly way over my head).
Kangaroo2 is multi-threaded, specifically using the Task Parallel Library in .NET 4 and higher. This library is supposed to automatically adapt to make the best use of the number of available processors. However, managing this concurrency has its own overhead, and can sometimes be counter-productive. Depending on things like the size and nature of the task, and the details of the processors, something like a simple Parallel.For loop is sometimes faster, but sometimes slower. In the specific example in this KangaMark test, I was finding that having parallelism on was slightly improving the speed on my dual-core (2 physical, 4 logical) laptop, but this could vary with other machines. I suppose the test could be improved to report both single and multi-threaded performance.
Also bear in mind that there is probably still plenty of room for improvement in the way Kangaroo uses concurrency, and I would caution against placing too much weight on the results listed here.
Trying to understand the benefits of different hardware can get very complicated, and I don't think we all need to become experts in chip design, but if we can get a general idea of the effect on Rhino/Grasshopper/Kangaroo of things like AMD vs Intel, i7 vs Xeon, RAM quantity vs speed, hopefully we can help people prioritize and get better value for their money.
KangaMark Score: 122
PC model: Dell Precision T3610
Operating system: Windows 7 Pro
Processor model and speed: Intel Xeon E5 1620 v2 @ 3.70 GHz
Amount and speed of RAM: 64 GB DDR3 @ 1600mhZ
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by