ARM as a primary architecture
kevin.kofler at chello.at
Thu Mar 22 01:38:02 UTC 2012
Andrew Haley wrote:
> I'm trying to figure out what this means. Do you mean that any
> primary architecture must be as fast as x86 is today, or that it must
> be as fast as its contemporary version of the x86? So, if the x86 got
> faster but ARM didn't, then ARM would be dropped?
Good question. I think the answer depends on how much faster the future x86
CPUs will be compared to today's x86 CPUs (and also compared to the future
> The way I see the CPU market developing over the next few years is
> that the x86 will continue to be the speed demon if you measure MIPS
> per core, but other competitors, especially ARM, will focus on cores
> per die. If we stick religiously to "comparable speed to x86"
> (whatever that means) Fedora can never be a primary arch for anything
> other than x86. Even if we have builders with dozens or even hundreds
> of cores.
> This is wrong, in my view. If we have a great many parallel
> processors waiting for work, times waiting for build won't be so
> great. The future does not look like ever-increasing MIPS per
> core, but ever-increasing parallelism. If Fedora is the OS of
> the future, we'd better start to embrace that.
First of all, one thing you have to realize is that many workloads are
inherently NOT parallelizable. And even workloads which parallelize fairly
well normally have serial portions and/or a nontrivial critical path. Thus,
MIPS per core will always be an important metric, even though the CPU
manufacturers are trying to explain that away because physical limitations
are making it harder and harder for them to make improvements there.
Now of course, parallel computing IS going to be more and more important in
the future. (Programmers are already throwing away a lot of current CPUs'
performance in that area, with most of today's CPUs being multi-core and
many applications still being single-threaded or de-facto single-threaded
(one main thread plus helper threads which are almost always blocking).) But
I don't see this as an ARM-exclusive domain. x86 CPUs are also increasing
the number of cores more and more. I'm not convinced ARM can win the
performance war (in the long run) based on parallelism alone (even in the
ideal case of linear speedup, which is rather unlikely in practical
And finally, for our build speed issue, the practical consideration will be
whether the parallelism will actually speed our builds up. Right now our
builds are either serial or have portions parallelized with "make -j", which
assumes a single multi-CPU computer (but the "multi-core" ARM setups
actually present themselves as a multi-computer cluster, which is not
supported by "make -j", not as a multi-CPU computer), so the parallelism
does little to the latency of an individual build (though of course it does
help the overall throughput).
IMHO, if even in the future only x86 will fit the speed criteria to be a
primary architecture for Fedora, then so be it. I do not see a need for any
other primary architecture(s). Why do we absolutely have to support an
architecture with inferior practical performance as a primary architecture?
(Note that I talk about PRACTICAL performance here: While the ARM
architecture may or may not theoretically allow faster CPUs than the x86
architecture, this is of no use if no such CPUs are actually available.)
More information about the devel