Data Centers

Vol. 8 No. 3 – March 2010

Data Centers

Interviews

A Conversation with Jeff Heer, Martin Wattenberg, and Fernanda Viégas

Sharing visualization with the world

A Conversation with Jeff Heer, Martin Wattenberg, and Fernanda Viégas

Sharing visualization with the world

Visualization can be a pretty mundane activity: collect some data, fire up a tool, and then present it in a graph, ideally with some pretty colors. But all that is changing. The explosion of publicly available data sets on the Web, coupled with a new generation of collaborative visualization tools, is making it easier than ever to create compelling visualizations and share them with the world.

To explore some of the key developments in this fruitful new age of visualization, we've assembled an all-star cast of researchers who are responsible for some of today's most popular and engaging new visualization tools: Jeff Heer, Martin Wattenberg, and Fernanda Viégas. Heer, who graciously agreed to be our interviewer, is an assistant professor at Stanford University who focuses on human-computer interaction, visualization, and social computing. He led the design of the popular open source visualization toolkits Prefuse ( http://prefuse.org/ ), Flare ( http://flare.prefuse.org/ ), and Protovis ( http://vis.stanford.edu/protovis/ ). He received his B.S., M.S., and Ph.D. degrees in computer science from the University of California, Berkeley, and in 2009 he was named to MIT Technology Review's TR35, a list recognizing 35 innovators under the age of 35.

Broken Builds

Frequent broken builds could be symptomatic of deeper problems within a development project.

Broken Builds

Frequent broken builds could be symptomatic of deeper problems within a development project.

Dear KV,

Is there anything more aggravating to programmers than fellow team members checking in code that breaks a build? I find myself constantly tracking down minor mistakes in other people's code simply because they didn't check that their changes didn't break the build. The worst part is when someone has broken the build and they get indignant about my pointing it out. Are there any better ways to protect against these types of problems?

by George Neville-Neil

Articles

Cooling the Data Center

What can be done to make cooling systems in data centers more energy efficient?

Cooling the Data Center

What can be done to make cooling systems in data centers more energy efficient?

Andy Woods, Cambridge University

Power generation accounts for about 40 to 45 percent of the primary energy supply in the US and the UK, and a good fraction is used to heat, cool, and ventilate buildings. A new and growing challenge in this sector concerns computer data centers and other equipment used to cool computer data systems. On the order of 6 billion kilowatt hours of power was used in data centers in 2006 in the US, representing about 1.5 percent of the countrys electricity consumption. Of this power demand, much more than 20 percent is typically used for cooling the computer equipment, but some newer installations have managed to reduce consumption through a series of innovations in the design of data-center cooling systems, as well as improvements in the software and hardware.

The need to control power consumption is of increasing importance as computing power grows and large data centers house increasingly dense arrays of servers. A number of different systems can be adopted to provide cooling for these large, energy-intense buildings, and opportunities continue to emerge for improving the energy efficiency of cooling schemes.

by Andy Woods

Enhanced Debugging with Traces

An essential technique used in emulator development is a useful addition to any programmer's toolbox.

Enhanced Debugging with Traces

An essential technique used in emulator development is a useful addition to any programmer's toolbox.

Peter Phillips

Creating an emulator to run old programs is a difficult task. You need a thorough understanding of the target hardware and the correct functioning of the original programs that the emulator is to execute. In addition to being functionally correct, the emulator must hit a performance target of running the programs at their original realtime speed. Reaching these goals inevitably requires a considerable amount of debugging. The bugs—which for players of old arcade games are a vital part of re-creating the original experience—are often subtle errors in the emulator itself but could also be a misunderstanding of the target hardware or an actual known bug in the original program. (It is also possible the binary data for the original program has become subtly corrupted or is not the version expected.) Solving these problems requires some unusual debugging techniques.

The debugger of the host system can be used for the target (emulated) system by setting a breakpoint in the CPU do-instruction loop and examining the variables that hold the contents of the emulated CPU registers and main memory. This works for small and easily localized problems such as failures in the self-test or initialization code but is not of much use for problems that happen at a later stage in the execution. At that point the organization of the program is not apparent. No debug symbol or source code is available to allow a high-level approach to the problem. More powerful techniques are required and are built into the emulator itself.

by Peter Phillips