2016-08-03 1 views
0

Я новичок в MPI, и я разрабатываю программу, в которой перечислены делители числа. Алгоритм прост. Я разбил числа от 2 до квадратного корня числа в потоках и передал их другим процессам. Затем я беру результаты и объединяя их в один. Проблема в том, что если я перейду к большому диапазону чисел, для некоторых из узлов потребуется время, в то время как другие будут делать это быстрее. Затем мне нужно обработать ответы более быстрых и дать им новые задачи.MPI Dynamic Receive

Вкратце, мне нужно что-то вроде слушателя приема. Можете ли вы сказать мне такую ​​вещь или дать место, откуда я могу прочитать об этом?

Заранее спасибо!

ответ

1

Я думаю, что это возможно путем блокировки и неблокирования. Это лучше объясняется в других сообщениях о потоке stackoverflow, например MPI Task Scheduling и Dynamic pool of workers with MPI for large array C++ . Я думаю, что оба вопроса хотели чего-то похожего на то, что вы ищете. Надеюсь, это поможет вам выглядеть в правильном направлении.