Ask Your Question

Revision history [back]

click to hide/show revision 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:

  1. nstripes == cv::getNumThreads() every thread is assigned to one stripe. This can be useful if there is some overhead in thread preparation
  2. nstripes < 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 threads
  3. nstripes > 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.

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:

  1. nstripes == cv::getNumThreads() every thread is assigned to one stripe. This can be useful if there is some overhead in thread preparation
  2. nstripes < 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 threads
  3. nstripes > 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.