У меня есть большой набор скалярных значений, распределенных по трехмерной сетке (одно значение на вершину.)
Моя цель показать:
- все точки сетки, где значение превышает пороговое значение.
- И сгруппируйте точки, которые связаны (для упрощения отображения.)
Итак, мое основное решение было:
- Найдите точки, которые проходят пороговое испытание
- Для каждой точки, которая не была сгруппирована, создайте новую группу и рекурсивно поместите все связанные точки в эту группу.
Это прекрасно работает, пока я не начал использовать многоядерное решение:
- Набор данных был разделен на несколько ядер
- Каждое ядро знает о граничных точках, которые совместно используются другими ядрами.
- Я использую MPI для связи между ядрами.
Я использовал свой оригинальный алгоритм для поиска "локальных" групп в одном ядре.
Моя задача - объединить «локальные» группы в глобальные группы. Проблема усложняется по ряду причин: связанные группы могут пересекать многие основные границы. Группы, которые кажутся отдельными на одном ядре, могут быть связаны группой на втором ядре.
Заранее спасибо.
Джефф