Busy making things: tinycast, github, links, photos, @mc.

Mono on ARM

Posted: August 22nd, 2005 | Author: | Filed under: Linux, Mobile, Open Source | Comments Off

Thanks to ljl for pointing this out in #maemo:

People may be interested to know that the initial pass at the JIT port to ARM is in svn.
make test in mono/tests reports 123 pass, 70 fail.
Most of the regression tests in mini/ work as well.

Nice! There are still some hurdles to be overcome, but this is great news.


My New Class 1 Bluetooth Dongle

Posted: August 21st, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 2 Comments »

I’ve had a trusty low power Bluetooth dongle for a couple of years now, but I jumped on the opportunity to pick up a Hawking Tech HBTC1 Class 1 adapter for $10 after rebates at CompUSA. I wasn’t able to determine on the taco if this puppy worked with Linux or not, but I decided that It would be useful even if it didn’t for $10.

Unfortunately the definitive listing of Bluetooth devices that work under Linux with BlueZ has been taken off the air:

Whether or not you’re selling them makes no difference. The problem is due to the distribution of them from your Web site. Please note that the use and distribution of non-qualified products is a violation of the Bluetooth License Agreement. As neither of these products have been qualified using Linux it is illegal to make them available for public use.

Total bummer. For the time being anyway you can find the list thanks to The Internet Archive. My Hawking tech device wasn’t listed, but I can assure you that at least hcitool scan works just fine.


Hula Visual Upgrade

Posted: August 20th, 2005 | Author: | Filed under: Linux, Open Source, Web Services | 1 Comment »

Nat shows off the sexy new interface to Hula. The screencast looks quite impressive. Hula has definitely come a long way in a short time, even though it was an awesome little project when it was released as open source.


Browser Options for the Nokia 770

Posted: August 9th, 2005 | Author: | Filed under: Linux, Mobile | 10 Comments »

It looks like users will have several browser options to choose from when the Nokia 770 drops.

Since web browsing is one of the core uses of the 770 it’s great to have so many varied options even before the device is available. While I expect the bundled Opera browser to be top notch, I have a lot of respect for both Gecko and KHTML, the little rendering engine that could. It’s really amazing to have so many options.


GPE-Calendar on Maemo

Posted: August 8th, 2005 | Author: | Filed under: Linux, Mobile | 2 Comments »

Matthias has made progress on a GPE-Calendar port to the Maemo platform. Porting GPE-Calendar is a lot harder than a lot of ./configure; make; make-install “ports” to Maemo, and it looks like it is coming along nicely. The Nokia 770 is still officially not a PDA mind you, but the more solid apps available for the platform on launch day the better.


Using Asterisk with Gizmo

Posted: August 7th, 2005 | Author: | Filed under: Linux, Open Source, Web Services | 30 Comments »

This wiki page contains instructions for setting up Asterisk to use your Project Gizmo account for both incoming and outgoing calls. It’s a nice little hack and sounds like a perfect way for me to tinker with outbound VoIP using a spare box and a generic card that I picked up on Ebay months ago. BroadVoice‘s Bring Your Own Device plans also sound worthwhile.

I’m extremely impressed with the configurability of Asterisk. You can do just about anything you can imagine with it, including routing incoming calls based on caller ID info, and extremely complex outbound routing. With the right configuration it’s no big deal to use POTS for outgoing local calls and even multiple VoIP accounts if one has cheaper rates in a partiucular area, all matchable by dial string.

It’s definitely overkill for a simple answering machine, but it’s truly powerful platform.


Mozilla Minimo .007

Posted: July 28th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 85 Comments »

Very early this morning I saw a story fly by on Yahoo! News about a preliminary release of Minimo for PocketPC. I thought that was kind of neat so I checked out the Minimo homepage but didn’t see any downloadables. Lo and behold just a few hours later, PocketPC Thoughts has tracked down a screenshot and a link to the download. I think the tabs are critical for me.

I would also love to see Minimo on the Nokia 770, though the device ships with Opera which looks like it will have a lot of polish. Even so it would rock to have browser alternatives such as Minimo and GTK+ WebCore.


Nokia is Serious About Linux and Maemo

