У меня проблема с экспериментом на моем компьютере.Я сделал 300 тестов параллельного алгоритма (32 потока) и увидел, что время выполнения тестов примерно на 10% меньше, чем у других.Это выглядит так: у нас есть 100 тестов с продолжительностью выполнения около 100 мс, затем у нас есть 30 тестов с продолжительностью ~ 80 мс и снова 170 тестов с продолжительностью ~ 100 мс.Это происходит каждый эксперимент.Я использовал OpenMP, TBB, PTHREAD, std :: Thread, и это происходит с каждой параллельной технологией.В чем причина этого?
Процессор: Intel® Core ™ i7 Kaby Lake H 2800 - 3800 МГц Ядра: 4 Темы: 8
Кроме того, я провел тесты на другом компьютере (Intel® Core ™ m3-6Y30), но с истечением срока годности таких проблем нет.
Я не могу показать сюжет моего эксперимента (недостаточно репутации), но есть часть его в текстовом формате:
841618
846348
859046
847833
841801
847680
849084
... (about 115 tests with avg ~840000-860000 ms)
784754
784754
759525
... (about 40 tests with avg ~750000-790000 ms)
855215
846631
850249
847015
...(about 120 tests with avg ~840000-860000 ms)
778716
765774
...(about 30 tests with avg ~750000-780000 ms)
и т. Д.
Также язаписали параметры компьютера, такие как температура процессора и мощность, и увидели то же самое.Поэтому я не знаю, почему параметры так себя вели.Вот код, где я измерил время эксперимента (использовал std :: chrono):
std::chrono::time_point<std::chrono::high_resolution_clock> start, end;
std::size_t total;
start = std::chrono::high_resolution_clock::now();
std::complex<double> * X = DirectTransform(compl_val);
end = std::chrono::high_resolution_clock::now();
total = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
Сценарий компиляции прямо здесь:
g++ ./fourier/main.cpp -o ./build/fourier.out
g++ -pthread ./fourier-h/main.cpp -o ./build/fourier-std.out
g++ -fopenmp ./fourier-omp/main.cpp -o ./build/fourier-omp.out
g++ -ltbb ./fourier-tbb/main.cpp -o ./build/fourier-tbb.out
g++ -pthread ./fourier-pth/main.cpp -o ./build/fourier-pth.out
Обзор оборудования:
- Название модели: MacBook Pro
- Идентификатор модели: MacBookPro14,3
- Название процессора: Intel Core i7
- Скорость процессора: 2,8 ГГц
- Количество процессоров: 1
- Общее количество ядер: 4
- Кэш L2 (на ядро): 256 КБ
- Кэш L3: 6 МБ
- Память: 16 ГБ
- Версия загрузочного ПЗУ: 185.0.0.0.0
- Версия SMC (система): 2.45f0