Почему программы грузят несколько потоков, даже если не содержат многопоточного кода?
По ссылке многопоточная программа
#pragma omp parallel for
   for (i = 0; i < n; i++) {
      __m128d sum = _mm_setzero_pd();

      int j;
      for (j = 0; j < n; j += 2) {
         __m128d b = _mm_set_pd(v[j],v[j+1]);
         __m128d a = _mm_set_pd(A(i,j), A(i,j+1));
         sum = _mm_add_pd(sum, _mm_div_pd(b, a));
      }
      out[i] = sum[0] + sum[1];
   }
}

Директива #pragma omp parallel for - это многопоточная библиотека OpenMP, если не ошибаюсь
Современные процессоры умеют распараллеливать вычисления при загрузке кода в конвейер.