So Christmas is looming (as well as RIOT’s 10th anniversary) and I just learned I have leftover funds up to ~15k to spend before next June, via my public research employer, on “whatever”.
Any suggestions from the community on how to best spend this money to help RIOT?
Can you buy services, like a hosted server in a DC with green energy?
I agree that a potent server is a good thing, but servers under desks aren’t always a great thing.
I’m all for buying beefy server(s). But we have to be realistic here. Any server that would make a dent to the build times, like, cut them in half, would easily eat 15k for server class hardware that either Inria or FU would be willing to put in a rack.
On Wed, Dec 07, 2022 at 10:49:41PM +0000, Kaspar Schleiser via RIOT wrote:
I’m all for buying beefy server(s). But we have to be realistic here. Any
server that would make a dent to the build times, like, cut them in half,
would easily eat 15k for server class hardware that either Inria or FU would
be willing to put in a rack.
Is CPU/memory the main bottleneck in our current CI setup or may multiple
smaller servers may also boost the build times?
Cheers
Oleg
The problem with mutex jokes is that they’re race-ist.
Multiple smaller servers would be great, too! We’re mostly CPU bound (memory just needs to be there). But, high-core CPUs actually don’t scale that well.
E.g., riotbuild with 64 cores is not four times faster than similarly fast (per core) 16core machines, but it’s a first generation Epyc that would need some Numa optimization. breeze and tatooine are both the same architecture (Zen2), one 16 core, one 6 core. The 6 core clocks a bit higher on each core under full load, and is almost half as fast as the 16 core.
On Wed, 7 Dec 2022, Kaspar Schleiser via RIOT wrote:
[11_2.png]
Kaspar Maintainer
7 December
[15_2.png] oleg:
Is CPU/memory the main bottleneck in our current CI setup or may
multiple smaller servers may also boost the build times?
Multiple smaller servers would be great, too! We’re mostly CPU bound (memory
just needs to be ther). But, high-core CPUs actually don’t scale that well.
E.g., riotbuild with 64 cores is not four times faster than similarly fast
(per core) 16core machines, but it’s a first generation Epyc that would need
some Numa optimization. breeze and tatooine are both the same architecture
(Zen2), one 16 core, one 6 core. The 6 core clocks a bit higher on each core
under full load, and is almost half as fast as the 16 core.
Visit Topic or reply to this email to respond.
You are receiving this because you enabled mailing list mode.
That system would be perfect. It would probably be 50% faster than breeze (which is similar but two generations behind), if going by linux compilation speed as benchmarked by phoronix. Ten of those would bring a full build down from 2hrs to ~30min.
Yes, I propose to recruit me as an intern who works on Riot project from ±mars to ±august ^^’’ I am studying Master in iot and looking for end of study internship, but there are not much jobs out there in France for iot which I am illegible to apply. Since this summer I used Riot for my personal project I found it fun to work with. So if it can be an option please do not hesitate to contact me
Not sure if I have a voice in this, but I think the RIOT dev-board idea of @MrKevinWeiss was very interesting, and maybe it’s worthwhile to invest some money in that? Maybe you could even spend a portion of the money creating samples that can be handed out and/or sold at the summit, FOSSDEM, …
I think it would be a great promotional aid, and also an educational tool.
The Web of Things implementation is still not mainlained. There are also some features missing. Not to mention we need more tests than one ^^
And maybe some practical examples of how to use it in combination with a border router, nodeJS, node-RED etc.
I did a video a year back for the ESP32 with the Arduino implementation I ported. I could do something similar and more advanced eventually with RIOT as well.
I think WoT would be a big deal, because you can easily get people into embedded development who never touched it before. Just a couple of json definitions and functions and you are pretty much ready to go. Connect NodeJS to it. You probably could attact some web devs with that. My two cents on it.
Why don’t you just use some cloud service and spawn the instances whenever you need them? You can also just run 1000 for a couple of minutes. How often do you build per day? You don’t need a dedicated server for this. Do you? You can pipe the binaries to another lightweight server that actually flashes the devices.
Well, only the big three bill per second, the others are out (hourly billing is not fine-grained enough).
A quad core instance at AWS is 10c/hr. 1000 of them add up $$ quickly. Let’s say 100 would suffice (assuming they’d be as efficient per-core as the 100 we already have). 400 cores would bring 120min to <30min. So we’re looking at 5$ per build.
Even if we had funds here, unfortunately the big three don’t allow any “maximum spending” settings, so just by using it opens up for generating huge bills (e.g., by accident).
Interesting, thanks. So, the question here is then: Do you want to have the convience of being able to build all day long, or do you rather want to have one build and it being really fast. I mean you can squish as many builds into that hour. Have you checked scaleway for pricing? They have good prices, are in the EU and also have an API/CLI to spawn instances. If I get you right at Scaleway, we should look at 1,76 EUR per hour to have 400 cores. 2vCores a 2 GB. Regarding the billing and spending too much. AWS has a billing API. Scaleway does not yet. I still want to have one. But you can see the running instances via the API. Both on AWS and Scaleway. Plus there is an alert feature. So, it’s more a question of just writing an application that monitors the spendings etc. You can have a dead man switch that just cuts off all the instances.
Btw. you can also see this as an business opportunity. Don’t know who is all building it. But maybe some are willing to pay a little extra to build faster. So, you take the 2 EUR, put an extra 2 EUR on top of it to support the RIOT development.
We want to reduce waiting for CI results. That requires push, wait a bit, see result quickly, any time of the day. Everything else is annoying. Pushing at 10am and then waiting until 3pm all builds that were squeezed in the “daily build hour” are done wouldn’t work for me, and is not much different from pushing at 10am and having to wait half the day for my build to go through the queue.
when you start getting the initial CI results back, and you realize that you have done a “duh!”, and you want to quickly push the fix, and then abort any further attempts on the broken branch.
when you get non-determinism out (some of) the builds, and you have to run those builds manually to figure out why. And you might even need to get lunch, or take a phone call, or just go for a walk while in the middle of typing a command, but, clock is ticking at 2EU/hour, so you get anxious.