Некоторые особенности работы с большими графами в современных информационных системах:
- Метод разбиения. habr.com При разбиении по рёбрам вершины равномерно распределяются между подграфами, а при разбиении по вершинам — рёбра равномерно распределяются между подграфами. habr.com
- Программная модель. habr.com В подграф-центричной модели центром внимания является подграф, поэтому можно использовать привычные алгоритмы, но с учётом синхронизации промежуточных результатов между подграфами. habr.com В вершинно-центричной модели центром внимания является вершина, а алгоритмы составляются из доступных ей данных: рёбер, весов, значений вершины и т. д.. habr.com
- Модель исполнения. habr.com Процесс вычисления результата на графах является итеративным, поэтому нужно определять, когда запускать следующую итерацию. habr.com
- Синхронизация. habr.com После запуска алгоритма на подграфах необходимо собрать результаты со всех подграфов для финальной агрегации. habr.com Синхронизация может осуществляться через разделяемую память или обмен сообщениями. habr.com
Для параллельной обработки больших графов могут применяться программные модели MapReduce, Pregel, Charm++ и Grappa, используемые для работы как в частных облаках, так и на высокопроизводительных кластерных системах. www.osp.ru