Heal Your Church WebSite

Teaching, rebuking, correcting & training in righteous web design.

Beowulf or Mosix – solving the parking lot problem through simulation

Folks, this post is going to be hard to follow because it involves a hair-brained scheme, some CD burnination and about 4 or 5 old Pentium IIs and/ IIIs all networked together.

Its Sunday night and I just can’t get this idea out of my head. Yes, it has little to do with church websites, unless you allow facilities scheduling requests via your church website – or are just into taking old Pentium II computers and creating your own super computer to solve your church’s parking problem.

Scheduling Church Facilities

Perhaps one of the biggest headaches facing church administration is that of facilities management. Here they have all this building space they can rent to other churches, civic groups such as the Boy Scouts and/or to private parties such as weddings, christenings, bat mitzvah, you name it. Now a days this need is even greater as the cost of heating and maintaining otherwise empty facilities becomes increasing prohibitive.

The problem is finding software that accurately provides limited church staff on a limited budget with limited time to help them what essentially boils down to resource management and capacity planning – of which there are a number of commercial products, none of which I’ve taken the time to investigate – though tempted.

About all I did do was check out the system requirements of a number of systems, many Windows based, some Linux Based, some web-based – none of them super-computer based.

Why Not?

That is why not use super-computing power? Somewhat familiar with what goes behind facilities management applications, most I know of approach facilities scheduling from a project/resource management approach, though I’ve seen one attempt to get it done purely via combinatorial/integer optimization. OoOOH my aching head.

For those that approach calendars via a project management model, resources are put into a database then time-shared out to events, creating a calendar of consumed resources per event.

This is a good approach, but can cause a computer to grind to a halt when you begin to check for multiple conflicts across multiple resources all being assigned and/or shared at the same time – such as the church parking lot and/or the janitor.

In plain English – what happens to my parking and custodial resources when I schedule five Bible studies, a Boy Scout Order of the Arrow meeting, a youth leaders meeting along with three weddings and a funeral all on the same Saturday?

Big Problems

So I’m thinking about this parking problem and thinking about some software I saw back in 1993 when working on a Department of Justice/Immigration and Naturalization Contract which simulated three international flights arriving at JFK simultaneously – and what INS resources would be required to manage the flow.

Wouldn’t it be useful (if not neat) to develop an application that could do the same with your facilities, such as your mega-church parking lot on an Easter Sunday with three services weighing in at 5,000 people per service? Then provided the results as a web-service?

Cluster Me

So where’s where my hair-brained scheme comes into play. Why not take some otherwise useless computer hardware someone has donated for the tax write-off, network it together and put it to use as your own facilities management/parking-lot simulation super-computer?

To me, the question is, which cluster solution to use? Beowulf or Mosix?

From the Beowulf Website:

“Cluster is a widely-used term meaning independent computers combined into a unified system through software and networking. At the most fundamental level, when two or more computers are used together to solve a problem, it is considered a cluster. Clusters are typically used for High Availability (HA) for greater reliability or High Performance Computing (HPC) to provide greater computational power than a single computer can provide.

Beowulf Clusters are scalable performance clusters based on commodity hardware, on a private system network, with open source software (Linux) infrastructure. The designer can improve performance proportionally with added machines. The commodity hardware can be any of a number of mass-market, stand-alone compute nodes as simple as two networked computers each running Linux and sharing a file system or as complex as 1024 nodes with a high-speed, low-latency network.

Class I clusters are built entirely using commodity hardware and software using standard technology such as SCSI, Ethernet, and IDE. They are typically less expensive than Class II clusters which may use specialized hardware to achieve higher performance.”

From the Mosix Homepage:

“MOSIX is a cluster management system that can make an x86 Linux cluster run like a single high performance parallel computer. It is particularly useful to run intensive computing and massive I/O applications.

In a MOSIX cluster there is no need to modify or to link applications with any library, or even to assign processes to different nodes, MOSIX does it automatically – just fork and forget, like in an SMP.

MOSIX supports different cluster types, including clusters with different CPU speeds, like our 72 processors cluster”

Which one to choose?

Just fork it and forget it is very appealing to me. It is also appealing to others, such as Simon Willison who writes:

Since clustering only kicks off for longer running processes this woudn’t be much use for something like a web server farm, but could be ideal for tasks such as compilation or rendering where individual processes perform computationally intensive work for a long period of time.

Even more fascinating is ClusterKnoppix, a modified Knoppix distro that uses an Open Mosix enabled kernel. Burn a bunch of CDs, boot some standard networked PCs with them and you’ve got an instant cluster.

Simon had me at ClusterKnoppix – and ClusterKnoppix has me thinking Mosix is the right tool for this overkill job. No simulation language required, just enough language skills to simulate a simulation.

Then once you’ve shot your foot clean off doing that, you can create a web service so other church applications across other operating systems, such as Outlook. After all, its not like Apache doesn’t come bundled with Knoppix, and not like you couldn’t use a little bit of Perl, PHP or Python to take requests and return simulation-based conflict analysis for your church’s resources in a yummy XML format.

Okay, I’m drooling now so I’m going to quit – but that’s my idea, and I’m sticking with it. Hope you are as amused by it as I was during the course of the day.


  1. I strongly recommend the Bootable Cluster CD. It can be burned on a business card CD, carries MPICH and LAM (the two leading open-source MPI (Message Passing Interface) distributions), boots very quickly, is lightweight, etc. It doesn’t have as much “stuff” as ClusterKnoppix or the like, and it’s not a single system image like Mosix, but as far as using the resources most efficiently, it’s quite nice.

    Having done a little high-performance computing (primarily for chemistry), the biggest bottleneck for networks of this sort is communications latency. That’s why the big Origin and Altix supercomputers (and even home-grown solutions using Myrinet) specialize in being low-latency. It won’t matter for “loosely-coupled” problems, but for anything “tightly-coupled” (i.e. requiring a lot of data exchange) latency is the bottleneck, and unless you’re using a LOT of cpus, it’s a waste to even start programming in parallel.

    Nowadays, Sun Microsystems and IBM are rolling out pay-as-you-go supercomputing, with fairly low cost per Service Unit (typically a single CPU for an hour, costing ~ $0.80 to $1.00). This is more likely for serious problem solving, but is unlikely to be available to smaller buyers for several years.

    Something else to remember – computers use electricity and require cooling. :)

    Okay, practicality aside, I LOVE the idea of having my own cluster. It’s a tremendous feeling to control that much computing power. I’ll never forget when I first logged in interactively on an Altix system, typed “top” and got 64 lines of CPU summary. It was sweet. I geek out on that sort of thing. :)

    For small projects of this sort, the bootable cluster CD type projects are the way to go. I really love that flexibility. Anyway, enough rambling.

  2. I know I may be treading into Proverbs 30 territory (give, give), but…

    If someone does happen to develop an open source church resource management application, I would sure love to see volunteer management added to the mix. And here’s the kicker: when your volunteers are working in the nursery (where there is a requirement for adult to children ratios based on the age group) and some are parents who want to be in the same room as their child or are a husband and wife and they want to specifically share time, or specifically not share time (one or the other is with their own children) or one is in the choir which blocks out the beginning of both services, etc. Anyway, there’s a combinatorial nightmare for you I have yet to find an application to address.

  3. Pingback: Docs.Rage.Net