ARM as a primary architecture

Kevin Kofler 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 
ARM CPUs).

> 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 
applications).

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.)

        Kevin Kofler



More information about the devel mailing list