Sunday, January 31, 2010

SHADOWFAX: Many miles left to go! (setting up openMPI clusters)

OK, nobody said it would be easy!  Whoever said "instant super computer, just add water" when referring to setting up an openMPI cluster over a LAN of 25 multi core 64-bit nodes was nuts.  Oh, yeah, that was me...

How about a little bit of history?  CIS(theta), the Computing Independent  Study class, has been around in one incarnation or another for over a decade:

2009-2010 SHADOWFAX openMPI cluster with dual core 64-bit AMD 2 GHz Athlons (work in progress).  We are trying to emulate pelicanHPC (http://idea.uab.es/mcreel/ParallelKnoppix) on a Linux Partition.  We based this cluster on the Fedora 11 CD 64-bit Linux distribution and gigaE (gigabit Ethernet).

2008-2009 CISTHETA public key authentication cluster with dual core 64-bit AMD 2 GHz Athlons (used bash scripts to scatter/gather jobs on new architecture).  We did some nice ray tracings using povray (http://www.zazzle.com/cistheta2008).  We based this cluster on the KNOPPIX DVD 32-bit Linux distribution and fastE (100 megabit Ethernet).

1997-2007 CENTAURI openMOSIX cluster with various Pentium class processors (modified load balancing Linux Kernel that automatically sent jobs to other nodes whenever a node was overworked).  We also dabbled with Beowulf, PVM and MPI.  We based this cluster primarily on cluster KNOPPIX (http://clusterknoppix.sw.be), QUANTIAN (http://www.quantian.org) and BCCD (http://bccd.net) and basE (10 megabit Ethernet). For the last few years, we installed the QUANTIAN DVD to a Linux Partition and used a dual boot lab (with WimpDoze).  We did some nice fractals with the fork() method of g++ (http://cistheta2007.deviantart.com).

The main difference between CISTHETA and SHADOWFAX is twofold. Last year, CISTHETA did not implement any clustering environment like MPI.  We simply broke up our jobs into slices and sent and recieved results using bash scripts.  Another main difference was that we set up public key authenticated ssh clients such that you could login as "cluster" on any node, and be automagically logged into all nodes.  In fact, you could ssh to any node with or without the userid (cluster) and you did not need a passwd.  Lets call that "static public key authenticated ssh."  The static method is set up once and used many times.  This year we are using something I'll call "dynamic public key authenticated ssh," such that the RSA keys are generated on the fly.  Under both schemes, the user could start a parallel job from any node making that node the master node and control any number of other nodes as workers.

What's frustrating about all this, is that most of the clustering software we've tried seem to work great "right out of the box" on any one multi core node.  In other words, SMP works by default, but extending the parallel jobs over a cluster of such nodes is a production!  These clustering packages are as follows:

parallelJava: http://www.cs.rit.edu/~ark/pj.shtml
parallelPython: http://www.parallelpython.com & http://www.sagemath.org/doc/numerical_sage/mpi4py.html
openMPI: http://www.open-mpi.org
dSAGE: http://www.sagemath.org and http://www.sagemath.org/tour-research.html

We've gotten openMPI's Torque severs to work with gcc.  However, the Linux distro we based our new cluster on this year was the Fedora 11 CD 64-bit version.  I think we may need to start over with the Fedora 12 DVD 64-bit Linux distribution so as to include g++ as well.  We may all need to re implement "static public key authenticated ssh" which worked very well last year....


Happy Clustering,

SHADOWFAX: Many miles left to go! (setting up openMPI clusters)

OK, nobody said it would be easy!  Whoever said "instant super computer, just add water" when referring to setting up an openMPI cluster over a LAN of 25 multi core 64-bit nodes was nuts.  Oh, yeah, that was me...

How about a little bit of history?  CIS(theta), the Computing Independent  Study class, has been around in one incarnation or another for over a decade:

2009-2010 SHADOWFAX openMPI cluster with dual core 64-bit AMD 2 GHz Athlons (work in progress).  We are trying to emulate pelicanHPC (http://idea.uab.es/mcreel/ParallelKnoppix) on a Linux Partition.  We based this cluster on the Fedora 11 CD 64-bit Linux distribution and gigaE (gigabit Ethernet).

2008-2009 CISTHETA public key authentication cluster with dual core 64-bit AMD 2 GHz Athlons (used bash scripts to scatter/gather jobs on new architecture).  We did some nice ray tracings using povray (http://www.zazzle.com/cistheta2008).  We based this cluster on the KNOPPIX DVD 32-bit Linux distribution and fastE (100 megabit Ethernet).

1997-2007 CENTAURI openMOSIX cluster with various Pentium class processors (modified load balancing Linux Kernel that automatically sent jobs to other nodes whenever a node was overworked).  We also dabbled with Beowulf, PVM and MPI.  We based this cluster primarily on cluster KNOPPIX (http://clusterknoppix.sw.be), QUANTIAN (http://www.quantian.org) and BCCD (http://bccd.net) and basE (10 megabit Ethernet). For the last few years, we installed the QUANTIAN DVD to a Linux Partition and used a dual boot lab (with WimpDoze).  We did some nice fractals with the fork() method of g++ (http://cistheta2007.deviantart.com).

The main difference between CISTHETA and SHADOWFAX is twofold. Last year, CISTHETA did not implement any clustering environment like MPI.  We simply broke up our jobs into slices and sent and recieved results using bash scripts.  Another main difference was that we set up public key authenticated ssh clients such that you could login as "cluster" on any node, and be automagically logged into all nodes.  In fact, you could ssh to any node with or without the userid (cluster) and you did not need a passwd.  Lets call that "static public key authenticated ssh."  The static method is set up once and used many times.  This year we are using something I'll call "dynamic public key authenticated ssh," such that the RSA keys are generated on the fly.  Under both schemes, the user could start a parallel job from any node making that node the master node and control any number of other nodes as workers.

What's frustrating about all this, is that most of the clustering software we've tried seem to work great "right out of the box" on any one multi core node.  In other words, SMP works by default, but extending the parallel jobs over a cluster of such nodes is a production!  These clustering packages are as follows:

parallelJava: http://www.cs.rit.edu/~ark/pj.shtml
parallelPython: http://www.parallelpython.com & http://www.sagemath.org/doc/numerical_sage/mpi4py.html
openMPI: http://www.open-mpi.org
dSAGE: http://www.sagemath.org and http://www.sagemath.org/tour-research.html

We've gotten openMPI's Torque severs to work with gcc.  However, the Linux distro we based our new cluster on this year was the Fedora 11 CD 64-bit version.  I think we may need to start over with the Fedora 12 DVD 64-bit Linux distribution so as to include g++ as well.  We may all need to re implement "static public key authenticated ssh" which worked very well last year....


Happy Clustering,

Friday, January 29, 2010

ROOM429: Giving Thanx! (thank you package at donorschoose.org)

Oh boy, if you haven't heard about http://www.donorschoose.org you really owe it yourself, and your students, to check out this website yesterday and jump on this band wagon now! Here's my site, http://www.donorschoose.org/calcpage2010


This is a site whereby a teacher can ask for donations by writing an ad describing what they need for their classroom.  People can then peruse the various listings and decide if they want to contribute the full cost of the project or any fraction thereof.  I recently got a new PC Projector for my PC Classroom this way. Here's a blog about my project!


All I had to do afterward is an online thank you package.  Now I get more points to spend on a new project!  When you first sign up, I think you get 3 points.  After you spend points (worth about $200 each in their online catalogue) you can earn them back by completing the thank you package.  The picture you see above is one of many that I took for the thank you package. 


Here's a sample thank you letter one of my students wrote:

Dear XXXX,
Thank you so much for making it possible for our class to learn Calculus to the best of our ability.  The projector is an essential tool in our classroom because without it, we'd have to squint around our teacher as he furiously scribbled on the blackboard, and if we didn't copy down every detail of what he was writing, it would be erased forever!  With the projector, our teacher is able to use Smart Notebook to write notes that are projected on a large screen at the front of the classroom, so that even the students in the back can clearly see the large numbers, letters and graphs.  Everything that we see on the screen and hear coming out of the teacher's mouth is recorded onto a website where we can go back and re-watch each lesson for review.  Clips that are about 10 minutes long from each lesson are posted on You Tube so that studying for tests is easier and more concise.  The notes that are projected during class never have to be erased because they are saved on a website that enables us to print them out even if we miss class.  The projector enriches our Calculus experience and makes it immeasurably more convenient to study for this notoriously difficult subject.  I know I speak for every student in the class when I say, "I can't imagine Calculus class without the wonderful projector you have so generously helped us obtain."

Sincerely,
Learning with Technology,

Thursday, January 28, 2010

COMPUTING: TI BASIC was a huge success! (teaching BASIC in today's PC classroom)




First, I showed all those http://www.youtube.com videos on programming the TI-83/84.

Then, I installed VTI on my Fedora 11 CD clients using wine. 

So, we wrote some simple IPO (input, process, output) programs (eg: input 3 sides of a triangle a,b,c and process the area with heron's formula and output the answer).  

We also wrote some looping apps (ie: enter a number of grades to average).  
Finally, we wrote a quadratic equation solver that used conditional statements to output the nature of the roots as well as the roots themselves in a+bi form.  
For a week and half final project for a semester intro course, I think it went quite well.

BTW, I misspoke in my last posting on this subject. I said there were a number of good sample programming videos on youtube for the TI-83/84. I also said, mistakenly, that there were no such good videos for the TI-89. Well, see the video for yourself as its embedded above. I don't know how I missed it as its one of my own recordings! 


Teaching with Technology, 

Monday, January 25, 2010

SAGE: Taking the show on the road! (up coming conferences and art shows)


I have several conference talks and art shows coming up: ICON 3/26/2010 Art Show & Print Shop (Science Fact & Fiction at SUNY Stony Brook) http://www.iconsf.org
LIMACON 4/16/2010 "Look Ma, No Calculator" (Long Island MAth CONference at SUNY Old Westbury) http://ncmta.net/limacon.htm
PI DAY 4/17/2010 Art Show (at Suffolk County Community College Grant Campus) http://ncmta.net/PIdayContest.htm
T^3 11/5/2010 "Look Ma, No Calculator" (Teachers Teaching with Technology at Molloy College) http://www.molloy.edu/ce/t3/
The conference talks will be based on a presentation I gave earlier this year at a Staff Development Day at my school: "Look Ma, No Calculator!"  In this presentation I'll compare and contrast how I use a TI-83/84 vs how I use SAGE http://www.sagemath.org in math class (see summary below).  For example, take a look at http://ncmta.net/Limacon/Limacon2010.pdf session #47.  I will also discuss my youtube channel http://www.youtube.com/calcpage2009 and how I record my lessons.
The art shows will showcase the digital art prints (fractals, ray tracings, etc) my students created on our cluster, SHADOWFAX. Take a look athttp://cistheta2007.deviantart.com for the fractals and http://www.zazzle.com/cistheta2008 for the ray traced scenes.


"Look Ma, No Calculator" summary:  This will be a "Show & Tell" session where I show you how I teach math using technology without ever touching a calculator!  In Part I, I'll show you the old fashioned way using a TI-83/84 Graphing Calculator (or the TI-89/92 if there's interest).  If you have your own TI Graphing Calculator, please use it to follow along!  But that's SO last century...  So, in Part II, I'll show you how we do things in my classroom now-a-days using SAGE, a Computer Algebra System!  I'll leave it up to you to pick and choose any techniques you think you may want to use in your classroom.
PART I: I will record a math lesson on something simple like solving quadratic equations with a program (see http://www.sagenb.org/home/pub/967).  I will use Smart Recorder or Screencast-o-Matic + Smart Notebook + VTI to render the class recording as a wmv or mp4 file for uploading to my FTP site or YouTube. (30 min)  
PART II: Then we'll reboot all the PCs in Linux with the SAGE CD and show how the same lesson can be done with a Computer Algebra System.  You can follow along using your own PC! (30 min)  
PART III: In summation, I'll share my website, blog, and youtube channel, as well as my zazzle and deviantart digital art galleries.  I will also show everyone how to use http://www.sagenb.org with any Mozilla clone so they won't even need a SAGE CD. (15 min)  
PARTY FAVORS: Everyone goes home with my URLs (see business card below) and their very own copy of SAGE (on a live linuxCD)!


Generally speaking,

Sunday, January 17, 2010

COMPUTING: Youtube Wednesdays still going strong! (teaching TI-83 BASIC)




I have a Computer Math class every Fall semester and an Advanced Computer Math class every Spring.  This is an introductory year for learning how to program, look at some algorithms and start a little Scientific Computing.  In the Fall, we use yabasic (http://www.yabasic.de) in Linux which is a lot like the old IBM BASICA and MS QBASIC.  We sometimes use MS VB6 or REALbasic (http://www.realsoftware.com).  In the Spring, we play around with a little C++. 
I like to do a final project the last 2 weeks or so of each semester that’s a little different each year.  This year, I installed WINE on our Fedora clients and installed VTI, the Virtual TI graphing calculator emulator.  So, I’m thinking of using what my students learned about yabasic to program a TI-83 at the end of this semester.  Then, I’d like to use what they learned about C++ to program a TI-89.

Take a look at the youtubes I embedded above with this article.  I showed one two weeks ago to wet my students’ appetite.  I showed the quadratic equation one this past week.  We’re going to write programs like these next week on our TI-83 emulators!  Unfortuantely, there aren’t any good youtubes on programming a TI-89.  As luck would have it, I can use my best seller on EBay: http://cgi.ebay.com/TBP-TI-Calculator-Active-Programs-I-Wrote-for-Calculus_W0QQitemZ300341576351QQcmdZViewItemQQptZCalculators?hash=item45edc0c29f#ht_9418wt_1165

Teaching with Technology,

COMPUTING: Does this happen to you? (my legend precedes me)


OK, I’ve been teaching people how to program since 1975.  I’ve been teaching AP Computer Science since 1988.  I’ve been installing and maintaining LANs and Clusters since 1993.  So, I suppose my legend precedes me….
What am I talking about?  Well, whenever someone’s mouse isn’t working or monitor starts acting funny or they can’t login or save their work, “all I have to do is touch it!”  I put that in quotes because my students always say it.  If a student’s program won’t compile, sometimes all I have to do is walk by and it suddenly works.

Case in point, my brother-in-law has finally entered the 21st century.  He broke down and got a wireless Gateway laptop from http://www.hsn.com and enabled his wireless router from Verizon.  He was surfing over to http://www.facebook.com every day, happy as a clam, until the mouse stopped working.  Needless to say, hours of tech support from India was not very helpful.  So, he was incredulous when my own children said, “all he has to do is touch it!”  He didn’t want anyone to touch the laptop lest it break even more.  He was about to return the laptop to HSN when he let me touch it!  Guess what, I literally touched a button on the top of the display and all was well with the world once more.

Generally speaking,

Thanx http://www.donorschoose.org! (using donors to get equipment for my PC Classroom)

I finally have a brand new Sharp XR-32X Multimedia DLP XGA Projector that produces 2500 lumens with a 2200:1 contrast ratio.  Thank God, we can now view my Smart Notes without going blind. Here's my donor site, http://www.donorschoose.org/calcpage2010
This is all thanx to http://www.donorschoose.org where I posted last year that I needed a new projector for all my Smart Board and YouTube work.  Two kind donors surfaced during the summer and funded the project. I confirmed the order in September, but the original item was out of stock.  I ordered the Sharp projector and got it in October.  However, its been sitting in a box until now as we didn’t have the right ceiling mount.  So, thanx also go to the Tech Dept for finally making me a decent mount!

I will be completing an online thank you packet this week on http://www.donorschoose.org which involves my students writing thank you letters to the donors and my taking pictures of them using the projector with my Smart Airliner Slate.  I also have to get permission slips from the parents to display these pictures on their site.  Once this packet is complete, I get more points enabling me to ask for more funding!




Learning with Technology,

SHADOWFAX: Meeting VII postponed due to make up week (trials and tribulations of using openMPI and g++ on a Fedora based cluster)

Today's Aim: g++, where fore art thou, g++?
Tonight's Reading: Building Parallel Programs, Chapter 7
This Week's Research: installing g++
Attending Thurs: JeremyA, SteveB, DevinB
This Thursday we will take stock of what we've done and what needs to be done.  For example, we got a Hello World program (hello.c) working over our Fedora based cluster using openMPI and gcc.  This is a great accomplishment!
However, when we tried to do this with C++ (hello.cc) we found that g++ was not installed!  I did not realize that the 64-bit Fedora 11 CD we used for installation had GNU GCC with only gcc installed.  Usually, GNU GCC has gcc, g++, gf77, etc.  A lot of room on the CD is taken up with GNOME and Compiz.  So, we tried to yum install gcc but found the mirrors were down or missing or blocked???



Happy Clustering,