I am about to start applying from what I have learned from reading TBB related documents. I would like to start up with Parallelizing Dijkstra's Shorttest Path sequential algorithm using TBB. Would thatbe a good project to start with to sink in the concepts of TBB? Another concern,how can I setupup a license free development environment using:
1- Intel C++ compiler
2- Intel VTune Performance Analyzer
3- Intel Math Kernel
4- Intel Thread Checker or Valgrind
Do I need licenses for each of the abovecomponentsrunning on windowsand unix? the trial periods that come with these components aren't enough to get a good feel of these components and finish this project.
Any suggestions will be greatly helpful.
These are licensed products. Only TBB has been released in Open Source (maybe there's an MPI version as well) so thus might be acquired for free, beyond the limited evaluation license. Even if you qualify for a student discount, that still involves some expense.
Since you desire this as a learning exercise, let's turn the question about Dijkstra's Shortest Path algorithm around: what do you find in this algorithm that you think make ita candidate for parallelization? Certainly if you use arrays to hold the path weights, last node and some of the other data structures used in the algorithm, you could parallelize their initialization. What about for the core of the algorithm? Parallel searching for the next closestfree node? Calculating the weights of the adjacent freenodes? What about this algorithm led you to choose it?