MapReduce - отличный распределенный алгоритм для этого, хотя он может быть слишком мощным. Если вам это интересно, посмотрите на эту лекцию или, может быть, на эту запись в блоге для вдохновения. (На самом деле, когда меня учили MapReduce, это был один из первых примеров.)
Для 250 тыс. Ребер и 70 тыс. Кажется, что график относительно разрежен, Алгоритм Дейкстры работает в O( E + V log V )
для каждого узла, для полного времени работы (всех источников) O( VE + V^2 log V )
. Это должно быть достаточно быстро, но обычные предостережения относятся к Дейкстре. (Отрицательные края.)
Вы также можете взглянуть на алгоритм Джонсона , если ваша проблема связана с отрицательными весами, но не с отрицательными циклами. В частности, он также может быть распределен, так как он берет переоцененный граф и запускает алгоритм Дейкстры из каждого узла.