I have been doing some tests --with-pthreadclasses. I use $ ./ex12 -n 250 -m 250 (in $PETSC_DIR/src/ksp/ksp/examples/tutorials)
1) I tried with -vec_type pthread as explained in the instructions in features/threads.html This had a noticeable effect on the run time. However, in another system the execution time did not change, and I realized that it was necessary to also add: -thread_max 2 -main. Question: should these always be used? what is the meaning of -main? 2) I thought adding -mat_type aijpthread would yield even better timings, but the response time was the same. Then I noticed that -mat_view_info showed this: Matrix Object: 1 MPI processes type: seqaij rows=62500, cols=62500 so I guess -mat_type aijpthread is not having any effect. 3) I understand that this is still in a very initial stage. However, I think that in order to be usable it is necessary to add MatGetVecs_SeqAIJPThreads (similarly to CUSP). For instance, in SLEPc users normally do not pass vectors but just matrices, and the vectors are created with MatGetVecs (no VecSetFromOptions). Jose