Я реализую подход «разделяй и властвуй» для выпуклой оболочки в CUDA. Это мой подход:
Вверху:
Но это становится слишком сложным, и я чувствую, что не использую параллельную мощь CUDA, так как на каждом уровне дерева я создаю N / 2 ^ i потоков, сложность которых O (N) при объединении всех смежных оболочек на этом уровне , Следовательно, сложность сети по-прежнему равна O (N logN).
Можете ли вы сказать мне, как его улучшить, или дать альтернативный параллельный алгоритм для выпуклой оболочки (было бы здорово, если бы я мог получить алгоритм для параллельной версии сканирования Грэма)?