Час роботи алгоритму на певній кількості потоків - середній час з виборки на 5-10 результатів
Node.js workers витрачають багато часу на створення нового потоку та обмін даними (messages between worker and main thread). Тому не має сенсу порівнювати роботу послідовного коду та паралельного коду із будь-яким розбиттям на малому діапазоні від 0.5 до 2.
Час обчислення інтегралу при використанні різної кількості потоків із шагом 0,001 на діапазоні від 0,5 до 2 у мс.
Зменшення кроку інтегрування до 0,0001 значно не впливає на результат. Дослідницьким шляхом виявлено, що впливає діапазон.
К-ть процесорів | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
Коефіцієнт приск | 0,11 | 0,107 | 0,09 | 0,0699 | 0,60 | 0,054 | 0,047 |
Коеф приск | 0,11 | 0,107 | 0,09 | 0,0699 | 0,60 | 0,054 | 0,047 |
---|---|---|---|---|---|---|---|
Коеф ефект | 0,055 | 0,0357 | 0,0225 | 0,01398 | 0,1 | 0,0077 | 0,00588 |
При збільшенні діапазону, ефективність паралельго підходу значно підвищується.
Час обчислення інтегралу при використанні різної кількості потоків із шагом 0,001 на діапазоні від 0,5 до 10000 у мс
У мене 8-поточний процесор, тому при використанні 8 workers, час виконання починає збільшуватися. 7 workers та один mainthread, восьмий worker хоча і створюється, але не має свободного потоку, тому чекає доки завершить роботу один з потоків.
К-ть процесорів | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
Коефіцієнт приск | 1,778 | 2,3989 | 2,7484 | 2,9092 | 3,1039 | 3,1815 | 3,1317 |
Коеф приск | 0,11 | 0,107 | 0,09 | 0,0699 | 0,60 | 0,054 | 0,047 |
---|---|---|---|---|---|---|---|
Коеф ефект | 0,8891 | 0,7996 | 0,6871 | 0,5818 | 0,5173 | 0,4545 | 0,3914 |