Applying Distributed Computing Concepts to Real Life
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.
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.
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.
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!