[Recommend] Bang4Buck for Heavy Code Compilation

TL;DR
Headless server for OpenWRT, OpenEmbedded and AOSP compilation.
No dedicated GPU required.
Budget:

  • 60,000 INR (800 USD) - for custom-built or prebuilt pc/server
    or
  • 40USD per month (annual commitment discounts are very welcomed)

Hello peeps. I compile firmwares and roms for embedded devices as a freelancer. My old pc is not able to keep up with demands.

I mostly compile OpenWRT, OpenEmbedded and AOSP.
I dont need GUI at all so i dont want to spend any money on GPUs.

I think multi core performance is important for my workload. (ryzen maybe?)

Now, i dont know what mobos are supported with what CPUs. My budget is around 60,000 INR (800 USD).

Bang for buck is most important for me as i am just starting out my career.

My current rig:
i44xyz i dont remember much but it was not overclockable.
8gb(2x4GB) single channel ddr3 ram, because ram slots are dead for 2nd channel.
1tb western digital laptop hdd taking its last breath.

Also i am exploring cloud possibilities as well. I looked up Oracle cloud and Linode. after configuring 8cores and 1TB ssd, estimation is around 100USD per month which is way out of my budget. i can spend 40USD per month at max.

Q:
How much time do you spend writing code vs. compiling code? How large is your code base? How good is your network?

I don’t really have answers to your questions, but the viability of cloud compilation may depend on those things; if the time taken to commit to the cloud server, log in and compile is greater than the time saved vs. just doing it locally, it’s pointless. However, if you’re already wanting to host a copy off-site in a git repo somewhere in case your house burns down, maybe you can kill two birds with one stone by having a compile host in the cloud.

How large your code base is will determine memory (RAM) requirement.
How many files your project have may determine how many cores it can use to compile
SSD is important for this, any modern cpu will pretty rapidly be slowed up by spinning disk.

It may be worth looking into various cloud hosts to see if any will bill you for CPU consumed, vs. allocated.

I’d say best bang for buck to start out for your situation would be to get some more RAM and an SSD for your current box, it will likely speed your compiles up a heap. 8 GB isn’t much these days and spinning disk is a huge bottleneck to a modern dev system.

Q:
How much time do you spend writing code vs. compiling code? How large is your code base? How good is your network?

A:
Its kind of automated. After initial requirements are complete, i just need to follow through security updates of various projects/sources. So around daily 2 builds. not more.

I have a stable fiber connection with 40mbps download and 20mbps upload. I also use google drive for backing up generated artifacts.

And yes everything is already hosted on gitlab. Actually i tried a shady server reseller just for sake of trial and so far it was awesome.

8gb ram is sufficient for one build at a time. i am aiming for 16gb this time.

So far i haven’t required more ram, its only an issue when i compile OpenJDK or webkit-gtk. For that i will just allocate 50gb swap on ssd.

big cloud providers like aws and gcp are already out of my budget.
I tried serverhunter to search for perfect match but so far no satisfactory result.

I also like the fact that i dont have to worry about hardware failure when i use cloud server.

Yeah that’s a thing, also enables you to write/compile code from an iPad or phone or whatever.

Not trying to sway you too much from the cloud, far from it.

But in terms of PC upgrade budget vs. what you have, I do think $800 is an in-between budget. I’d upgrade your system to SSD so the compiles aren’t thrashing/waiting on disk and put the rest of the budget away to maybe look at cloud hosting or keep aside for hardware replacement due to failure.

You could maybe step up to Ryzen but to get significantly better than the haswell box you have you’ll need to do a full system refresh which means board, cpu, new DDR4 memory, etc.

Maybe try find an i7-4770k or 4790k to slot into your existing board? But imho that’s throwing money at a system that is old and maybe due for failure; money that could be better put aside for when the box dies. Unless you can get the CPU upgrade very cheap.

2 Likes

Fitting that in the budget would definitely be doable, especially if regional prices are lower, but I can’t say for sure how much improvement we would see without specing something out.

Give me a few.

1 Like

Gut feelings:

Yeah, I feel you’d need to step to a 6 core. Then again the 3300x I have in my secondary box is no slouch for a 4 core. It does depend what haswell CPU he already has.

I guess if you’re willing to compromise for a bit with 8GB of RAM and a low spec board you could maybe get something worthwhile there, but it seems more of a side-grade to me. Maybe do it with a low end Ryzen 3xxx on a b550 board and keep an eye out for a cheap 6 core? I mean I deliberately built my spare Ryzen box with the cheapest Gigabyte B550 board I could find (B550M S2H) to get a feel for how bad things are in that space and… good news: it’s fine.

