I recently took the opportunity to reboot several pieces of my technology stack. The coolest perhaps is my new 6-monitor machine running Ubuntu Karmic. It is nontrivial to be comfortable that everything (CPU, GPUs, monitors, OS) will play nice together so I’ll detail exactly what I did so that others can repeat it if they want. One caveat: I don’t have visual effects working yet, but I don’t find them especially useful so that was not a big issue for me.
My motivation for doing this come from a couple of observations. First of all, there has been some research that shows that having more screen space increases productivity. This is partly due to the cost of context switching–if you bring up one application on top of another and go back, it can take a few seconds to reorient yourself. Physical context switching is easier–if you look a different way to see different information, and it is always in the same place, it is easier on your primitive mammalian brain. Moreover having more screen real estate reduces the need for storing the contents of the other windows in working memory. For example, I often work with emacs for latex, evince output, and evince and browser references. If I can have them all visible at once I can refer between them without having to context-switch and remember information. This frees working memory for harder stuff like math. My philosophy is that if I have overlapping windows, I’m paying some context-switching price.
The other hope is that certain tasks will get much easier. One of these is parallel programming. With a lot of screen real estate, it is easy to monitor what a bunch of machines are doing in real time and get a sense for where the inefficiencies are. This is related to the reasoning behind the most prolific users of multi-monitor setups, traders. Enough UI philosophizing, on to the setup.
The result is a 8gb RAM, quad core 2.8Ghz system rendering 6144×2304 for over 14 million pixels, for well under $4k. It is quite hard to find a vendor who will build you a 3 GPU system (the big guys generally don’t do 3 GPUs at all) and guarantee that it will work on Ubuntu or any Linux. I decided to go with JNCS, as they had built me a workstation a couple years ago which is still going strong even after several moves. The new machine is as follows (link to the exact configuration except the RAM):
- Antec 300 mid-tower
- 550 Watt power supply (you should go larger if you plan on high-power video cards)
- Asus P7P55-WS motherboard, socket 1156, supporting 3-way NVIDIA SLI
- Intel I7-860 LGA1156 at 2.8Ghz, quad-core, eight threads
- 4 Kingston 1333 2GB sticks of RAM
- WD Caviar 500GB HD
- Three 9500GT 512mb video cards, each with dual-dvi outs.
- DVD-RW lightscribe
I recommend calling them to place the order, as it is a little unusual. Make sure you tell them to build it with Ubuntu Karmic and 6 monitor support. It should run you around $1800. The video cards aren’t super-high-powered, but they are more than adequate for the purpose.
Next I bought 6 Samsung SyncMaster 2343 23″ monitors from Newegg (on the Samsung website). These offer an unusually high 2048×1152 resolution and I felt provided the best resolution bang for the buck, but any matched monitors will work. You can find them at Newegg and elsewhere for about $200-$210, less if you risk open-box. It looks like they might be sold out at the moment, so the crucial thing to check is the weight and dimensions (vs the stand spec), and VESA 100mm compatibility in other monitors. 22″ monitors can be found for $150 if you don’t mind a little smaller screen and resolution.
The monitors go in a Hex stand made by ergotech and found at http://www.ergonomicbusinesssolutions.com/product.asp?specific=643 . It is rated up to six 24″ monitors but I’m not sure I would try it. This is about $560 and it comes flat-pack. It is easy to assemble, but get some extra VESA mounting screws as mine was missing a few. Both stand and monitors have 100mm VESA mounts. Note that the bottom row mounts tilt straight to slightly upward while the top row tilts slightly down.
The total price should be around $3600, less than a high-end MacBook Pro, or what some vendors will charge you for the mounted screens alone.
Once you get all the pieces, it took me less than a couple hours to get up and running. You need a Phillips head screwdriver to install the VESA mounts, and the stand assembles with a provided Allen wrench.
I plugged in the monitors as the transpose of the physical layout, so the top left DVI port matched the top left monitor, the top right port the bottom left, and so on. On boot only the top left monitor will work until you finish the setup dialog. The one software wrinkle I ran into is that out of the box only the top 3 screens (the left DVI ports) worked. To fix this,
sudo nvidia-settings
and configure the each of the other three monitors with Twin View (not separate X screen), and to lie below its mate on the same video card. Enable Xinerama. Then save the configuration (to xorg.conf as suggested) and restart X by pressing Left-Alt, SysRq, and K. A thing of beauty.