[yocto] Suitable machine for yocto
Alex Lennon
ajlennon at dynamicdevices.co.uk
Sun Sep 10 09:14:07 PDT 2017
On 10/09/2017 17:06, Mark Hatle wrote:
> On 9/10/17 2:00 AM, Usman Haider wrote:
>> Hi,
>>
>> Can someone please recommend some good machine for yocto environment and
>> building sdks. I am interested in RAM, hard disk space, processor.
> You want fast I/O, as much RAM and as many (fast) cores as you can afford. I
> don't think there is a single answer as what is 'best'. It also depends on
> which Yocto Project versions, and which layers you are using as to which
> combination is best.
>
> I run builds on my laptop, 4-core/8-thread & SSD and 16 GB of ram from a few
> years ago. It's fast, but I wouldn't want to do all of my development on it.
>
> I've had 8-core/16-thread (32GB ram/standard disk), 16-core/32-thread (72GB
> ram/SAS-3 RAID), 24-core/48-thread (64GB ram/SATA - software RAID), 72-core/144
> thread (256 GB ram/hardware raid/SAS-3), and recently upgraded to
> 96-core/192-thread (256 GB ram/hardware raid/SAS-3).
>
> I would not go below quad-core (8-thread) myself. You can get a quad core, good
> quality machine for $1000 or less these day. If you move up to the larger
> machines, you can even be able to get to a 24-core for less then $5000. By the
> time you get to 96-core and all of the googles you are likely talking $50000 or
> more.
>
> By clock raid, the 24-core machine is the fastest.. While the 96-core monster
> can do the builds the quickest. But when you figure out cost/performance/etc..
> the 24-core is probably the best performance per dollar, and with adequate RAM
> (I'd say at least 64GB if not 128GB), and fast I/O you'll probably get the
> lowest price for the best performance in that category.
>
> If you need sheer speed and price is no option, then the (4 CPU w/ 24 core each)
> 96-core monster (or even better) is what you want to go with. 256GB ram would
> be a minimum with that configuration (I'm not sure if more is actually helpful,
> I rarely end up in swap -- but I go get into situations where more then 50% of
> ram is used.) With that many cores, disk I/O starts to become obvious. So
> faster the better... SSDs would be the fastest, but of course the most expensive.
>
> If your employer is paying for the machine, you may be able to get a better then
> normal machine by explaining how much time a faster machine will save and how
> comparing to your salary a machine is inexpensive. (If you are a contractor or
> student, that changes of course.) :)
>
> So my point is really, figure out how much money you have to spend. My rule of
> thumb is roughly:
>
> 1) Buy as many cores as you can. Try to get a CPU that has Hyperthreading or
> equivalent to double the effective core count. Fastest processing speed helps
> in repetitive cases vs full system builds.
>
> So if the choice is a 24 core @ 2.2GHz vs 22 core @ 2.5, I'd probably go with
> the 22-core. While if it was 24 core @ 2.2GHz vs 8 core @ 4.2 GHz, I'd go with
> the 24 core.
>
> 2) Try to get at least 1 GB of ram per thread (2 GB per core..) You can cut
> back on the ram (if necessary) once you hit 72 threads or so. (72 threads
> right now seems to cover most of the parallelization in a full system build.
> There are points in the system where it can parallelize MUCH more, but they are
> fairly rare.)
>
> 3) You need fast disks. Software RAID works fine, but you likely need to buy at
> least a couple of disk to boost performance. SSDs are fast, but lots of builds
> take space, so fast SATA or even better SAS drives are the best performance per
> cost.
This brings to mind a related question I keep coming back to as to the
economics of a docker (or similar) image running a fast Yocto build in
the cloud.
i.e. set config params -> bring up server image on plaform A/B/C ->
perform build taking time X/Y/Z -> store output images -> bring down
server == $ ?
I find myself asking what the optimal cost per-build would be using this
approach...
Cheers,
Alex
More information about the yocto
mailing list