The big bang for buck will be SSD I feel, save the rest of the budget for when the current box dies and get more bang… :slight_smile:

Definitely at this point don’t go X470, B450 if you want best bang for buck. Cheap b550/X570 board will get you better IO, and future CPU support at least to 5000 series. But B550 does limit you to Ryzen 3000/5000.

2 Likes

I just threw this build together on PC part picker:
https://pcpartpicker.com/list/VNM9kX
Given you don’t need a GPU, you could push the boat out a bit I think.
I have seen some second hand threadripper CPUs under £200 on Ebay, don’t know what a full build would cost or how it would compare though.

2 Likes

With threadripper, the motherboard is going to kill you, even on ebay.

Those are expensive and well built boards. They’re definitely in the right spot so far as value goes, but they are just not going to fit well within this budget.

3 Likes

Yeah, $100 over budget with this attempted build, plus no GPU of any description: System Builder - Threadripper 1900X 3.8 GHz 8-Core, Focus G Mini MicroATX Mini Tower - PCPartPicker
Although the 1920X is selling a little lower than the 1900X on Newegg for some reason (without the discount offer).

I managed to squeeze a 5700G into the budget of the previous build though (by dropping down to CL16 RAM and the Fractal case has case fans included already): System Builder - Ryzen 7 5700G 3.8 GHz 8-Core, Focus G Mini MicroATX Mini Tower - PCPartPicker

2 Likes

Scaleway has this one:
|GP1-XS|4 vCPUs|16 GB|150 GB NVMe|500 Mbit/s|From €0.084/hour|

Depending on how often you need to fire it up that’s like 800/year give or take. It’s far more useful to have a development box at home.


B450 / and AM4 2700 / 32G ram / 1TB TLC nvme with high iops / 4-8TB HDD (use LVM to cache hdd on nvme).

PSU and cheapest case you can get will probably run you 500 overall

No redundancy. Just install Debian and docker and drive building from your development machine with once off docker containers. (or have something start a container from a git hook)

You can share your .cache stuff between builds I’m guessing?.. or do you want to build from scratch.

2 Likes

Thanks for all the replies.

I quickly realized, taxes are very high in India.

I finally decided to go for a hybrid approach.

Use a contabo VPS L server for 1 year.
Price: 240 USD ( 18,000 INR)

Hopefully air travel will start by 2022 and wait for some close friends living in USA and buy CPU and MOBO from them.

Cons for this approach,

  • No warranty on those parts
  • Paranoia of airport security and customs!
  • No virtualization supported on contabo - so cant use QEMU to generate rootfs

Pros for this approach

  • I save so much $$$ compared to if i bought cpu and mobo here.
    Ryzen 5700G,
    USA - 360 USD (26,726 INR)
    India - 458 USD (34,000 INR)

So essentially its like getting free Mobo with Ryzen 5700G if i order the two of the most expensive parts!
Others i can order from here.

So what you think of this?

Depending on how often you need to fire it up that’s like 800/year give or take.

I will definately not use it 24/7. I only work in daytime and i can keep it off for 18 hours.
This is very good!!! Thanks!

Question. I see that vCPU servers are way more cheaper than dedicated servers. I dont know what i am loosing with vCPUs and gaining with dedicated CPU in terms of compiling stuff.

  • 8 vCPU is cheaper than 3 dCPU

The contabo VPS L is actually not a bad deal for an always on instance. Relative to even not-latest-gen on prem hardware.

Not all parts of the build process are ridiculously parallelizable. (Build setup for a lot of opensource projects sucks relative to what some of us experienced within our corporate walled gardens).

The only thing I can think of that might beat that is some magical aws spot pricing or gcp preemptible instance where you fire up a VM and have it start a build from a GitHub action or some such thing, so you don’t pay for it 90% of the time.

Either way, your OpenWRT custom image building shouldn’t take more than 10minutes overall (including the toolchain), less if you don’t make distclean in between.


Is there a similar website to geizhals.eu / pcpartpicker for India? This is what I was able to put together on geizhals:

https://geizhals.eu/?cat=WL-2190239

Obviously pricing and availability of components in India, or even different states will vary.

You’ll likely find that with vCPUs you will be dealing with contention and your cores won’t be real cores. More likely hyperthreads (half cores)

So. 8 vCPU is maybe more like ~ 4 real cores. And you might be on a server running more virtual cores than real. Worth checking with the provider what their contention rate is and if they have any performance guarantees

The 6 core Ryzen 5600G is $100 cheaper than the 5700G, and is better value/core. This is another approach if you wanted to buy all the parts in India.
The 5600X is a little more than the 5600G, and a better CPU but doesn’t have an iGPU.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.