Looking for thoughts on potential RAM bottleneck...

Albionm00n

Reputable
Jan 31, 2016
462
1
5,165
Greetings!

I have been absent for several months from the forum, so Hello and Happy Summer everyone!

OK, my question is about cpu/ram ratio, but not in a general sense. I need more minds on the math side to double check my thoughts. I will attempt to be succinct:)

I am currently designing my next workstation and have flipped between a dual processor system which is a larger footprint than I desire, but easily packs the necessary horse power, or a high core count single processor system that would give me the 'potential' horse power I need, but also in a footprint that I can happily live with in my current space.

I have researched deeply into the programs I use (Sketchup for drawing, Raylectron for rendering), and have watched the usage on my current machine (a wonderful old 2c/4t laptop) and think I understand the usage of core/RAM for my work scenario. What I am unclear on is if my thoughts/math are flawed regarding this usage in terms of scaling.

Sketchup is quite mild in terms of core requirements and demand on processing, but Raylectron will use every core I can throw at it. In my current system (i5-2410M/8gig RAM) it uses all 4 threads and ~6 gig of RAM while (very slowly :p) rendering. This appears to be a ~50% delta increase when comparing RAM to cpu usage: 6 is a 50% increase over 4 if my math is correct...

So, in terms of scaling...I was considering the potential of going with a mITX setup just to keep it nice and small, with the new E5-2660 v4 14c processor. The only mb out there for this size/socket type is the ASRock X99E-ITX/ac Mini ITX LGA2011-3 Narrow Motherboard, which only supports 32 gig of RAM. If my math is correct for core/RAM usage for my work, a 14 core processor is going to need around 42 gig of RAM minimum to cover the 50% delta: 28 threads + 14 (50% increase) = 42.

So it looks like the mITX will cause a potential bottleneck in performance at the RAM end of things if I go this route, but I also know that there are a heck of a lot of folk here that are faaaar smarter than I am on this stuff, and I want to double check my thinking.

I would love to go with a tiny build, but ultimately performance and efficient workflow are the most important considerations for me.

I truly appreciate any thoughts you all may have!!!
 
Solution
The math is correct, if Sketchup uses 1.5GB of RAM per thread as you indicate, with 28 threads you would need 42GB. It would likely be a little less than that, but not much (why a little less? I presume that app uses 6GB in total, that is counting both what the threads need and what the program itself occupies in memory. Considering it takes 6GB, it's probably safe to assume that the threads count for most of it, but if say the threads were only using 5.5 GB of those 6GB, so that each thread uses 5.5 / 4 = 1.375GB, in the end you would "only" need 28 x 1.375 + 0.5 = 39GB).

Now this all depends on how linearly that scales, which is what i don't know and why i refrained from giving a non-informed opinion: does it really work that...
There are also mATX boards, they are not that much bigger than your chosen mITX format, and can accept 4 RAM sticks, thus doubling the total RAM to 64 GB. I have no idea of rendering and its RAM needs, i'm not quite sure things scale so linearly as you put it, but if your concern is that 32GB may not be enough, pick a microATX board and slap 64GB on it :)
 

Albionm00n

Reputable
Jan 31, 2016
462
1
5,165


Hello Blas and thank you for your thoughts! I have considered an mATX, though the cases for them are still large in comparison. I am open to many form factors, but am curious about my thoughts on the math regarding my usage scenario to see if I can actually get away with a successful mITX build or if I really need to just go with an mATX, or full ATX for a dual processor system..I have at least 25 different parts lists on pcpartpicker ranging from mITX to full SSI EEB that I believe will work for my needs, but the mITX appears to give a limitation that I am curious if my math is correct on is all. If I can build small, I will...if not, so be it:)
 
The math is correct, if Sketchup uses 1.5GB of RAM per thread as you indicate, with 28 threads you would need 42GB. It would likely be a little less than that, but not much (why a little less? I presume that app uses 6GB in total, that is counting both what the threads need and what the program itself occupies in memory. Considering it takes 6GB, it's probably safe to assume that the threads count for most of it, but if say the threads were only using 5.5 GB of those 6GB, so that each thread uses 5.5 / 4 = 1.375GB, in the end you would "only" need 28 x 1.375 + 0.5 = 39GB).

Now this all depends on how linearly that scales, which is what i don't know and why i refrained from giving a non-informed opinion: does it really work that straightly, 1.5GB per thread no matter how many threads? If so, the math is correct no doubt.
 
Solution
If you disable all but one thread in the BIOS, and launch a render, you will be able to see how much memory is needed for one thread, and we know how much is needed for 4 threads, we will be able to calculate more exactly what 28 threads will require (afterthought)
 

Albionm00n

Reputable
Jan 31, 2016
462
1
5,165


:) "only" 39GB. Thank you for the more specific math. I was rounding up from about 5.75GB usage and I figured the OS and background processes were using their share, so it is probably more like 5GB for the render usage. This results in a 25% delta: 28 + 7 = 35GB...Still above the 32 limit. Yeah, I had a feeling an mITX system wasn't going to be a go, though it would have been nice. I have 2 main setups that I am considering, one is an mATX with the 14 core E5-2660 v4, and the other is an ATX with 2 x E5-2620 v4 8 cores for 16 total. Each is set with 64GB of RAM. Both of which would give me far better upgrade-ability than an mITX when it is time.

The other thought is that I would like to use the system while it was rendering for other things like research, photo manipulation/editing, watching a movie, or even working on another drawing...all of which would require their own RAM usage...

I really like your idea about knocking down to a single thread (heck, there are only four, I could check them all to get a good graph) to check the scaling...you never know, it could grow in additive (doubtfully exponential) ways, or scale perfectly in a linear fashion, or even get more efficient! Worth the experiment...though that now raises the question of RAM usage efficiency of a 5.5 year old mobile processor compared to a brand spankin' new rock star server grade processor:p

Again, I totally appreciate the time you took for consideration!!