Minimum Spaning Tree — это просто дефолтная задача которую учат во всех ВУЗах на факультетах компьютерных наук и компьютерной инженерии, в основном учат «в теории» алгоритмы Прима, Крускала и Соллина (Борувки). Естественно, о реализации на gpgpu и речи быть не может, в некоторых особо весёлых заведениях ничего из вышеперечисленного даже до каких-либо исходников не доходит, а реализация на gpgpu «тянет» на бакалаврскую.
На магистерскую, по моим меркам не тянет…
Хоть я и сам не заканчивал ВО, но имхо большая часть магистерских работ должна подразумевать практический выхлоп и хотя бы пару грамм инноваций, а так же ответ на вопрос «а чем ваша работа отличается от сотни других работ по этой же теме ?».
Вопрос MST на gpgpu действительно никем раньше толком не освящался, просто потому что обычно для этого отдельно пилят свои ASIC'и с требуемым выхлопом.
Недавно набрёл на такую весёлую структуру данных как AF-heap — можно MST за линейное время выполнить.
Это будет пошустрее Борувки и, вполне так, можно приспособить к GPGPU.
В журналах IEEE проскакивало, эта структура сейчас точно используется в броадкомовских свитчах типа томагавка.
Про вендорное Juniper/Cisco ничего не могу сказать. А вообще такие вещи принято реализовывать на ПЛИСках / ASIC'ах.
Структуры типа AF-heap или атомарной кучи — это сугубо теоретический способ понизить асимптотическую сложность некоторых алгоритмов. В статье, где определяется AF-heap, несколько раз подчёркивается, что к реальному миру это никакого отношения не имеет, а работать эта куча будет при числе элементов 2^12^20. Кстати, алгоритм MST при этом всё равно не линейной сложности. Существование линейного нерандомизированного алгоритма для MST всё ещё под вопросом. Алгоритм Chazelle (2000 год) имеет среднюю линейную сложность, однако константа там по факту получается настолько большой, что в реальном мире всё равно гораздо выгоднее считать алгоритмами со сложность O(m ln n).
Гибридная реализация алгоритма MST с использованием CPU и GPU