On Mon, Sep 11, 2017 at 11:51 AM, Alex Lennon <ajlen...@dynamicdevices.co.uk > wrote:
> > > On 11/09/2017 00:56, Mark Hatle wrote: > >> On 9/10/17 2:31 PM, Alex Lennon wrote: >> >>> >>> On 10/09/2017 19:17, Mark Hatle wrote: >>> >>>> On 9/10/17 11:14 AM, Alex Lennon wrote: >>>> >>>>> 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... >>>>> >>>> I helped someone do some very -preliminary- figured a few years ago. >>>> The >>>> processing was 'cheap', but between storage and network transfer >>>> costs.. it was >>>> cheaper to buy a reasonable machine.. payback time was only a few >>>> months. >>>> >>>> (cloud 'storage' is often very slow as well, because there are >>>> expectations of >>>> migration and things like that.) >>>> >>>> So as of a few years ago at least, the economics didn't factory the >>>> cloud -- yet. >>>> >>>> >>>> Yeah that is more or less my thinking. Although I do imagine that if a >>> source mirror on an internal network leg could be set up then that might >>> significantly reduce chargeable network b/w... >>> >> premirror for downloads and sstate-cache shared between multiple >> customers could >> reduce the network b/w far enough to make it economical. But you would >> need to >> trust other vendors since the sstate-cache can be manipulated to provide >> malicious software (in some cases). (And strengthening the sstate-cache >> checking can cause enough extra overhead to make it 'cheaper' to build >> then use >> sstate-cache in many cases.) >> >> >> > Interesting... Thanks for your thoughts. > > Cheers, Alex > > Hi, Thanks all for your inputs. As I am a beginner in Yocto and I'll be paying myself so after going through all your emails and IRC chat Iam thinking of going with something like 6core/12threads 16GB RAM and 1TB or more hard disk with clock of 3.x GHz. I'll be building for Rpi, beaglebone and Zynq. Now looking for tutorials and documentation for starters :) Thanks again. Regards, Usman
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto