Цель: Найти зависимость между плотностью графа (где удалено N-е количество ребер) и скоростью работы алгоритма на выбранной библиотеке.
Ход эксперимента:
- Берём граф из датасета.
- Начинаем менять количество рёбер в нём так, чтобы можно было построить график зависимости производительности библиотеки от плотности графа (1%, 3%, 5%, 7%, 10%, 13% и 15% от исходного числа рёбер).
- Сохраняем эти графы в том же формате, в котором были исходные графы и используем для тестов.
- Проверяем, будет ли сохраняться эта зависимость на всех графах из датасета.
Как меняем графы:
- Не трогаем мосты
- В приоритете менее значимые ребра (по весу и центральности)
- Для каждого получившегося графа выполняем дополнительную проверку на корректность
Цель: Проанализировать производительность библиотеки на графах с одинаковой топологией, но разным распределением весов.
Ход эксперимента:
- Берём из датасета пару: одинаковые по топологии графы с разным распределением весов.
- Запускаем алгоритм и смотрим, будет ли различие в производительности (за вычетом погрешности).
- Проверяем, будет ли сохраняться разница на всех парах графов из датасета.
- Дополнительно расширяем датасет графами с другим распределением весов и опять проводим тот же анализ.
Цель: Посмотреть, при каком количестве вычислительных узлов (контейнеров) будет оптимальная производительность Pregel+ для “среднего” графа из датасета.
Ход эксперимента:
- Берём граф из датасета.
- Запускаем Pregel+ с 1, 2, 4, 8 и 16 контейнерами на этом графе.
- Измеряем время выполнения.
- Оцениваем результаты для всех графов.