BFS vs CFS
Yet another тест від мене.
Тестувався час, який затрачується на обчислення перших 30 тисяч членів послідовності A000005 моєю багатопоточною програмкою. Тест написано так, щоб він створював послідовно від 1 до 20 потоків, на кожній ітерації обчислював оті 30 тисяч п’ять разів, а потім усереднював час на поточну ітерацію.
Як бачимо, з BFS рахує набагато швидше. А ще цікаво, що з BFS варто використовувати парну кількість потоків, бо непарний потік (у мене два ядра на проці без гіпертрейдинга) він постійно ганяє з ядра на ядро, і так, мабуть, вносить затримку в обчислення. У CFS із балансуванням навантаження все набагато гірше, тому графік не завжди йде «пилкою».
Залишити відповідь