15 comments

[ 4.5 ms ] story [ 58.4 ms ] thread
Mr. Goto's name seems aptly suited to his work, writing the instructions given to microprocessor chips.

http://en.wikipedia.org/wiki/Aptronym

Yes, it seems unlikely one would consider Mr. Goto harmful.
I've never used a goto statement before, but I felt that I needed a few weeks ago. I was able to refactor to a do/while loop
Er, so what this "John Henry" was capable of besting computers at, if I'm reading between the confusing lines correctly, was the most optimized subroutines? When I saw the phrase "John Henry" or the OP's headline, I immediately thought of someone writing more lines of code than...well, I guess I don't even know what kind of contest that would be.
He basically is able to see how data flows through code and can rewrite routines to ensure that as much is saved in the CPU's local caches (L1 / L2 / L3) as possible to optimize the calculations. In short, he's one of the best at writing code to minimize CPU cache misses and thus one of the best at writing blazingly fast code.
The software that the article mentions:

http://www.tacc.utexas.edu/tacc-projects/gotoblas2

The page says its portable across a few processors. I'm curious if there is much that is portable or if each one has to be optimized separately. I'm also curious how long code like this lasts. If the chip vendor changes their underlying architecture does the code have to be rewritten (for speed, ot correctness)?
The TLB optimizations that he started from are fairly generic. But the kernels themselves are hand-optimized assembly, so they obviously don't port. No need to rewrite for correctness, only for speed.
Old article but amazing stuff. I'm assuming everything of his is written in assembly
He said his next big challenge was to expose chip designers to his ideas to help speed their processors.

"Computer architects are stubborn," he observed. "They have their own ideas." His ideas on computing efficiency, he said, speak for themselves.