Если вы получите другие результаты , значит, в вашем коде есть ошибка.Если вы просто наберете norm+=element*element;
для глобальной переменной norm
, произойдет то, что некоторые потоки делают это одновременно, и часть вашей нормы теряется.
Чтобы упростить задачу, это даже происходиткогда два рабочих элемента увеличивают один и тот же счетчик, a++
.Оба читают текущее значение a
, оба увеличивают его до a+1
, и оба записывают a+1
обратно в регистр.Таким образом, вы получите a+1
вместо a+2
.То, что происходит, похоже на ваш вектор.