becoming one of those "old programmers" as i relay another piece of folklore, this time about Kazushige Goto, a japanese patent clerk who ended up becoming one of the world& #39;s best assembly optimisers
as it was something to do on his two hour commute to work
as it was something to do on his two hour commute to work
i first heard about this story in one of those meaningless computer arguments about compilers, and the old adage of "humans can always outdo compilers. they can look at the assembly produced, and change it"
then someone mentioned Goto, who took a rather different approach
then someone mentioned Goto, who took a rather different approach
the problem Goto was solving was one of those highly numeric operations, stuff involving linear algebra, multiplications, and matrixes
it was a hobby he& #39;d picked up after playing with an Dec Alpha at work, after being a little disappointed by the performance
it was a hobby he& #39;d picked up after playing with an Dec Alpha at work, after being a little disappointed by the performance
he worked on BLAS, a well used set of linear algebra subroutines, and there& #39;s various flavours of libraries available
including ones that near exhaustively search the possible assembly to produce an automatically tuned library
even so, Goto& #39;s handrolled code was faster
including ones that near exhaustively search the possible assembly to produce an automatically tuned library
even so, Goto& #39;s handrolled code was faster
the trick wasn& #39;t so much peephole optimisations, but instead restructuring the code, and data to keep the cpu as busy as possible—in this case, making better use of the L2 cache to avoid TLB misses, but a tweet barely covers the insights he had
anyway, at some point Goto was convinced to take a sabbatical from his job at the patent office, to work full time on GotoBLAS over in Texas
his code made the supercomputer run about 30% faster, so much so that the Top 500 almost didn& #39;t believe the results
his code made the supercomputer run about 30% faster, so much so that the Top 500 almost didn& #39;t believe the results
he eventually quit his job at the patent office, moved to texas to continue his work, then had a brief stint at microsoft, before ending up at Intel, working on their numerical libraries
all because he found it fun to play around with assembly language on his commute to work
all because he found it fun to play around with assembly language on his commute to work
i guess the moral of the story is that innovation can come from anywhere, or maybe better yet, sometimes innovation comes from people just playing around with things that interest them, rather than grand research budgets and targets, either way, i think his story is neat
as a coda, his linked in profile just says "I& #39;ve just understand what LU decomposition is; it took for a long time."
(and yes i had to go look that up on wikipedia)
(and yes i had to go look that up on wikipedia)
i guess the other moral of this story is that even though it seems programming is fairly well mapped out, there& #39;s always room for impactful work, even if most people will never hear about it, but thems the breaks of being a specialist
... and before the avalanche of "his name is Goto... geddit?" comments
personally i think that exceptions being invented by someone called Goodenough is funnier
personally i think that exceptions being invented by someone called Goodenough is funnier