Saturday, June 19, 2010

So many Linux distros, so little time!Fedora, CentOS, Ubuntu, oh my!

This has been a crazy couple of years!  We've been looking for a good 64bit Linux distribution that would fit the needs of the Computer Science and Mathematics classrooms as well as the needs of our cluster.

My Computing Independent Study (cistheta) students would like to put together a high performance cluster (HPC) to do some number crunching, fractals, openGL, ray tracing and animation. We've had good experience in the past using PVM, MPI and openMOSIX with C++ and povray. We've even used clusterKNOPPIX, parallelKNOPPIX, BCCD, QUANTIAN and pelicanHPC. But, that was in the world of 32bit....

Welcome to the 64bit universe! We fell heir to 25 dual-core AMD Athlons plus 2 quad-core Intel Xeons and have been banging our heads against the wall trying to figure out what do do with all this. Two years ago, we tried to scatter and gather jobs using bash scripts to run povray and C++ jobs to good effect. This year we tried parallelJava and openMPI over Fedora and CentOS but didn't get anywhere. We even tried Rocks.

We finally have 64bit Ubuntu 10.04 installed on all nodes and like how rock solid it is and how easy it is to maintain. We are wondering what kind of clustering environment we could install over this. Would OSCAR be a good fit?

We still have a dual boot system, but the default partition is the Linux one.  We are starting a new curriculum in Computer Math (intro to programming and discrete math) and Calculus Research Lab based on SAGE.  So, I set up the lab to be as user friendly as possible for our new kids and teachers next year.  The "Ubuntu Way" is not to have a super user or root account.  The only way to have root access is with the sudo command line and the "root" password is the same as the user password!  So, I setup each PC to boot the Linux partition, then login to the desktop without any user interaction (ie no password needed, so the students don't need to know it).  In addition to all this, Firefox is now one of the startup apps and I set the default homepage to  Not only are we running Ubuntu Linux all day, every day, we also have a SAGE lab running 24x7!

I also got the Teacher Station to run my "Youtube Recording Studio" in Linux and in Windows using the exact same hardware and apps.  I cheated a bit in that Smart Notebook for Linux only comes in a 32bit version.  So, the Teacher Station was installed with the 32bit Ubuntu 10.04 CD.  BTW, the Ubuntu users mailing list is full of lots of helpful peeps!  My abundant thanx go to them, I would never have figured all this stuff out in the short amount of time I had without them!  FYI, the only reason I have time to do this at all is because its Finals Week at good ol' Baldwin High!

Teacher Station with Windows XP
(1) Smart AirLiner Tablet or Wacom Graphire BlueTooth 6x8 Tablet
(2) Smart Notebook pen app
(3) Radio Shack 75Mhz Lapel Mic
(4) SAGE or VTI math app
(5) *.mp4 recorder

Teacher Station with Ubuntu 10.04
(1) Smart AirLiner Tablet or Wacom Graphire BlueTooth 6x8 Tablet
(2) Xournal pen app
(3) Radio Shack 75Mhz Lapel Mic
(4) SAGE or VTI math app (note to self: forgot to install WINE)
(5) *.mp4 recorder

Laptop with Windows Vista (on the road at conferences)
(1) Smart AirLiner Tablet or Wacon Graphire BlueTooth 6x8 Tablet
(2) Smart Notebook pen app
(3) internal Mic
(4) SAGE or VTI math app (note to self: forgot to install WINE)
(5) *.mp4 recorder
(6) PC Podium with audio, video and Ethernet drops or wireless

Now, I installed the 64bit Ubuntu 10.04 CD the same way on every PC:
Step 1)
prepare partitions with qtparted from the KNOPPIX CD first
    /dev/sda1    fat32    42GB    (resize, but no other changes, leave wimpdoze partition alone)
    /dev/sda2    swap    256MB (change to swap)
    /dev/sda3    ext3     41GB    (change to ext3 + format + / partition)

