In the 1950s, when processor cycle times were measured in microseconds, algorithm design and clever programming could make or break an application. These fields continued to be popular in the 1960s and 1970s, because widespread computers were used to attack ever larger problems. Programming was a hip and trendy occupation. Today's $500 computers operating on GHz clocks allow anybody who has (just about) mastered the syntax of a programming language to write code that drives dynamic web sites serving hundreds of transactions each minute. Managers consider code a commodity, and enrollments to computer science degrees are dwindling. However, change is in the air.
In the past month I read two interesting articles on code performance and optimization. In this month's ;login:, published by the Usenix Association, Steve Johnson had an article titled Algorithms for the 21st Century, where he presented a series of experiments demonstrating some counterintuitive phenomena in the performance of modern computers. Then, in the last issue of the ACM Computing Surveys, I read a very interesting survey discussing the implementation of sorting in database systems. The article contained many clever methods for optimizing in-memory and disk-based sorting. Many of the schemes described are public knowledge but not widely known.
To me this mounting interest in computer performance issues indicates that increases in CPU performance are no longer matching our computing needs. Human intellect will be needed once again to fill the needs that were served in the past two decades by an inflation of CPU power. And this is good. Because, although I enjoy having fast computers around me, I prefer to celebrate the human intellect rather than flashy machines. And I'm sure that in a few years all my students will again be proud of the code they write.Read and post comments.
Last modified: Friday, November 3, 2006 8:43 pm
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.