Applying Distributed Computing Concepts to Real Life
Sunday, November 9, 2008 by
Kelly Sutton Alright, this post is going to get nerdy. Distributed computing is the idea of using multiple computers to tackle one process or series of computations. It usually only makes sense on larger-scale problems like protein folding, video image rendering or creating a gigantic search index. Companies that create efficient distribution algorithms are also at the top of their game, take Pixar and Google for example.
These same distributed computing concepts can be applied to real life. To start things off, I will talk about an example of distributed lifehack I executed earlier this week.
An Example
I have a leadership position on something called a service organization here at LMU. My organization, Crimson Circle, focuses mostly on on-campus service. It's a solid group of guys.
For some reason or another, I needed every guy's contact information. Normally, this requires passing a sheet around or talking to everyone individually. That would take a linear amount of time. I found a way to divide the work up by removing a bottleneck from the situation (me).
At the end of our next meeting (held in a classroom), I wrote a simple example on the board with my name, email address and phone number. I instructed each guy grab a piece of chalk and do the same and simply write their name anywhere on a board in the classroom. Even though there was less chalk than guys, the entire process collecting process (the map for you CS majors) took all of 60 seconds.
Then what? I snapped pictures of the board with my phone. Simple as that. I tackled the duty of putting this info into a spreadsheet (the reduce) at a later date. If you're a fan of the 4-hour Workweek, you could just outsource the duty to your Indian personal assistant. You just saved everyone an S-load of time, including yourself.
The Gist
Why does this work? Distributed computing algorithms usually come in two parts: map and reduce. (Google's site crawlers use this to do their work. CS majors: read more about MapReduce in Joel Spolsky's "Can Your Programming Language Do This?" post.)
The map is the operation that is distributed. In the above example, it is each of the members of Crimson Circle writing their names on the board somewhere. The map is where the most magic happens. The more work you can distribute, the more efficient your task becomes.
The reduce is the operation that collects and organizes all of the information. This is usually tackled by one entity. In my example, I tackled the process of data entry. The key to a good reduce is that it should be atomic and trivial. By atomic I mean that the operation should be a small amount of work. By trivial I mean that anyone should be able to complete the operation, whether it be an assistant in India or a younger brother.
More Applications
As with any lifehack, this should be used responsibly. Don't go searching for problems with this solution. Just add this to your utility belt.
That being said, good candidates for distributed lifehacking usually pertain to groups of things, people or tasks. Proper teamwork is at its essence distributed lifehacking.
Although distributed lifehacking has a tinge of silliness, it does help develop good habits. Being able to offload responsibilities to others is a peculiar skill of talented leaders. I still need to hash out the full extent of this idea. For now, it's a start.
Do you have any methods in which you use distributed lifehacking? Do you have any war stories of when distributed lifehacking saved you? Let us know in some comments!





Reader Comments (4)
Don't forget, a good task for distribution must also be discrete (as in, not continuous) and easily able to be decomposed into smaller chunks (to be easily distributed).
After all, the map-reduce paradigm assumes that you have no knowledge of which part of the task goes to which worker. Each part of the work to be done must be general enough that anyone can work on it!
[...] actually completing it. In a way I was bummed to see Kelly Sutton of HackCollege post up his blog, Applying Distributed Computing Concepts to Real Life. Bummed because in a way I’ve lost the desire to finish my post now. But he’s my [...]
or you could've just passed the sheet of paper around during the meeting. each person would've spent less time writing their info down (no waiting for chalk, no walking to the board, no staying after the meeting) and in a matter of a few minutes, all names, phone numbers, etc would appear on a single sheet of paper that did not require even MORE time to compile (taking pictures, uploading pictures, organizing pictures).
i was not aware having a background in computer science meant taking simple tasks and needlessly expanding them, only to eventually blog about how great the idea was...but then i reflected on how adobe, microsoft, etc design their programs and realized why you were misinformed.
I think this is the reason I enjoy using web-based document collaboration for group writing assignments.
Instead of everyone creating their own document(s) during the brainstorm/rough draft phases of the assignment, we can all modify a single document. This eliminates the task of compiling a document from everyone's individual files, and removes the headache of making sure we are using the most current information from each group member.
Google Docs is a great way to accomplish this, but I have also been spending more time with Zoho lately.
One (of several) feature of Zoho Writer that has yet to surface in Google Docs is a built-in equation editor using the powerful LaTeX typesetting language. I use it now to take notes in my physics class.