OpenMP - Running parallel code inside parallel code
I have a function compute()
that has parallelized matrix multiplication inside of it using OpenMP
#pragma omp parallel for
This function is called many times in a loop - which I wou开发者_StackOverflow中文版ld like to run in parallel. Will there be any issues in running parallel code inside other parallel code?
This is c++ compiled on Ubuntu.
It will work fine, but you'll need to enable OpenMP nesting for it to work.
Call
omp_set_nested(1);
at the start of the program and it will allow you to have nested parallel regions.
However: Be aware, that you could end up running many more threads than what you want. So you will want to limit the # of threads of both the top and inner parallel regions.
精彩评论