Как добиться значительного ускорения с помощью Parallel Computing Toolbox от MATLAB в процессоре Core i7?

Я работаю над обработкой изображений. У меня есть компьютер с процессором Intel® Core ™ TM i7 -3770 @3,40 ГГц, оперативной памятью 4 ГБ, конфигурация. Я просто хочу распараллелить наш код алгоритма обработки изображений с помощью команды SPMD PCT. Для этого я разделил изображение по вертикали на 8 частей и отправил его в разные лаборатории, и с помощью команды SPMD я выполнил алгоритм обработки изображений параллельно в разных частях в разных лабораториях.

Я получил правильный ответ, который я получил из последовательного кода. Но это занимает больше времени, чем последовательный код. Я пробовал это с очень большим изображением до самого маленького изображения, но не получил значительного результата.

Подскажите, как я могу значительно ускориться с помощью команды SPMD?

2 ответа

Поскольку вы не предоставили никакого кода, мне придется придерживаться общего ответа. Во всех параллельных вычислениях есть несколько конструктивных соображений, два наиболее важных из них: способен ли ваш код работать параллельно, и, во-вторых, сколько накладных расходов вы создаете.

Вызов работникам означает отправку информации туда и обратно, поэтому в параллельных вычислениях существует оптимум. Удостоверьтесь, что вы предоставляете своим работникам достаточно работы, чтобы общение с вашими работниками занимало меньше времени, чем ускорение, полученное от параллельных вычислений.

И последнее, но не менее важное: если вы предоставите пример работающего кода, сообщество сможет помочь вам намного лучше!

Если вы хотите применить одну и ту же операцию к нескольким блокам в изображении, а не беспокоиться о таких конструкциях, как spmdВы можете просто применить команду blockproc и установить UseParallel возможность true, Он распараллелит все для вас, без необходимости что-либо делать.

Если это не работает для вас, и у вас действительно есть требование реализовать свой алгоритм напрямую, используя spmdвам нужно будет опубликовать пример кода, чтобы указать, что вы пробовали, и где он идет не так.

Другие вопросы по тегам