---
created_at: '2012-05-11T15:09:01.000Z'
title: Writing the Fastest Code, by Hand, for Fun (2005)
url: http://www.nytimes.com/2005/11/28/technology/28super.html
author: gaius
points: 69
story_text: ''
comment_text: 
num_comments: 15
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1336748941
_tags:
- story
- author_gaius
- story_3959567
objectID: '3959567'

---
[Source](http://www.nytimes.com/2005/11/28/technology/writing-the-fastest-code-by-hand-for-fun-a-human-computer-keeps.html "Permalink to Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips - The New York Times")

# Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips - The New York Times

__NYTimes.com no longer supports Internet Explorer 9 or earlier. Please upgrade your browser. [LEARN MORE »][1]

__Sections __ Home __Search [Skip to content][2] [Skip to navigation][3] [View mobile version][4]

##  [ The New York Times ][5]

###### [Technology][6]|Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips

__Search

Subscribe Now Log In __0 __Settings

__Close search

## Site Search Navigation

Search NYTimes.com

__Clear this text input

Go

1. Loading...

See next articles

See previous articles

## Site Navigation

## Site Mobile Navigation

Advertisement

Supported by

###  [Technology][6] | TECHNOLOGY

# Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips

By [JOHN MARKOFF][7]NOV. 28, 2005

[Continue reading the main story][8] Share This Page

[Continue reading the main story][8]

SEATTLE - There was a time long ago when the word "computer" was a job description referring to the humans who performed the tedious mathematical calculations for huge military and engineering projects.

It is in the same sense that Kazushige Goto's business card says simply "high performance computing."

Mr. Goto, who is 37, might even be called the John Henry of the information age.

But instead of competing against a steam drill, Mr. Goto, a research associate at the Texas Advanced Computing Center at the University of Texas at Austin, has bested the work of a powerful automated system and entire teams of software developers in producing programs that run the world's fastest supercomputers.

He has done it alone at his keyboard the old-fashioned way -- by writing code that reorders, one at a time, the instructions given to microprocessor chips.

Advertisement

[Continue reading the main story][8]

At one point recently, Mr. Goto's software -- collections of programs called subroutines -- dominated the rarefied machines competing for the title of the world's fastest supercomputer. In 2003 his handmade code was used by 7 of the 10 fastest supercomputers. (The Japanese Earth Simulator, which was then the world's fastest machine, however, did not use his software.)

[Continue reading the main story][9]

Advertisement

[Continue reading the main story][10]

In the most recent ranking of supercomputers, I.B.M. machines overtook a number of supercomputers using Mr. Goto's software to capture the top three spots in the fastest computer rankings. Still, the Goto Basic Linear Algebra Subroutines, or BLAS, as his programs are known, were used by 4 of the world's 11 fastest computers.

Mr. Goto has become a legend in the supercomputing community because of his solitary crusade. And he shows no signs of flagging in the contest to wring every ounce of computing speed from the world's fastest microprocessor chips.

But for all the acclaim he has received, Mr. Goto is a relative newcomer to the supercomputing field, having made his breakthrough about a decade ago.

"At first I didn't know anything," he said in an interview at the annual supercomputing conference held in Seattle in mid-November. "This was all trial and error, but now I have experience."

The value of his work goes far beyond setting speed records. Because his programs can more efficiently solve complex linear equations, they can offer better solutions to virtually every computational science and engineering problem. For example, the subroutines are used in simulation programs to model the flow of air over the surface of a plane or a car more precisely.

One of Mr. Goto's principal rivals is a software project known as Atlas, created by a group of researchers working with Jack Dongarra, a computer scientist at the University of Tennessee. Atlas is an automated effort to find the most efficient way to solve linear algebra functions for specific microprocessors -- a task that Mr. Goto does meticulously by hand.

Like chess-playing software, the Atlas project tries to overcome the shortcomings of different kinds of computer designs by systematically testing thousands of solutions for each chip to find the most efficient one for each type of microprocessor.

Advertisement

[Continue reading the main story][11]

By contrast, Mr. Goto uses only a program called a software debugger that allows him to track how data moves among different components of a microprocessor.

He then reorganizes the individual software instructions so that his subroutines perform crucial algebraic functions more quickly to gain small amounts of processing speed from a specific type of computer chip.

Typically these are highly repetitive operations that can consume vast amounts of computing capacity. For example, one challenging type of calculation requires the microprocessor to multiply numbers from two tables stored in memory together.

Mr. Dongarra acknowledges that Mr. Goto's hand-tuned programs are more efficient and can still outperform Atlas.

"I tell them that if they want the fastest they should still turn to Mr. Goto," said Mr. Dongarra, who is one of the researchers who maintains the Top 500 listing of the world's fastest-performing computers from a computing speed race held twice a year.

Mr. Goto came to his passion for supercomputing almost by accident. Educated in power engineering at Waseda University in Tokyo, he worked as an employee of the Japanese Patent Office, doing research on early inventions like video recorders.

To help in his work, Mr. Goto purchased a Digital Equipment workstation based on the Alpha microprocessor in 1994 to perform a simulation.

## Newsletter Sign Up

[Continue reading the main story][12]

### 

Please verify you're not a robot by clicking the box.

Invalid email address. Please re-enter.

You must select a newsletter to subscribe to.

Sign Up

You agree to receive occasional updates and special offers for The New York Times's products and services.

### Thank you for subscribing.

### An error has occurred. Please try again later.

### You are already subscribed to this email.

[View all New York Times newsletters.][13]

* [See Sample][14]
* [Manage Email Preferences][15]
* [Not you?][16]
* [Privacy Policy][17]
* Opt out or [contact us][18] anytime

But when it arrived he could not understand why it was performing so slowly. So he explored the Alpha's design to see where the performance bottlenecks were.

He later purchased a second Alpha-based computer and by rewriting the crucial subroutines was able to improve its performance to 78 percent of its theoretical peak calculating speed, up from 44 percent.

Advertisement

[Continue reading the main story][19]

Although he was not formally trained in computer or software design, he perfected his craft by learning from programmers on an Internet mailing list focusing on the Linux operating system for the Alpha chip. His curiosity quickly became a passion that he pursued in his free time and during his twice daily two-hour train commute between his job in Tokyo and his home in Kanagawa Prefecture.

"I would frequently work on these problems until midnight," he said. "I did it to relax."

As a teenager, Mr. Goto developed a passion for electronic design, building his own stereo equipment from the most basic components.

His current interest, he says, is not in the pure mathematics of the linear equations, but rather in finding clever ways to overcome the shortcomings of the architecture and internal organization of microprocessors that are used in every kind of computer, from hand-held devices to supercomputers.

Modern computers are organized to offer the programmer a hierarchical series of data storage areas that range from the computer's disk drive DRAM memory, as well as relatively small temporary memory areas called caches. Typically, the fastest memories are also the smallest.

One of the simplest ways to speed a program is to keep the calculation in the memory unit, which is closest to the microprocessor's calculating engine.

Every time the calculation engine is required to stop what it is doing to get new data from a more distant memory area, processing speed slows. But in some cases, keeping data in the closest memory cache may not be as efficient as keeping it in a larger cache that is farther away.

Robert A. van de Geijin, a computer scientist who works with Mr. Goto at the Texas Center, said that Mr. Goto's special skill was in the step-by-step reordering of software instructions to take the greatest advantage of the performance trade-offs offered by each type of chip.

"He combines both scientific insight and engineering skills," Mr. van de Geijin said.

They met in 2002 when Mr. Goto took a sabbatical from his job at the patent office to spend a year at the Texas center. (He has since resigned from the patent office.)

Advertisement

[Continue reading the main story][20]

Once Mr. Goto arrived in Texas, he turned his attention to optimizing the speed of the Pentium 4 microprocessor. When computer scientists at the University at Buffalo added Goto BLAS to their Pentium-based supercomputer, the calculating power of the system jumped from 1.5 trillion to 2 trillion mathematical operations per second out of a theoretical limit of 3 trillion.

The increase was so astounding that the record keepers for supercomputing Top 500 called the researchers in Buffalo because they did not think such a speed was credible.

"I teased them and suggested that the speed of light was faster in Buffalo than it was in Tennessee," Mr. van de Geijin recalled.

Recently there has been a quiet controversy around the Goto BLAS because Mr. Goto has been slow to offer his work as open-source software, the free model of software distribution.

Some programmers have suggested that Mr. Goto has not joined the open-source movement because he wants to protect his secrets and strategies from competitors.

That is not so, he said recently, noting that the Goto BLAS software is freely available for noncommercial use. And he said he was preparing an open-source version.

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.

[Continue reading the main story][21]

[

We’re interested in your feedback on this page. **Tell us what you think.**

][22]

## 

* * * * ## What's Next

Loading...

[Go to Home Page »][5]

##  Site Index [ The New York Times ][5]

## Site Index Navigation

### News

* [World][23]
* [U.S.][24]
* [Politics][25]
* [N.Y.][26]
* [Business][27]
* [Tech][28]
* [Science][29]
* [Health][30]
* [Sports][31]
* [Education][32]
* [Obituaries][33]
* [Today's Paper][34]
* [Corrections][35]

### Opinion

* [Today's Opinion][36]
* [Op-Ed Columnists][37]
* [Editorials][38]
* [Op-Ed Contributors][39]
* [Letters][40]
* [Sunday Review][41]
* [Video: Opinion][42]

### Arts

* [Today's Arts][43]
* [Art & Design][44]
* [Books][45]
* [Dance][46]
* [Movies][47]
* [Music][48]
* [N.Y.C. Events Guide][49]
* [Television][50]
* [Theater][51]
* [Video: Arts][52]

### Living

* [Automobiles][53]
* [Crossword][54]
* [Food][55]
* [Education][32]
* [Fashion & Style][56]
* [Health][30]
* [Jobs][57]
* [Magazine][58]
* [N.Y.C. Events Guide][49]
* [Real Estate][59]
* [T Magazine][60]
* [Travel][61]
* [Weddings & Celebrations][62]

### Listings & More

* [Reader Center][63]
* [Classifieds][64]
* [Tools & Services][65]
* [N.Y.C. Events Guide][49]
* [Multimedia][66]
* [Photography][67]
* [Video][68]
* [NYT Store][69]
* [Times Journeys][70]
* [Subscribe][71]
* [Manage My Account][72]
* [NYTCo][73]

### Subscribe

* Subscribe
* __ [Home Delivery][74]
* __ [Digital Subscriptions][75]
* __ [Crossword][76]
* [Email Newsletters][77]
* [Alerts][78]
* [Gift Subscriptions][79]
* [Group Subscriptions][80]
* [Education Rate][81]
* [Mobile Applications][82]
* [Replica Edition][83]

## Site Information Navigation

* [ © 2018 The New York Times Company ][84]
* [Home][85]
* [Search][86]
* Accessibility concerns? Email us at [accessibility@nytimes.com][87]. We would love to hear from you.
* [Contact Us][88]
* [Work With Us][89]
* [Advertise][90]
* [Your Ad Choices][91]
* [Privacy][92]
* [Terms of Service][93]
* [Terms of Sale][94]

## Site Information Navigation

* [Site Map][95]
* [Help][96]
* [Site Feedback][97]
* [Subscriptions][98]

[1]: http://www.nytimes.com/content/help/site/ie9-support.html
[2]: http://www.nytimes.com#story-header
[3]: http://www.nytimes.com#site-index-navigation
[4]: http://mobile.nytimes.com/2005/11/28/technology/writing-the-fastest-code-by-hand-for-fun-a-human-computer-keeps.html
[5]: https://www.nytimes.com/
[6]: https://www.nytimes.com/pages/technology/index.html
[7]: https://www.nytimes.com/by/john-markoff "More Articles by JOHN MARKOFF"
[8]: http://www.nytimes.com#story-continues-1
[9]: http://www.nytimes.com#story-continues-2
[10]: http://www.nytimes.com#story-continues-3
[11]: http://www.nytimes.com#story-continues-4
[12]: http://www.nytimes.com#continues-post-newsletter
[13]: http://www.nytimes.com/newsletters
[14]: 
[15]: http://www.nytimes.com/mem/email.html
[16]: http://www.nytimes.com/logout
[17]: http://www.nytimes.com/privacy
[18]: http://www.nytimes.com/help/index.html
[19]: http://www.nytimes.com#story-continues-5
[20]: http://www.nytimes.com#story-continues-6
[21]: http://www.nytimes.com#whats-next
[22]: https://docs.google.com/forms/d/e/1FAIpQLSfLW30xgZodF1qRAg80oWEGuDpW-1HHaL0g42G3SmvB2f4lCw/viewform?entry.8537735=https://www.nytimes.com/2005/11/28/technology/writing-the-fastest-code-by-hand-for-fun-a-human-computer-keeps.html
[23]: https://www.nytimes.com/section/world
[24]: https://www.nytimes.com/section/us
[25]: https://www.nytimes.com/section/politics
[26]: https://www.nytimes.com/section/nyregion
[27]: https://www.nytimes.com/section/business
[28]: https://www.nytimes.com/section/technology
[29]: https://www.nytimes.com/section/science
[30]: https://www.nytimes.com/section/health
[31]: https://www.nytimes.com/section/sports
[32]: https://www.nytimes.com/section/education
[33]: https://www.nytimes.com/section/obituaries
[34]: https://www.nytimes.com/pages/todayspaper/index.html
[35]: https://www.nytimes.com/section/corrections
[36]: https://www.nytimes.com/pages/opinion/index.html
[37]: https://www.nytimes.com/section/opinion/columnists
[38]: https://www.nytimes.com/section/opinion/editorials
[39]: https://www.nytimes.com/section/opinion/contributors
[40]: https://www.nytimes.com/section/opinion/letters
[41]: https://www.nytimes.com/section/opinion/sunday
[42]: https://www.nytimes.com/video/opinion
[43]: https://www.nytimes.com/section/arts
[44]: https://www.nytimes.com/section/arts/design
[45]: https://www.nytimes.com/section/books
[46]: https://www.nytimes.com/section/arts/dance
[47]: https://www.nytimes.com/section/movies
[48]: https://www.nytimes.com/section/arts/music
[49]: https://www.nytimes.com/events/
[50]: https://www.nytimes.com/section/arts/television
[51]: https://www.nytimes.com/section/theater
[52]: https://www.nytimes.com/video/arts
[53]: https://www.nytimes.com/section/automobiles
[54]: https://www.nytimes.com/crosswords
[55]: https://www.nytimes.com/pages/dining/index.html
[56]: https://www.nytimes.com/section/fashion
[57]: https://www.nytimes.com/section/jobs
[58]: https://www.nytimes.com/section/magazine
[59]: https://www.nytimes.com/section/realestate
[60]: https://www.nytimes.com/section/t-magazine
[61]: https://www.nytimes.com/section/travel
[62]: https://www.nytimes.com/section/fashion/weddings
[63]: https://www.nytimes.com/section/reader-center
[64]: https://www.nytimes.com/ref/classifieds/
[65]: https://www.nytimes.com/marketing/tools-and-services/
[66]: https://www.nytimes.com/section/multimedia
[67]: https://lens.blogs.nytimes.com/
[68]: https://www.nytimes.com/video
[69]: https://store.nytimes.com/?action=click&contentCollection=NYT%20Store&contentPlacement=2&module=SectionsNav&pgtype=Homepage&region=TopBar&t=qry542&utm_campaign=NYT-HP&utm_content=hp_browsetree&utm_medium=HPB&utm_source=nytimes&version=BrowseTree
[70]: https://www.nytimes.com/times-journeys/?utm_source=nytimes&utm_medium=HPLink&utm_content=hp_browsetree&utm_campaign=NYT-HP
[71]: https://www.nytimes.com/seeallnav
[72]: https://www.nytimes.com/membercenter
[73]: http://www.nytco.com
[74]: https://www.nytimes.com/hdleftnav
[75]: https://www.nytimes.com/digitalleftnav
[76]: https://www.nytimes.com/crosswords/index.html
[77]: https://www.nytimes.com/marketing/newsletters
[78]: https://myaccount.nytimes.com/mem/tnt.html
[79]: https://www.nytimes.com/giftleftnav
[80]: https://www.nytimes.com/corporateleftnav
[81]: https://www.nytimes.com/educationleftnav
[82]: https://www.nytimes.com/services/mobile/index.html
[83]: http://eedition.nytimes.com/cgi-bin/signup.cgi?cc=37FYY
[84]: https://www.nytimes.com/content/help/rights/copyright/copyright-notice.html
[85]: https://www.nytimes.com
[86]: http://query.nytimes.com/search/sitesearch/#/
[87]: mailto:accessibility%40nytimes.com
[88]: https://www.nytimes.com/ref/membercenter/help/infoservdirectory.html
[89]: http://www.nytco.com/careers
[90]: http://nytmediakit.com/
[91]: https://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html#pp
[92]: https://www.nytimes.com/privacy
[93]: https://www.nytimes.com/ref/membercenter/help/agree.html
[94]: https://www.nytimes.com/content/help/rights/sale/terms-of-sale.html
[95]: http://spiderbites.nytimes.com
[96]: https://www.nytimes.com/membercenter/sitehelp.html
[97]: https://myaccount.nytimes.com/membercenter/feedback.html
[98]: https://www.nytimes.com/subscriptions/Multiproduct/lp5558.html?campaignId=37WXW

