Я пытаюсь вычислить точечные произведения многих пар векторов.Каждый точечный продукт может использовать несколько потоков, но нельзя использовать два или более точечных продукта одновременно из-за зависимости данных.Какой минимальный размер вектора здесь может оправдать многопоточность?Я понимаю, что никто не сможет дать мне точный ответ, поэтому я просто ищу приблизительные оценки.
Чтобы добавить немного больше контекста к проблеме: моей программе нужно вычислить многоточечных продуктов, но только один точечный продукт может быть сделан за один раз.
double serial_dot_product(const double* x, const double* y, size_t length);
Я хочу переписать точечный продукт, чтобы сделать его многопоточным.Но если length
слишком мало, использование нескольких потоков ничего не даст.
РЕДАКТИРОВАТЬ.Спасибо всем за ваш вклад.Похоже, что ответ зависит от слишком многих факторов - компилятор, процессор, память, библиотека потоков и т. Д.