Результаты вычислительных экспериментов
Машина, на которой производилось тестирование, имела процессор Intel Core 2 Quad Q6600 (2,40 ГГц) и 3,25 МБ оперативной памяти.
Графы, на которых проводилось тестирование, были получены путём преобразования дампов баз данных ряда вики-сетей. Статьи были превращены в вершины, ссылки — в рёбра.
Характеристики тестовых графов.
Имя | Вершин | Рёбер | Вершин в наиб. комп-те | Рёбер в наиб. комп-те |
tf | 11553 | 151697 | 6829 | 127937 |
ma | 40922 | 671699 | 29251 | 554071 |
wow | 88372 | 459730 | 29888 | 270087 |
Результаты для графа tf.
Версия | Время (с) | Ускорение | Эффективность |
Последовательная | 5,172 |
MPI — 1 процесс | 5,188 | 0,997 | 0,997 |
MPI — 2 процесса | 2,938 | 1,760 | 0,880 |
MPI — 3 процесса | 1,922 | 2,691 | 0,897 |
MPI — 4 процесса | 1,5 | 3,448 | 0,862 |
Результаты для графа ma.
Версия | Время (с) | Ускорение | Эффективность |
Последовательная | 106,718 |
MPI — 1 процесс | 106,858 | 0,999 | 0,999 |
MPI — 2 процесса | 65,765 | 1,623 | 0,811 |
MPI — 3 процесса | 48,671 | 2,193 | 0,731 |
MPI — 4 процесса | 41,593 | 2,566 | 0,641 |
Результаты для графа wow.
Версия | Время (с) | Ускорение | Эффективность |
Последовательная | 77,202 |
MPI — 1 процесс | 77,42 | 0,997 | 0,997 |
MPI — 2 процесса | 50,061 | 1,542 | 0,771 |
MPI — 3 процесса | 44,921 | 1,719 | 0,573 |
MPI — 4 процесса | 40,609 | 1,901 | 0,475 |
Попробуем подсчитать теоретическое ускорение, например, для случая, когда граф wow просчитывается на двух процессах. Эксперименты показали следующее значение констант из раздела Анализ эффективности:
- α = 1,9 * 10-9 c;
- β = 3,52 * 10-8 c;
- k = 6;
- l = 5,57 * 10-5 c;
Подставив их в теоретическую формулу, получим ускорение, равное 1,995. Однако видно, что экспериментальное ускорение намного хуже. Дело в том, что в данном случае нагрузка распределяется по процессам неравномерно.
Граф устроен так: есть одна крупная компонента сильной связности, в которой 29888 вершин; следующая по величине компонента насчитывает 17 вершин; а абсолютное большинство оставшихся вершин образуют компоненты размера один. Так как время обработки вершины пропорционально величине её компоненты, ясно, что большая часть уходит на обсчёт вершин из наибольшей компоненты. Однако среди половины графа, достающейся первому процессу, этих вершин 18108, а среди той, которую обсчитывал второй, только 11780. В предположении, что обсчёт всех остальных вершин занимает незначительное время, время параллельной работы пропорционально большему из этих чисел, а последовательной — их сумме. Таким образом, теоретическая оценка ускорения (без учёта коммуникации) составит (18108 + 11780) / 18108 ≈ 1,65, что достаточно близко к экспериментально полученному значению.
|