Thursday, October 13, 2011

Divide and Conquer - Run parallel

Divide and conquer is nothing new for programmers; we all have learnt and used the strategy to solve computer science problem by:

  1. breaking a problem into similar sub problems
  2. recursively solve the sub problems and
  3. combining the result of sub problems
#1 is easy saying than doing.  Never-the-less if we can partition(divide)  a problem well, we almost solve the problem. Testing is my day job and testing needs to be divided to be conquered. Other common use cases is to process an extremely large text files, such as a book for pattern matching. My area of interest is to create a Beowulf cluster (a networked cluster of cheap commodity PCs to use in parallel computations) using some parallel framework that makes my "partitioning" job easy. Open MPI is one of most popular message passing interface used in High performance super computing. Its is open source developed and maintained by a consortium of academic and research partners.
Dividing Job on single machine or run on a cluster:
You can use Open MPI  on a single system and make all your CPU cores to do the jobs in parallel. Here is an excellent tutorial on getting familiar with MPI:
https://computing.llnl.gov/tutorials/mpi/

In next post I am going to discuss setting up a Beowulf cluster using Ubuntu and Open MPI and run a parallel job. Until then, Go parallel !!

Make Everyone Smile

Hey there! Just wanted to let you know that today is officially National 'Make Everyone Smile' Day! So, consider yourself officially...