BFS vs CFS

Yet another тест від мене.

Тесту­вав­ся час, який затра­чу­є­ться на обчи­сле­н­ня пер­ших 30 тисяч чле­нів послі­дов­но­сті A000005 моєю бага­то­по­то­чною про­грам­кою. Тест напи­са­но так, щоб він ство­рю­вав послі­дов­но від 1 до 20 пото­ків, на кожній іте­ра­ції обчи­слю­вав оті 30 тисяч п’ять разів, а потім усе­ре­дню­вав час на пото­чну іте­ра­цію.

Як бачи­мо, з BFS рахує наба­га­то швид­ше. А ще ціка­во, що з BFS вар­то вико­ри­сто­ву­ва­ти пар­ну кіль­кість пото­ків, бо непар­ний потік (у мене два ядра на про­ці без гіпер­трей­дин­га) він постій­но ганяє з ядра на ядро, і так, мабуть, вно­сить затрим­ку в обчи­сле­н­ня. У CFS із балан­су­ва­н­ням наван­та­же­н­ня все наба­га­то гір­ше, тому гра­фік не зав­жди йде «пил­кою».

Мітки: , , , ,

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.