I used to use MPI based packages to iteratively solve sparse linear systems. The basic procedure is:
1. partition the graph/hypergraph based on the matrix A (metis/hmetis).
2. construct local matrix and vector based on the partitioning results obtained.
3. solve the given linear system in parallel.
There is a process ID which determines the data to deal with. There is no such ID available in TBB. I figured it
out that I could call
parallel_for(blocked_range(0,nthread, 1), ApplySolve)
to get thread ID. But how can I put all three steps above in a BIG class ApplySolve? Should I use pipeline instead? If so, how?