1 | initial version |
It's the number of stripes you parallel loop is splitted. It is not the number of threads. Here is the implementation for OpenMP for example (Stripe range is calculated here). There are different cases stripes can be used:
nstripes == cv::getNumThreads()
every thread is assigned to one stripe. This can be useful if there is some overhead in thread preparationnstripes < cv::getNumThreads()
just nstripes threads can be used because the loop isn't splitted in enough stripes to use all threads. This should be the same as reducing number of threadsnstripes > cv::getNumThreads()
Some or all threads are getting more than one stripe to calculate. This can be useful if there is no or not much overhead in thread preparation and calculation times of different stripes are inhomogeneous.2 | No.2 Revision |
It's the number of stripes you parallel loop is splitted. It is not the number of threads. Here is the implementation for OpenMP for example (Stripe range is calculated here). There are different cases stripes nstripes can be used:set:
nstripes == cv::getNumThreads()
every thread is assigned to one stripe. This can be useful if there is some overhead in thread preparationnstripes < cv::getNumThreads()
just nstripes threads can be used because the loop isn't splitted in enough stripes to use all threads. This should be the same as reducing number of threadsnstripes > cv::getNumThreads()
Some or all threads are getting more than one stripe to calculate. This can be useful if there is no or not much overhead in thread preparation and calculation times of different stripes are inhomogeneous.