Which Machines Do Computer Architects Admire? (2013)
I&#x27;m not a computer architect (so my opinion shouldn&#x27;t count in this thread), but as someone who did a lot of numerical programming over the years, I really thought Itanium looked super promising.  The idea that you can indicate a whole ton of instructions can be run in parallel seemed really scalable for FFTs and linear algebra.  Instead of more cores, give me more ALUs.  I know &quot;most&quot; software doesn&#x27;t have enough work between branches to fill up that kind of pipeline, but machine learning and signal processing can certainly use long branchless basic blocks if you can fit them in icache.<p>At the time, it seemed (to me at least) that it really only died because the backwards compatibility mode was slow.  (I think some of the current perception of Itanium is revisionist history.)  It&#x27;s tough to say what it could&#x27;ve become if AMD64 hadn&#x27;t eaten it&#x27;s lunch by running precompiled software better.  It would&#x27;ve been interesting if Intel and compiler writers could&#x27;ve kept focus on it.<p>Nowdays, it&#x27;s obvious GPUs are the winners for horsepower, and it&#x27;s telling that we&#x27;re willing to use new languages and strategies to get that win.  However, GPU programming really feels like you&#x27;re locked outside of the box - you shuffle the data back and forth to it.  I like to imagine a C-like language (analogous to CUDA) that would pump a lot of instructions to the &quot;Explicitly Parallel&quot; architecture.<p>Now we&#x27;re all stuck with the AMD64 ISA for our compatibility processor, and it seems like another example where the computing world isn&#x27;t as good as it should be.