script

script

Currently using Macbook pro 2017 15 . Before it. I was using linux on sony laptop.

My biggest complain was linux is not stable. My wifi stops working and I have to install it again. Imagine you are on a deadline for some specific task of your project. And then you have to install the linux and then the applications all over again. Really frustrating. Keyboard suddenly stop working after you wakeup laptop from sleep.

But i did phoenix web development on that machine. It was core i 3 with 4gigs of ram. It only slows down if i opened up multiple tabs in chrome.

But macbooks are stable. I didn’t run any such problems that would cause problems in my daily work. But they are very expensive compared to windows. They are good but prices are just absurd.

0
Post #32
michallepicki

michallepicki

I wish people could stick to the topic. But anyway: I looked online and found a linux kernel compilation time benchmark results chart which suggests that more cores is more important. Maybe with your tests there were other bottlenecks, like drive or memory speed / latency.

edit: The above looks like user-submitted results. Phoronix uses this benchmark to test processors regularly, results there should be more accurate (see second chart). Recent server-grade processors are here - 128 threads allowed to compile the Linux Kernel under 30s! Nuts!

2
Post #33
jdumont

jdumont OP

Agreed, we’ve sorted of descended into “I use X…” I’m probably responsible too because of all the iPad chat. (Writing up that wiki that @AstonJ suggested - maybe could do some cleanup once it’s published)

That’s the sort of thing I was after! I had only searched for Elixir specific benchmarks so hadn’t come across that one. It definitely suggests that cores are the driving factor for kernel compilation.

Could compiling Elixir be much different?

What’s interesting though is that Intel iXs seem to outperform Ryzen processors, even when the AMD chip has both a core and clock-speed advantage. Perhaps things like L1/L2 cache, and maybe even cooling are coming into play? I’ve heard that Ryzens throttle themselves quite aggressively when the cooling isn’t adequate.

Very possibly. My test was only very superficial and didn’t really have enough data-points to form a comparison. Equally, it’s hard to know what sort of hardware you’re running on with DO droplets — kind of the point I guess… — which makes them hard to compare.

I didn’t want to keep that Xeon server around too long as it was quite pricey, so didn’t run too many tests on it. I wouldn’t have thought that there would be any meaningful bottlenecks on a server like that, particularly when compared to a 2015 MacBook Pro.

I realise that all this comparison of hardware on a task like compilation and test running is somewhat irrelevant unless you are on old hardware and the tasks are obnoxiously slow. I was mainly curious whether there was a case for fast hardware the same as there is for video rendering, and whether there was a point of diminishing returns.

0
Post #34
jdumont

jdumont OP

@AstonJ and everyone else here:

I’ve written up a wiki about working from an iPad / on a remote server so that this thread can remain focussed on the hardware choices that help with Elixir performance.

4
Post #35
sribe

sribe

Just a thought: Elixir and Erlang scale across multiple cores quite nicely, but if you’re working with many front-end assets, that means you’ve probably got Node.js in your build pipeline, which is essentially single-threaded, so peak clock counts more than number of cores when you run that. Sigh…

0
Post #36
jdumont

jdumont OP

They certainly do for running applications and tests, but I’m still unclear how multiple cores are used in compilation. So far the tests that I’ve done seem pretty inconclusive due to too many variables in play and potential bottlenecks elsewhere in the system.

To be honest, I’m fairly certain that some of the Elixir core team would know the answer to this. If any are reading this, please jump in and put me out of my misery/curiosity! :joy:

I made certain to remove it from the codebase I was testing with. It’s a good point though. Realworld work is going to depend on frontend build tools for most people, so clock speed is something well worth considering regardless of how well Elixir compiles across cores.

0
Post #37
LostKobrakai

LostKobrakai

There are at least parts, which run parallel and can therefore use multiple cores: elixir/lib/elixir/lib/kernel/parallel_compiler.ex at main · elixir-lang/elixir · GitHub

1
Post #38
sribe

sribe

I don’t understand where this doubt comes from. Just do a clean build, and observe CPU usage.

0
Post #39
jdumont

jdumont OP

That’s what I’ve been doing, but across 4 different systems I’ve got very varied results. One didn’t utilise all the cores, one saturates a few cores leaving the rest at ~50% load, another saturated all the cores, etc.

It’s not doubt — I believe and know that Elixir can use multiple cores during compilation — but I’m trying to understand what else is impacting performance and where these variances come from.

Yes, I’m probably asking questions that no one else cares about, but I’m curious about the bottlenecks and roughly where the point of diminishing returns kicks in.

1
Post #40
sribe

sribe

Sorry, I missed that, or lost track of it over the last few days.

For those cases where it does not saturate available cores up to at least 4-8, most likely problem is going to be poor “disk” performance.

0
Post #41