Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В мире функционального программирования наиболее распространенной технологией создания программ для параллельных компьютеров такого типа является MPI.
Перед отправкой данных (MPI_Ssend) необходимо быть уверенным в том, что принимающая сторона явно инициализировала их прием (MPI_Recv), что усложняет процесс разработки.
влияние указанных ранее недостатков MPI:
…
Кроме того, неприятным моментом, связанным с организацией языка программирования, является необходимость ручного выделения и освобождения памяти.
Программа на C++ для MPI…
int main(argc,argv)
int argc;
char *argv[];
По результатам представленного краткого тестирования можно сделать следующие выводы:
* Разработка приложений на платформе .NET Framework для решения вычислительных задач на системах с распределенной памятью является возможной.
* Технология WCF, предназначенная для построения приложений такого рода, обеспечивает гораздо более простой способ межпроцессной коммуникации, нежели это реализовано в MPI.
Представленный код обладает несколькими важными достоинствами относительно MPI, а именно:
* Единообразное и однократное описание форматов передаваемых данных, реализуемое в интерфейсе (контракте).
* Простая реализация вызов удаленных методов.
Использование объектно-ориентированного подхода к разработке.
Насчет проверок Send-Receive: вот именно, что нигде не проверяется, для работоспособности примеров обязано быть по факту.
synchronous send: The sender sends a request-to-send message. The receiver stores
this request. When a matching receive is posted, the receiver sends back a permission-
to-send message, and the sender now sends the message.
С такой позиции сборщик мусора невозможен по определению.
Насчет краткости тестирования и реальных возможностей разработки.
А что плохого в этих выводах?
вот именно, что нигде не проверяется, для работоспособности примеров обязано быть по факту
Насчет странных кодов и замеров времени: каюсь, часть строк исходников в статье поубивал. Ибо и так слишком много source и слишком мало слов. Замеры времени не внешние.
так как в общем случае на самих данных не написано, чем они являются
MPI.NET может работать аналогично тому, как работает Remoting — на основе объектов аренды, которые относительно неплохо цепляются к идее сборщика мусора. Но это большое и жирное ИМХО, подкрепить слова аргументами не могу.
MPI [...] С такой позиции сборщик мусора невозможен по определению.
Есть жизненный пример: нужен софт, который должен удаленно загружать работой компы, собирать данные и отдавать в наглядном виде.
а сейчас веселюсь с глючной openjdk
Я искренне надеюсь, что скоро появится кластера с HPC SERVER, на котором можно будет использовать .Net и wcf нормально.
При этом есть ряд вычислительных ресурсоемких задач, которые можно как-то распараллелить.
Вот представьте себе. Запросил я себе произвольно 100 узлов, и мне что лапками на каждый заходить, и скидывать туда jdk, устанавливать, потом проверять есть ли она там или нет. Я конечно понимаю, можно в свою home директорию поставить, но тогда будут очень веселые сетевые эффекты с запросом чего то из моей папки на сотню мегабайт.
На Кластере вечно по 2-3 версии сидит.
Не когда не знаешь, что тебе попадется на кластере, по этому собираешь из исходников на целевой машине всегда
Если да, то расскажите как все просто, а ты мы тут мучаемся очень сильно.
Распределенные вычисления на платформе .NET