Posted: July 27th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 2 Comments »

This entry at Gnome FootNotes confirms that the Maemo/770/Linux team is indeed growing and that Nokia really is serious about this whole Linux and open source thing. There are currently 9 open job positions relating to the Maemo platform. Sure that’s a drop in the bucket for a company as large as Nokia, but it’s significant too.


OXLook for OPEN-XCHANGE

Posted: July 19th, 2005 | Author: | Filed under: Linux, Open Source | 4 Comments »

Nice! I was looking for more information on how much OXLook for the open source version of OPEN-XCHANGE is, and they’re only $20 a seat! More information on the Outlook connector can be found here.

In an ideal world it would be awesome if I could use the built-in exchange syncronisation on my Dell X30, but that’s a no-go. Plugging it in to a windows desktop in order to sync changes made from the web portal or from ical-over-webdav to Evolution( (I hope) might be the closest I can get to perfection.

I’m still not sure what is going to be best to get me organized, but right now I think a “try something and see if it works” attitude is the way to go.


OPEN-XCHANGE, Finally!

Posted: July 16th, 2005 | Author: | Filed under: Linux, Open Source | 4 Comments »

Open-Xchange, Finally!

I can’t tell you how many hours I’ve put in to getting to this screenshot, which if you can’t tell means that I have a working OPEN-XCHANGE installation. Just after OX was released as open source I repeatedly tried to install it without success. The install instructions always seemed to be slightly out of sync with reality and I usually got about 3/4 of the way through but died horribly during slapd or OX.

Starting last night just before bed and finishing this evening when I had free time, I followed these excellent instructions (login required) to install OX on a fresh Sarge install. I’d like to thank Murphy and everyone who provided him input, including Laurent Francoise, who got me so close so many times.


Killer Mobile Interfaces with Python and Maemo?

Posted: July 15th, 2005 | Author: | Filed under: Linux, Mobile, Open Source, Python | 2 Comments »

Thanks to INdT‘s hard work, Python as well as PyGame are available for Maemo and the 770. This got me thinking about how cool it would be to use PyGame on Maemo to develop simple (but really good looking) apps with that “video game menu” feel to it. Killer apps like MythTV Freevo have proven that you can use PyGame to create killer interfaces.

I’m going to put this somewhere on my long list of things to do in my spare time, but it would rock if someone ran with this. What do you think?


Maemoizing X-Chat

Posted: July 14th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 6 Comments »

Someone has been busy Maemoizing X-Chat. I was able to get a vanilla build of XChat running on Maemo but text input was a bit tricky. With a little tweaking it should be a great IRC app for the 770. While I still haven’t gotten around to applying the patches to Gaim mentioned on maemo.org, that should also be a viable option for IRC as well as AIM, MSN, Jabber, and others.


Maemo Subversion Repository

Posted: July 13th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 3 Comments »

Good news from the Maemo developer’s list coming not long after the announcement of the official Maemo Wiki:

Hi all,

Starting from now, a subversion repository is available for everyone at:

https://stage.maemo.org/svn/maemo

login: guest

password: guest

Currently just a few packages were imported, but expect all the others
to pop up in the coming days/weeks. Bleeding edge development and latest
bug fixes will happen there.

Stay in tune!

luc

This should make tracking the bleeding edge just that little bit easier. Thanks again to everyone at the Maemo team for all of their hard work.


Aggregating Again

Posted: July 7th, 2005 | Author: | Filed under: Linux, Weblogs | 2 Comments »

The little linux box that runs my aggregator of choice has been down for the past week or two due to a physical location switch. The den-datacenter is taking shape but still needs more organization. The good news is that the aggregator/debian desktop and my Ubuntu/Windows desktop are both running via a 2 port KVM at my desk and I’m sorting out the rest of the bunch that will live on the other side of the room.

I forgot how much I rely on my aggregator to keep me up to speed. Functioning without one required a lot more work checking various sites, and I’m sure that I missed a bunch of goodies that got away. Expect more technical posts soon!


Successful Error

Posted: June 30th, 2005 | Author: | Filed under: Linux | 2 Comments »

Successful Error
Successful Error

I know why this error occured (no network connectivity at the time), but regardless it’s an amusing error. It’s definitely better than seeing LI_ when your machine boots…


In Defense of the 770

Posted: June 16th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 50 Comments »

Nancy Gohring was able to get her hands on a Nokia 770 prototype the other day at a press event in Helsinki. She posted a review on Mobile Pipeline and cross posted a shorter review on Wi-Fi Network News. Every postitive thing she said about the device hinted at the fact that she hated it because it was dog slow. One must remember that the processor behind the 770 is a 220MHz ARM, and that a 220MHz arm just isn’t a 2GHz Pentium 4. Having said that, I’m pretty sure that the final device will be a bit zippier than the one she played with. I’m also pretty sure that the boot time will be resolved on the final device and will be quick enough.

I also think that a 800×480 high resolution screen in a device that size is quite an accomplishment and shouldn’t be overlooked. It’s not a 15 inch LCD, but it’s also extremely portable. While the operating system won’t officially include VoIP and instant messaging until the Internet Tablet 2006 update, there is a tutorial on porting Gaim to Maemo on the website, and I know of several people working on VoIP, SIP, and other communications programs for the platform. Silky, a secure internet chat client, has already been ported to Maemo, the development environment for devices like the 770. My guess is that there will be a handful of communications programs available for the 770 at launch time.

While the press junket might be the first time members of the press have been able to play with a Nokia 770, it has been shown (and I believe demoed) at the Linux World Summit in New York and Guadec 6 in Stuttgart.

In conclusion, I think there’s a ton of potential in this device. While the 770 is never going to be a fullsize notebook in terms of performance, I’m pretty sure that the speed and responsiveness will be better on the final device than the one Nancy was able to play with. There are a lot of people around the world working very hard to make sure that the Nokia 770 and the platform it is built on are as solid and fast as can be. I’m definitely looking forward to purchasing my developer device as soon as it’s available and testing a bunch of apps on the device.


Linux Device Drivers, 3rd Edition

Posted: June 14th, 2005 | Author: | Filed under: Linux, Open Source | 6 Comments »

You can find a copy of Linux Device Drivers, 3rd Edition on LWN. The work, current to Linux 2.6.10, is licensed under a Creative Commons Attribution-ShareAlike license. While it’s available for free, if you really dig it, grab a physical copy published by O’Reilly to support the authors and forward-thinking publisher.

I’m definitely not a hardcore kernel hacker, but it’s great to have this resource available in a form that I can graze on if I wanted to get my feet wet. Thanks so much to Thoron on #maemo for pointing this out.


WebCore for Series 60

Posted: June 13th, 2005 | Author: | Filed under: Linux, Mobile, Open Source | 6 Comments »

Dave Hyatt cites a Nokia Press release stating that they’re going to bring WebCore to Series 60. WebCore is the rendering technology behind Apple’s browser, Safari. WebCore is based on the KHTML rendering engine used in Konqurer in KDE.

It will be interesting to see if Nokia have based WebCore for Series 60 on GTK+ WebCore, a port of WebCore using GTK+.

Regardless of how this shakes out, I think it’s a great move by Nokia and a definite win for the open source community.


Whoppix: Knoppix for H4x0rs

Posted: June 12th, 2005 | Author: | Filed under: Linux, Open Source | 16 Comments »

Whoppix is a Knoppix-based (which is in turn Debian-based) Live-CD with lots of, um, “penetration testing” tools included. It’s a heavier weight distro with a lot more tools than PHLAK, but what really amazed me was that my Linksys WPC11 worked just fine with Whoppix. I currently use my internal Broadcomm wireless with NDISWrapper, but I’ve been trying off and on to get the PCMCIA card working so that I have options.

I’m a hardcore Gnome guy as of late, thanks to the wonders of Ubuntu, which does an amazing job of putting a lot of stuff in the “just works” category while getting out of my way. It had been awhile since I had taken a look at KDE, and I’ve got to say that the latest release looks good, though I’m still going to stick with utilitarianism over candy coated widgets.

I will probably use my experience with Whoppix to motivate me to try the latest kernel to see it I can get my WPC11 working with my HP ze4430us laptop under Ubuntu. Currently my WPC11 is like a magic key that brings my system to a complete halt when I plug it in. I will definitely be keeping a copy of Whoppix in my bag though, as it has tons of great tools that can be very useful when doing penetration testing of in-house stuff.


Clusters: Open Source Meets Commodity Hardware

Posted: June 10th, 2005 | Author: | Filed under: Linux, Open Source, Projects | 96 Comments »

During the last semester I wrote two papers for my Computer Architectures class. I spent quite a bit of time on them and have been thinking about posting them on my weblog for quite some time. I’m a bit worried about plagarism though, and I’m not sure what to do about it. I’m pretty sure that I can submit it to the auto-plagarism-detector service that my university subscribes to, and I’m probably going to do that now that this paper is posted.

Secondly, I’m releasing this paper under the by-nc-sa (Attribution NonCommercial ShareAlike 2.0) license, so unless you can turn in your paper to your teacher with a by-nc-sa license displayed on it, you can’t include it in your paper without proper citation.

PLEASE NOTE: If you are considering plagarising this, please don’t. If your teacher allows you to cite non-academic internet sources, then by all means borrow my ideas and cite me. What I would really suggest doing is taking a look at my primary sources and then heading to your university library or computer system to consult them yourself. All of the ACM journal sources that I cited are available online if your university subscribes to the ACM Portal. This paper was thoroughly researched but there were some late nights involved in the production of it so it is provided WITHOUT WARRANTY against correctness or anything like that. My RAID paper is probably a little better than this one.

Creative Commons License
This work is licensed under a Creative Commons License.

Clusters:

Open Source Meets

Commodity Hardware

Matt Croydon

CMSC 311

May 6, 2005

Before the mid-1980's, most supercomputers were large, monolithic machines. Over time the Top 500 Supercomputers list has seen clusters go from non-existent to being the dominant architecture[1], currently representing 296 out of the top 500 slots (almost 60%)[2]. Compared to monolithic supercomputers such as those from Cray Research, clusters are extremely cheap for the amount of performance realized. When lower cost is combined with cheap off-the-shelf hardware and open source software platforms, clusters can't help but improve and gain popularity.

Different Tools for Different Jobs

The definition of the word “cluster” varies greatly depending on the context in which it is used. A cluster is commonly used in high availability situations when, for example, equipment must gracefully fail over or requests must be divided among the available hardware. For clustered application servers, this can be accomplished by simple round robin DNS entries or more complex load balancing hardware or software.

Clusters are also used when data needs to be stored on multiple machines for redundancy or performance sake. MySQL, an open source database program, can use a cluster of computers for both data replication as well as load balancing[3] in several configurations.

This paper will focus on the most common and most popular form of clustering: clusters used for parallel computing, scientific computing, and simulation in educational, professional, and government organizations. More specifically, it will focus on open source software that is available to make the construction and administration of clusters easier and more powerful.

A Brief History

Cluster computing has its roots in the mid 1980's when developers wanted to tie together multiple computers in order to harness their collective power. In 1985, Amnon Barak developed the first predecessor to Mosix called MOS that ran on a cluster of four Digital Equipment Corporation (DEC) PDP/11 computers[4]. In 1986, DEC decided try try clustering for themselves with VAXCluster[5]. At the time, VAXCluster was able to take advantage of a much higher data rate of 70mbit/sec[5] but because of the proprietary interconnect used, VAXCluster remained much more tightly coupled, while MOS and Mosix decided to use token ring LAN technology[4]. As Mosix was ported to other platforms and improved, it was also available to take advantage of advances in networking technology without its looser coupling being effected. Mosix relied on patches to the Unix kernel in order to allow processes to migrate among nodes in the cluster. Mosix was later ported to the Linux kernel by Moshe Bar[6], where it thrives as an open source project.

Beowulf came on to the scene in the early to mid 1990's with a huge splash. Beowulf allowed users to tie together large numbers of lower cost desktop hardware (486 DXes at the time) rather than the specialized hardware used by Mosix and VAXCluster.[7]. The project originated at NASA's Goddard Space Flight Center and quickly led to a successful open source project[8] as well as a successful business for some of the original developers called Scyld Software.

Beowulf Internals

PVM (Parallel Virtual Machine) and MPI (Message Passing Interface) are standards for preforming parallel operations. Both frameworks have language bindings (for example FORTRAN, C, Perl, and other languages) that abstract the underlying standard in to something easier to work with. The direction of MPI is steered by a group called the MPI Forum. Since the release of the initial specification, the MPI Forum have updated the specification to MPI 2.0, adding features and clarifying issues that were deemed important[9] Each cluster software, tool, or operating system vendor implements their own version of MPI, so cross-platform compability is not guaranteed, but porting between MPI implementations is quite possible.

In contrast to MPI, PVM software is usually provided at the PVM website[10] in either source or binary form. From there users can call the PVM library directly or though third party bindings. PVM provides binaries for Windows, which can allow users to program parallel applications on a platform that they may be more familiar with. However, most Beowulf clusters run standard Linux or some variant thereof. PVM also supports monolithic parallel computers such as Crays and other specialized machines. Further differences and similarities between MPI and PVM can be found in the paper Goals Guiding Design: PVM and MPI by William Gropp and Ewing Lusk[11].

In recent years, another tool called BProc (the Beowulf Distributed Process Space) has expanded the abilities of parallel processing and management of data between nodes. BProc allows a parallel job to be started on the main controlling node and parallel-capable processes are automatically migrated to child nodes[12]. This paradigm is also used by Mosix and OpenMosix, which will be discussed later. BProc is an open source project available at bproc.sourceforge.net.

Parallel processes also need to take in to consideration the amount of time that will be needed for preparation, cleanup, and merging of parallel data. Amdahl's law[26] stipulates that the total execution time for a parallel program is equal to the parallel part of the problem divided by the number of nodes plus the serial part of the program. Even if a cluster contains thousands of nodes, the amount of time ti takes to execute the serial code is going to remain constant.

How to Build a Beowulf[7]

Large Beowulf clusters run complex simulations and crunch teraflops of information per second. At the same time, small 4-16 node clusters are often used in educational settings to teach parallel processing design paradigms to Computer Science students as well as cluster design and implementation to Computer Engineering students.

College Beowulf clusters are often (but not always) comprised of outdated computers and hand-me-down hardware. While extremely fast speeds cannot be obtained with these antiquated clusters, they are valuable in teaching and observing the differences between a program or algorithm written for a single processor machine and the same program/algorithm written for and run on a cluster.

There are several tools available for deploying a Beowulf cluster, but almost all require a basic installation of a compatible Linux distribution on either the mater node or the master and all child nodes. Scyld software makes what is widely considered the easiest to install Beowulf software. All that is needed is a $3 CD[14] containing an unsupported Scyld distribution for the master and each child node. Official copies with commercial support are also available directly from Scyld. Once the CD is booted on the mater note, a simple installation menu is presented. After installing and configuring Scyld on the master node, insert a Scyld CD in each child node and they automatically get their configuration information from the master node and the child nodes can run directly from CD.

Another popular package that runs on top of many modern RPM-based Linux distributions is OSCAR, the Open Source Cluster Application Resources project[15]. OSCAR offers a very simple user interface to install and configure cluster software on the master node. Once that is accomplished, client nodes can be Network booted and the client software automatically installed. OSCAR also supports other installation and boot methods.

While many colleges take the small cluster approach, Virginia Tech has taken advantage of the modern Macintosh platform and created a top 10 supercomputer for a fraction of traditional costs. Virginia Tech started out with desktop machines, but now maintains a cluster of 1100 Apple XServe 1U servers running Mac OS X server (based on an open source BSD-derived core called Darwin).

Another Approach to Clustering: OpenMosix

While most Beowulf clusters are dedicated to cluster-related tasks all the time, clustering does not have to be that way. OpenMosix is a set of patches to the Linux kernel and a few userland monitoring tools for keeping track of where processes are running and how efficiently. OpenMosix is extremely flexible. Nodes can join or leave a cluster whenever they wish. Many programs and algorithms can take advantage of clustering with the automatic node migration built in to OpenMosix. Whenever a new process is spawned or forked (as is common in traditional Unix-like software design) OpenMosix may choose to execute that process locally or on another node.

Many OpenMosix clusters are implemented in a head/client node configuration much like Beowulf clusters, but they are not limited to such configurations. Because OpenMosix is just a patch to the standard kernel, machines in a cluster can have multiple uses. They can run standard graphical window managers and be used as desktop machines while processes are migrated to them if they have computing cycles to spare. OpenMosix does an excellent job at making sure that client nodes still have enough resources to do whatever else they are doing in addition to cluster process execution.

In addition to the mutli-use scenario, OpenMosix cluster nodes can run as true peers. For example, if there are 20 computers currently connected to a dynamic cluster and all but a few of them are idle, processes from the machines being actively used can be automatically migrated for execution throughout the cluster. Similarly, if all computers are heavily used, virtually no process migration will occur since execution will be quicker on the local machine. Also, if 400MHz desktop machine needs to do some complex calculations, as long as the program is written in a way that can take advantage of process migration, those calculations could be run extremely quickly on an idle 3GHz machine. Many of the scenarios above are described in a Linux Journal article entitled Clusters for Nothing and Nodes for Free[16], but also come from my experiences building and experimenting with a 2-3 node OpenMosix cluster a few years ago[17].

Recently the OpenMosix community has embraced “instant clusters,” or the idea that any hardware with local network connections can become a cluster without interfering with its other uses. The OpenMosix website lists a page[18] with several open source “instant cluster” software projects. The most popular project is called ClusterKnoppix[19], a Linux distribution with OpenMosix installed on it that runs directly from CD-ROM. With a minimum of one CD burned on a master node, a 30 seat computer lab can instantly become a 30 node cluster without disturbing the operating system installed on the hard drives.

To share data among nodes, OpenMosix uses the Cluster File System, a concept originally developed for the Mosix project called the Mosix File System[4]. The file system was renamed after the Mosix project closed its source code and Moshe Bar and others began working on the GPL-licensed[20] code which would become OpenMosix between 2001 and 2002. This cluster file system along with the ability to run a cluster as peer-nodes gives OpenMosix quite an advantage over traditional monolithic and cluster systems.

How Open Source Helps Clusters

While some computational clusters run on Windows, the vast majority run on top of an open-source Linux distribution. The Linux Kernel itself is open source and depending on the Linux distribution, all, most, or at least some of the operating system is open source. Sometimes Linux distributions can be open source without being free (as in no cost) such as Red Hat Enterprise Linux. There are many excellent free (open source and no cost) Linux distributions to run Beowulf, OpenMosix, or any other type of clustering software on.

There are many open source applications that help users install, configure, and maintin clusters; many have been mentioned before. These include OSCAR, Beowulf and OpenMosix themselves, various PVM and MPI implmentations, BProc, and more. In addition to the tools already mentioned, there is a suite of open source utilies for OpenMosix called openMosixView[21]. The various programs included in the suite allow for visualization as well as graphical management of the cluster, visual feedback for processes, process migration, load per node, and also allow for logging and analysis of cluster performance.

There are many other interesting open source clustering projects that don't require a Beowulf or OpenMosix frame to run on. One of the most popular examples of this is distcc[22], a program that allows for distributed compilation of C or C++ code. Distcc is quite lightweight and does not require a shared filesystem, it just requires child nodes to be running distcc in daemon mode.

The Future of Clusters

While Robert Lucke considers openMosix the next generation of clustering software because of its flexibility[23], some of the most stunning advances are happening in the world of grid and distributed computing[24]. Grid computing can mean different things to different people, but generally extends computing platforms beyond location and geography.

The SETI@home project[25] has managed to create a very powerful supercomputer by utilizing the spare CPU cycles of thousands of desktop machines spread throughout the world. The program usually runs as a screen saver so that it does not consume computing resources while the machine is being actively utilized. SETI@home and other projects are pushing the envelope of using spare processor cycles to tackle a task that would otherwise require large dedicated clusters or supercomputers.

While grid and distributed computing may take away part of the supercomputing market share that clusters (and particularly those built on open source software using commodity hardware), I believe that clusters are here to stay. Individual component prices continues to drop, network throughput is improving, and cluster software continues to evolve. Expect to hear even more about clusters over the next several years.

References

[1] Top500 Supercomputer Sites, “Charts for November 2004 – Clusters (NOW),” April 2005, http://top500.org/lists/2004/11/overtime.php?c=5.

[2] Top500 Supercomputer Sites, “Highlights from Top500 List for November 2004,” April 2005, http://top500.org/lists/2004/11/trends.php.

[3] J. Zawodny and D. Balling, High Performance MySQL, Sebastapol: O'Reilly and Associates, 2004, chaps. 7 and 8.

[4] A. Barak et al, The Mosix Distributed Operating System: Load Balancing for Unix, Berlin: Springer-Verlag, 1993, pp. 1-18.

[5] N. Kronenberg et al, “VAXcluster: a closely-coupled distributed system,” in ACM Transactions on Computer Systems (TOCS), 1986, pp. 130-146.

[6] The openMosix Project, “openMosix, an Open Source Linux Cluster Project,” April 2005, http://openmosix.sourceforge.net/.

[7] T. Sterling et al, How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters, Cambridge, Mass: The MIT Press, 1999.

[8] The Beowulf Project, “Beowulf.org: The Beowulf Cluster Site,” April 2005, http://www.beowulf.org/.

[9] The MPI Forum, “Message Passing Interface,” April 2005, http://www-unix.mcs.anl.gov/mpi/.

[10] Computer Science and Mathematics Divison, Oak Ridge National Laboratory, “PVM: Parallel Virtual Machine,” April 2005, http://www.csm.ornl.gov/pvm/pvm_home.html.

[11] W. Gropp and E. Lusk, “Goals Guiding Design: PVM and MPI,” in IEEE International Conference on Cluster Computing (CLUSTER'02), 2002, pp. 257-268.

[12] E. Hendricks, “BProc: The Beowulf Distributed Process Space” in Proceedings of the 16
th
international conference on Supercomputing, 2002, pp. 129-136.

[13] P. Prins, “Teaching Parallel Computing Using Beowulf Clusters: A Laboratory Approach,”in Journal of Computing Sciences in College, 2004, pp. 55-61.

[14] Linux Central, “CDROM with Scyld Beowulf,” April 2005, http://linuxcentral.com/catalog/index.php3?prod_code=L000-089.

[15] Open Source Cluster Application Resources, “OSCAR: Open Source Cluster Application Resources”, April 2005, http://oscar.openclustergroup.org/.

[16] A. Perry et al, “Clusters for Nothing and Nodes for Free,” Linux Journal, Vol 2004, Issue 123, July, 2004.

[17] Matt Croydon, “OpenMosix Success,” April 2005, http://www.postneo.com/2002/11/20/openmosix-success.

[18] openMosix, “Instant openMosix, The Fast Path to an openMosix Cluster,” April 2005, http://openmosix.sourceforge.net/instant_openmosix_clusters.html.

[19] ClusterKnoppix, “ClusterKnoppix: Main Page,” April 2005 http://bofh.be/clusterknoppix/.

[20] Open Source Initiative, “Open Source Initiative – The GPL:Licensing” April 2005 http://www.opensource.org/licenses/gpl-license.php.

[21] openMosixView, “openMosixView: a cluster-management GUI,” April 2005, http://www.openmosixview.com/index.html.

[22] Martin Pool, “distcc: a fast, free distributed C/C++ compiler,” April 2005,

http://distcc.samba.org/.

[23] R. Lucke, Building Clustered Linux Systems (Hewlett-Packard Professional Books), Upper Saddle River, New Jersey: Prentice Hall, 2004.

[24] M. Holliday et al, “A Geographically-distributed, Assignment-structured, Undergraduate Grid Computing Course” in Proceedings of the 36th SIGCSE technical symposium on Computer science education, 2005, pp 206-210.

[25] The SETI@home Project, “SETI@home: Search for Extraterrestrial Intelligence at Home,” April 2005, http://setiathome.ssl.berkeley.edu/.

[26] G. Pfister, In Search of Clusters: The Coming Battle in Lowly Parallel Computing. Upper Saddle River, New Jersey: Prentice Hall, 1998. pp. 184-185.