Я планировал изучить параллельные вычисления. Теперь думаю о MPI или TBB. На самом деле, у меня нет большого опыта в этом. Я полагаю, мне лучше начать с чего-то легкого в управлении. Сначала я могу попробовать что-то вроде крупнозернистого кода. Что может быть проще для меня? Спасибо.
Библиотека строительных блоков потоков или MPI? какой из них лучше для меня?
Ответы (2)
Это зависит от вашего определения параллелизма и того, чего вы пытаетесь достичь. Смысл TBB в том, чтобы использовать преимущества многоядерных процессоров. В этом сценарии параллелизм означает одновременную работу на нескольких ядрах.
Однако основным преимуществом MPI являются параллельные вычисления с распределенной памятью. В этом сценарии ваше приложение запускается в кластере из разных физических машин и взаимодействует друг с другом через TCP или другой проприетарный протокол.
Таким образом, в зависимости от вашего проблемного пространства тот или иной может быть лучше. Это действительно зависит от проблемы, которую вы пытаетесь решить.
MPI и TBB очень сильно отличаются друг от друга.
MPI — это, по сути, библиотека для передачи сообщений. Его труднее использовать для разработки многопоточного приложения, поскольку оно требует гораздо более строгих правил изоляции. Однако он позволяет вам масштабироваться до нескольких процессов, работающих в нескольких системах.
TBB, с другой стороны, действительно направлен на то, чтобы сделать многопоточность в одном приложении намного проще и доступнее. По своему подходу он очень похож на параллельную среду выполнения от Microsoft, и даже TPL в мире .NET.