.net 4.0 Task Parallel Library по сравнению с MPI.NET

.net 4.0 Task Parallel Library заменяет MPI.NET для Высоких-performace computings?

MPI.NET, найденный здесь http://www.osl.iu.edu/research/mpi.net/svn/, является высокоэффективной, простой в использовании реализацией Интерфейса передачи сообщений (MPI) для среды.NET Microsoft. MPI является фактическим стандартом для записи параллельных программ, работающих на системе с распределенной памятью, таких как вычислить кластер.

.NET 4 TPL говорит: "Библиотека параллели задачи (TPL) является рядом открытых типов и API в Системе. Поточная обработка и Система. Поточная обработка. Пространства имен задач в версии 4 Платформы.NET. Цель TPL состоит в том, чтобы сделать разработчиков более продуктивными путем упрощения процесса добавляющего параллелизма и параллелизма к приложениям. TPL масштабирует степень параллелизма динамично, чтобы наиболее эффективно использовать все процессоры, которые доступны. Кроме того, TPL обрабатывает разделение работы, планирование потоков на ThreadPool, поддержке отмены, управлении состоянием и других деталях низкого уровня. При помощи TPL можно максимизировать производительность кода при фокусировке на работе, которую программа разработана для выполнения".

Моя Цель состоит в том, чтобы создать приложение, которое может работать на Windows HPC 2008... который способ пойти?

6
задан nickd 13 May 2012 в 16:28
поделиться

2 ответа

Передача сообщений - это другой способ обратиться к идее параллельного программирования. Axum и Erlang используют передачу сообщений. Их нельзя сравнивать напрямую, поскольку они оба относятся к двум конкретным реализациям.

Преимущество передачи сообщений, которое я видел, состоит в том, что любые границы сети / процесса можно сделать прозрачными, а сама передача сообщений не зависит от нижележащих потоков (все сообщения и участники могут находиться в одном потоке).

TPL, насколько я понимаю, предназначен для того, чтобы построить / заменить / значительно улучшить текущую модель потоковой передачи в .NET, т.е. у вас есть фактические потоки, которые вы контролируете, и вы общаетесь, передавая аргументы или используя общее состояние.

Если это с нуля, а дизайн разбит на очень маленькие сегменты кода, я бы предложил MPI.NET. Если тип работы требует интенсивного использования ЦП (например, математическая работа), я бы предложил маршрут TPL.

Редактировать: долгое время редактировать, этот ответ старый! MPI.NET напрямую подходит для высокопроизводительных вычислений, поскольку он делает границу связи узлов высокопроизводительных вычислений прозрачной и настраиваемой. MPI.NET отправляет сообщения конечным точкам - это точки, определенные как IP-адреса / адреса портов в файлах конфигурации. Код не знает, что конечная точка пересекает границу сети.

Если вы выберете TPL для HPC (не уверен, поддерживается ли он), я думаю, ваш код должен будет знать об узлах и способах передачи обработки от одного к другому, поэтому вы не получите никаких преимуществ.

2
ответ дан 10 December 2019 в 02:43
поделиться

Насколько я понимаю, TPL не поддерживает распределенные вычисления, тогда как MPI.NET поддерживает.

7
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: