23 November 2010

The Biologist of Computing

"Clearly, the organizing principle of the brain is parallelism. It's using massive parallelism. The information is in the connection between a lot of very simple parallel unit working together. So, if we built a computer that was more along that system of organization, it would likely be able to do the same kinds of things the brain does."
- Daniel Hillis
W. Daniel Hillis's interests in science and technology came from his parents. His father was an epidemiologist while his mother was very interested in mathematics, and both his parents went to great lengths to instill curiosity in these subjects. Hillis's curiosity and craftiness enhanced his experience with technology during his youth. His first real exposure to the world of digital computing was in the late 1960s when he had the chance to look at George Boole's An Investigation of the Laws of Thought (1854) which outlined the principles of elementary Boolean algebra. After toying with these ideas, he eventually learned to program. In 1974, however, he entered MIT "determined to find out how the brain worked" planning to major in neurophysiology (192). At MIT, Hillis met Marvin Minsky and John McCarthy and fully discovered the vast world of computing and started working at MIT's Artificial Intelligence lab in the LOGO group on a project involving computer technologies that followed the evolutionary principle of emergence which states that "interacting agents will adapt, through a process of selection, a mechanism for survival" (193). Soon, Hillis' idea for the Connection Machine was born. In attempt to mimic the massive parallelism used by the brain, the Connection Machine was designed to be a computer made up of thousands of processors all linked together each with its own control and its own memory. The machine was connected, initiated, and set "free" to run in hopes to discover the emergence of new smarter technology from the pre-existing one. A perfect project for a lover of both biology and computing, the Connection Machine was the perfect project for Hillis, but it is clear that the Machine is only the beginning to our understanding of evolutionary trends in computing.

22 November 2010

The Driver of the Digital Fast Lane

"Speed is exchangeable for almost anything. 
Any computer can emulate any other at some speed."
- Burton Smith
Burton J. Smith's career had a very rough start. Smith, born in 1941 in Chapel Hill, NC, moved with his family to New Mexico when his father, a professor of chemistry, was offered at job as the head of the University of New Mexico's chemistry department. Smith was constantly fascinated by technology, but only after he came back from the military did he know what exactly he wanted to do - design of electronic devices. Therefore, he graduated in 1968 with a B.S. in electrical engineering from the University of New Mexico and went on to MIT where he completed his doctorate in 1972. A lot of Smith's work from then on was focused on optimizing the hardware structures that support the newly implemented pipelining process - both pipeline parallelism and multiprocessor parallelism - used in computation. Smith and his colleagues at Denelcor, a small computing company based in Denver, Colorado, strove to create a supercomputer which would employ high-efficient parallel processing. In other words, they wanted "to design a machine that would perform and operation as soon as its inputs were ready" (180). They called this approach, which was first developed by Jack Dennis of MIT in the 1970s, "dataflow architecture" (180). After some time in development, it was clear that this approach has a very significant impact on the discipline, as dataflow architecture is also applied to digital memories and networks of all kinds, just to name a few. Smith's success eventually followed him to the Tera Computer Company in Seattle, WA where he had another revelation that boosted performance of the pipelining process - "different operations within a task may sometimes be executed out of order" (186). This idea significantly sped up data processing in computers and ultimately led us to the modern-day process.

21 November 2010

Computer History Museum - The IBM System/360 Revolution

The Inventor with a Delight in Making Things Work

"It is better to take a driving problem that is 
someone else's problem, because it keeps you honest."
- Frederick Brooks
With great abilities and interest in engineering and science, Frederick P. Brooks, Jr., born in Durham, NC in 1931, started his career at Duke University with a double major in physics and mathematics. He graduated in 1953 and realized that he was much more drawn to "a younger field" than physics, so he decided to pursue computer science. He did so at Harvard University under the leadership of Howard Aiken, a pioneer in computing and one of the original designers of the Harvard Mark I computer used during wartime to calculate "the trajectories of battleship artillery shells based on" various criteria (162). He graduated in 1956 and joined IBM to work on what was then considered an "extremely ambitious" project called the Stretch computer, the world's fastest (at the time) supercomputer that utilized many of the same concepts that are used to implement modern computer architecture (163). Eventually, Brooks became the project manager of the development of the IBM System/360 line of computers. As a part of that project, he and his team received the opportunity to research and improve the OS/360 software package which was used on the system. A direct descendant of the OS/360 now runs on the majority of the big IBM mainframes. In 1964, Brooks returned to his home state upon receiving a job opportunity at the University of North Carolina in Chapel Hill where he founded the Department of Computer Science, which at the time was the second one in the entire nation, that same year. The department focuses its research efforts on three-dimensional, real-time computer graphics, computer vision, and virtual reality. In other words, it is what Brooks calls "intelligence amplification," and he explains:
"The artificial intelligence approach is to replace the mind. Our approach is always to have the mind at the very center of the system. Now the artificial intelligence community has come around to this idea after twenty-five years. But that wasn't where they started out. They used to say, 'We're going to be able to solve these problems. You don't need a mind.' In fact, you do need a mind."
His approach may not be a conventional, but it is certainly a good one, and Brooks is right - people will probably always be better than computers in terms of intelligence. The research to make them smarter continues, but we must never forget that computers are only tools for people to use and there are always much more important things to consider.

20 November 2010

The Investigator of Time, Space, and Computation

"A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable."
- Leslie Lamport
Leslie Lamport's initial interests were not simply in science; they were in Einstein's theory of special relativity. Born in 1941 in New York City, Lamport graduated first from MIT with a B.S. in mathematics, then from Brandeis with a PhD in the same field. After graduation in 1972, Lamport continued his work with COMPASS (Massachusetts Computer Associates), the company that was "contract[ed] to write a Fortran compiler for the ILLIAC IV" (125). While with COMPASS, Lamport had the chance to do some research on the variety of algorithms. At that point, Dijkstra's many algorithmic solutions for computer science problems were widely publicized, and Lamport was able to not only use these algorithms but also optimize them. Lamport's Bakery Algorithm and his work on atomic registers provided many software and hardware solutions in industry application, especially those dealing with early integrated circuitry. His work on distributed systems also made a lasting impact in computer science, as today these algorithms are used to govern networks and larger applications that employ multithreading. Lamport's another invention famous only in the tech community is LATEX, a formatting system which he implemented as a hobby in his spare time. Today, "close to 75% of all computer science papers are written in LATEX." If that is not a clear, lasting impact on the discipline, what is?

16 November 2010

The Seeker of Good Structure

"I visualize structures, graphs, data structures.
It seems to come easier than a lot of other things."
- Robert Tarjan
Robert E. Tarjan, born in Pomona, CA in 1948, is the generator of "good ideas", and he managed to come up with quite a few of them through his remarkable career in computer science. Interested in science and mathematics from a very early age, Tarjan was always a big fan of precise and rigorous proofs and, in high school, would often doubt his professors if they did not completely explain the reasoning behind their math. This mindset led Tarjan first to Caltech, then to Stanford which he graduated in 1972 with a PhD in computer science and a minor in mathematics. This doctoral thesis and most of his early work focused on graph-based planarity algorithms, which led Tarjan to the research and development of depth-first search algorithms and the data structures that stem from these. Tarjan's latest work was in the development of persistent data structures "in which you can keep track of previous versions as well as most recent version" of state systems and "do [so] efficiently, without copying [] entire data structure[s]" of data every time the program runs (117). Persistent data structures allow for the development of recently discovered applications in computational geometry and parallel processing called temporal databases which "are designed to recreate snapshots of the past quickly and efficiently" (118). All the numerous algorithms that Tarjan had the opportunity to work on embody his legacy while he continues his work in computer science, with some advice to present-day programmers: "What do you need to be successful? You need brains but you also need stick-to-itiveness. Many tries at a solution can fail, but then on the last try something magical happens," and that magical phenomenon is worth it - every time (119).

The Art of Programming