Step 2)
boot Ubuntu CD, click install, answer onscreen questions, run install

Step 3)
when the install process is done, you reboot and remove the CD
once the PC reboots and you get to the desktop, right click the vertical arrow icon on the top right
and edit the Ethernet interfaces
    eth0 set to auto DHCP
    eth1: ip = 10.5.129.x
            mask =
            gw =
            dns =
test internet connections with Firefox to and set as default homepage
test intranet connections with nautilus/ftp to

Step 4)
system/preferences/monitors set to highest resolution allowe for your desktop (except for teacher pc)
system/preferences/screensaver set to 1 hour
system/preferences/startup add Firefox (except for teacher pc)
system/preferences/mouse set mouse to slowest accel (only teacher pc)
right click desktop and select /change background to set your background and click visual effects for compiz
system/administration/login set to no password (except for teacher pc and server)
system/administration/printers set network printer HP Laser Jet 4250 at

Step 5)
install jre1.6.0_20 as a Firefox plugin for 3D graphics in SAGE
system/preferences/networkproxy set to system wide and:
sudo aptitude update (or system/adminitration/softwaresources, adding canonical first)
sudo aptitude safe-upgrade (optional)
sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-fonts install sun-java6-plugin
(all one line in that order, could use sudo su)
dissable proxy and test firefox with about:plugins as the url to see that the jre was plugged in!

alternate Step 5 - if no proxy available)
install jre1.6.0_20 as a Firefox plugin for 3D graphics in SAGE
download jre-6u20-linux-x64.bin or jre-6u20-linux-i386.bin 
to /usr/lib/firefox-addons/plugins
open a terminal and 
    cd /usr/lib/firefox-addons/plugins
    sudo chmod 755 *.bin
    sudo ./*.bin
    cd ~/.mozilla
    mkdir plugins
    cd plugins
    ln -s /usr/lib/firefox-addons/plugins/jre1.6.0_20/lib/amd64/
    ln -s /usr/lib/firefox-addons/plugins/jre1.6.0_20/lib/i386/
if is not there, then
test firefox with about:plugins as the url to see that the jre was plugged in!

another alternate Step 5 - if no proxy available)
download the *.deb files from my ftp site and follow instructions there.

Step 6)
install optional software like VLC, handbrake, xournal via aptitude+proxy or Smart Notebook from or games from  Actually, I don't recommend Smart Notebook as its very complicated to install and maintain.  That's why I installed xournal....

Servers need: vsftp and openssh-server
Teacher Station needs: jre, flash, wine, VLC, handbrake and xournal
Student Stations need just jre

HTH, good luck with your Linux boxes!


  1. Haha, so you've finally gotten around to installing HandBrake! I swear that's got to be my favorite piece of open source software... Anyway it's awesome you've got a good workflow set up for next year, no more futzing around for weeks testing out distros >.<

    Actually I kept forgetting to send you an email but I had an idea for installing the linux on the machines that didn't involve burning 25 DVDs... Remember how ROCKS would pixie-boot the machines and then run the installing over the LAN? It occurred to me that you could probably do something similar when installing Ubuntu. I know in server industry it's pretty common to do remote OS installs on the clients. Hell the box I've got running OS X Server at home has a mass drive imaging program. Heh, maybe in the future you can just do the install in a VM and then image that configuration onto all the machines.

    Man it's just my luck that everything starts working smoothly the year after I'm gone. I suppose we were the crash course though, new tools and such. Ah, all I can say is...Fedora...........NEVER AGAIN! :P


  2. Thanx, Jeremy, that's good to know! Well, its a shame we didn't get a 64 bit cluster up and running this year. Don't forget that last year Marc and Mitchel got povray to cluster in 32 bit over this 64 bit hardware! Also, the year prior, Chris, Frank and Nathaniel wrote a C++ fractal program that ran over openMOSIX on 32 bit pentiums!

    A. Jorge Garcia