Я хотел попросить помочь с распараллеливанием MPI. В основном в этом фрагменте кода я собираюсь выполнить глубокий поиск в неупорядоченном бинарном дереве поиска, чтобы найти лучшее. У меня есть некоторые проблемы с распараллеливанием, то есть я думал о передаче каждого узла дерева процессу, чтобы он вычислял максимум в поддереве, которое исходит от этого узла. Поэтому я думал об использовании функции MPI_gather, то есть каждый работник будет вычислять максимум в своем поддереве, каждый из этих процессов будет передавать это значение мастеру для вычисления глобального максимума дерева. Может ли такой процесс go?
int calcolaMax (узел * root) {
if(root->left == NULL && root->right == NULL) return root->data;
stack* pila = new_stack(100);
node* node;
unsigned int max = 0;
push(pila, root);
while (is_empty(pila) != 1)
{
node = pop(pila);
if (node->data > max) max = node->data;
if (node->left != NULL) push(pila, node->left);
if (node->right != NULL) push(pila, node->right);
}
free_stack(pila);
return max;
}