Reuse of a single factorized matrix for different concurrent solve calls
Next step of experiments, leading to new questions:
Aim: Factorize once a single matrix, then use it for different solve calls (each possibly with nrhs>1) distributed among OpenMP threads
- Is the first argument of
pastix_data_tstructure) input only, or is it modified/updated in the call? Otherwise stated, is
pastix_task_solvethreadsafe w.r.t. the pastix data?
- If the answer to 1. is "yes", we'd need to run the factorization in a single OpenMP thread, but using all the available cores for PaStiX pthreads
iparm(IPARM_THREAD_NBR) = il_ompthr
while the solve phase should be single-pthreaded and concurrently run on the OpenMP threads.
How can we modify the
iparm(IPARM_THREAD_NBR) in the pastix structure after initialization?
3. If we need to iterate around the switch from the pthreaded factorization and the single-pthreaded solve, what is the default value for
iparm(IPARM_SCHEDULER) in pthreaded sections? (We learned to set it to
PastixSchedSequential in conjunction to
iparm(IPARM_THREAD_NBR) = 1 to switch off pthreading and avoid interferences with OpenMP, but we do not know to what it has to be set back.