Quick Notes

Things that came on the way

Steps to Design and Develop Concurrent Processes

High level sequence of steps which can be followed to design/develop concurrent processes

  • Start with a well tuned and fully functional serial processing design/code to solve the problem.
  • Come-up with a design to solve the problem using concurrency.

  • Calculate the speedup and efficiency of the design for concurrency.

  • If sufficient speedup can be expected from the calculation, develop the code to do concurrent processing.

  • Test the code and verify the results for various scenarios. Care need to be taken to verify situations like correctness for loop executions, rounding errors of numerical values, etc.

  • Tune the code for performance and to minimize hotspots by identifying it through tools like profilers.

  • Compare the performance and elapsed time of the serial code against the code for concurrency.

  • If the performance has significant improvement implement concurrent processing instead of the serial processing code.

All these steps may not be applicable for a given situation, but following through them provides a good guideline.