Re[13]: Java Parallel computing: multicore, Erlang, Scala
От: C0s Россия  
Дата: 28.11.08 07:41
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Обрати внимание на конец фразы.


судя по всему, у вас разное понимание семантики русского языка...
Re[14]: Java Parallel computing: multicore, Erlang, Scala
От: remark Россия http://www.1024cores.net/
Дата: 28.11.08 07:58
Оценка:
Здравствуйте, Gaperton, Вы писали:

R>>Дабы не быть голословным — вот пример, где разделяемая память на 2-3 порядка (100-1000 раз) быстрее, чем обмен сообщениями на современном многоядерном железе:

R>>http://www.rsdn.ru/forum/message/3187084.1.aspx
Автор: remark
Дата: 25.11.08


G>Ага. Быстрее. До той поры, пока ты не догадаешься в данном примере применить для обмена сообщениями lock-free очередь. Тогда, волшебным образом, обмен сообщениями станет быстрее разделяемой памяти .


Вообще, обычно, у меня хорошо с отличением и понимаем шуток... Но ты ставишь меня просто в тупик...
Хммм... Ну на самом деле если я посмеюсь: ХА-ХА-ХА-ХА-ХА [небольшой отдых] ХА-ХА-ХА-ХА-ХА
то это будет релевантно под оба варианта: если это шутка и нет.

Если это не шутка, то это будет релевантно, т.к. lock-free очередь не будет быстрее даже спин-лока. Т.е. все оверхеды на обмен сообщениями так и останутся выше, чем у разделяемой памяти (там где они были выше).
А уж по поводу ситуации, где нам надо только считать данные — обмен сообщениями (на любых очередях), так и останется медленнее на несколько порядков.
Lock-free НЕ имеет никакого отношения ни к производительности, ни к масштабируемости, Lock-free — это ТОЛЬКО о гарантиях системного прогресса:
http://rsdn.ru/Forum/message/2930849.1.aspx
Автор: remark
Дата: 27.04.08


Кстати, какой именно алгоритм lock-free очереди ты имеешь в виду?


G>Хреновый у тебя пример, на самом деле.


Хреновый для чего? Хреновый для выставления достоинств передачи сообщений? Согласен. Но ведь мы сейчас выставляем достоинства разделяемой памяти. Иногда ведь, знаешь, надо и глобальное время (или что-то типа этого) откуда-то считать; а откуда его считать, если мы от разделяемой памяти отказались в принципе? Придётся сообщения слать агенту, который за время отвечает... ну либо на каждый тик делать широковещательную рассылку... А так могли бы просто считать слово из памяти...


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[15]: Java Parallel computing: multicore, Erlang, Scala
От: thesz Россия http://thesz.livejournal.com
Дата: 28.11.08 08:38
Оценка:
C>Проблема с message passing в том, что работать с большими массивами меняющихся данных так может быть очень неудобно.

Это как это так это вот?

Неудобно с какой точки зрения?

Если что, то анализ потока данных с учётом пространства выполнения программы может помочь в автоматическом преобразовании императивных программ в программы с посылкой сообщений.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[18]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 10:44
Оценка:
Здравствуйте, remark, Вы писали:

R>Если у нас будет паттерн запрос-ответ (клиент-сервер), то всё будет намного хуже — будет ещё блокирование клиента, отправка ответа, доставание ответа, разблокирование клиента.


Все, хватит нести чушь и полоскать людям мозг. Надоело. Вот есть факт. Программы на MPI, основанные на передаче сообщений, в большинстве случаев быстрее, чем программы под OpenMP, который построен на разделяемой памяти. Даже на одной машине. Это наблюдаемый факт. А твои слова — это бла-бла-бла. Вот обгони для начала на разделяемой памяти умножение MPI-ное матриц на многоядерном проце, как ты говоришь, "на два порядка", и тогда будешь говорить мне, что там сказать честнее. Умнные все стали, сил нет, языками чесать.

http://www.lri.fr/~gk/QUID/papers/SPAA2003.pdf
We have demonstrated that it is absolutely not obvious
to get better performance with OpenMP codes compared to
MPI ones on shared memory machines.

А на нескольких машинах, к сведению, OpenMP не просто отстает, он С.О.С.Е.Т. Именно так. Причина в том, что модель на сообщениях — асинхронна, и поэтому хорошо толерантна к высоким задержкам. Почему и дает почти линейную масштабируемость.

S>>Вот хочется точно понять, почему такие же трюки неприменимы к передаче сообщений.


R>Модель не предусматривает таких оптимизаций. Мы же сознательно открещиваемся от разделяемых данных. А это как раз оптимизации, которые хорошо ложатся именно на разделяемые данные, потому что данные... *разделяемые* по сути своей.


Модель вообще не касается оптимизаций — модель есть модель. Она допускает любые оптимизации, не нарушающие семантику.

Религиозные соображения в духе "мы же сознательно открещиваемся" — нам, инженерам, малоинтересны. Вы открещиваетесь? Открещивайтесь дальше.

Какое отношение имеют твои фантазии к реальности, я показал на примере MPI и OpenMP.
Re[14]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 10:57
Оценка:
Здравствуйте, remark, Вы писали:

R>>>>>Я надеюсь, это шутка?


G>>>>Ты о чем? О том, что у современных суперкомпьютеров нет общей памяти? Нет, это не шутка. Разделяемой памяти у них нет, правда.


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


G>>Да ну? Правда штоли? А можно мне посмотреть на мой пост, где я это говорю?


R>Ну тогда — извини. Я просто не понял (и не понимаю) твоё высказывание, что будет НЕ честнее сказать, что у модели актёров нет преимуществ и недостатков разделяемой памяти (вместо только недостатков).


Убить нельзя помиловать. Твою фразу вполне корректно с точки зрения русского языка трактовать так, как будто у сообщений нет преимуществ [перед разделяемой памятью] в принципе.

Даже если твою фразу понимать так, как ты здесь пишешь, то тезис о наличии значимых преимуществ у разделяемой памяти, которых якобы лишена модель передачи сообщений, тебе надо для начала доказать. Потому, например, что практика применения MPI и OpenMP его на данный момент не подтверждает. MPI во многих случаях быстрее, чем OpenMP даже на SMP конфигурациях с общей памятью.
Re[11]: Java Parallel computing: multicore, Erlang, Scala
От: RailRoadMan  
Дата: 28.11.08 11:13
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, remark, Вы писали:

S>Итак, у нас есть некоторое число s. Поток 1 передает его в поток 2; поток 2 прибавляет к s некое число q, известное только ему, и возвращает обратно.

Это немного нечестно предлагать пример оптимизированный под модель обмена соообщениями.

Вот другой пример:
Есть некое число s инициализированное нулем.
Несколько потоков каждый из которых читает это число и увеличивает на известное только ему значение. Далее поток как-то обрабатывает прочитанное значение.

Можно взглянуть на решение этой задачи с помощью посылки сообщений?
Re[15]: Java Parallel computing: multicore, Erlang, Scala
От: remark Россия http://www.1024cores.net/
Дата: 28.11.08 11:14
Оценка: +2
Здравствуйте, Gaperton, Вы писали:

G>>>Да ну? Правда штоли? А можно мне посмотреть на мой пост, где я это говорю?


R>>Ну тогда — извини. Я просто не понял (и не понимаю) твоё высказывание, что будет НЕ честнее сказать, что у модели актёров нет преимуществ и недостатков разделяемой памяти (вместо только недостатков).


G>Убить нельзя помиловать. Твою фразу вполне корректно с точки зрения русского языка трактовать так, как будто у сообщений нет преимуществ [перед разделяемой памятью] в принципе.


Хммм... мне кажется, что, что бы трактовать так как ты подумал, там должна была бы быть запятая: ...проблем, и преимуществ...

G>Даже если твою фразу понимать так, как ты здесь пишешь, то тезис о наличии значимых преимуществ у разделяемой памяти, которых якобы лишена модель передачи сообщений, тебе надо для начала доказать. Потому, например, что практика применения MPI и OpenMP его на данный момент не подтверждает. MPI во многих случаях быстрее, чем OpenMP даже на SMP конфигурациях с общей памятью.


Отвечу там.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[13]: Java Parallel computing: multicore, Erlang, Scala
От: RailRoadMan  
Дата: 28.11.08 11:19
Оценка: 3 (1)
Здравствуйте, Sinclair, Вы писали:

R>>Это будет дешевле и значительно быстрее чем обмен сообщениями — нет никаких очередей, блокирований/разблокирований потоков,

S>А как же lock()? Ты думаешь, lock() не приведет к блокировке потока в ожидании того, пока кто-то другой не сделает unlock()?

Грамотная реализация мьютекса под SMP даже в случае если невозможности захвата мьютекса не будет сразу блокировать поток, а некоторое время покрутиться на спин локе в юзер моде ожидая быстрого освобождения мьютекса и только если мьютекс не освободится заблокирует поток в ядре. В случае очень коротких блокировок мьютексы могут работать без переходя в ядро для блокировки потока, даже если есть реальная конкуренция между потоками
Re[16]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 11:28
Оценка: -1
Здравствуйте, remark, Вы писали:

R>Здравствуйте, Gaperton, Вы писали:


G>>>>Да ну? Правда штоли? А можно мне посмотреть на мой пост, где я это говорю?


R>>>Ну тогда — извини. Я просто не понял (и не понимаю) твоё высказывание, что будет НЕ честнее сказать, что у модели актёров нет преимуществ и недостатков разделяемой памяти (вместо только недостатков).


G>>Убить нельзя помиловать. Твою фразу вполне корректно с точки зрения русского языка трактовать так, как будто у сообщений нет преимуществ [перед разделяемой памятью] в принципе.


R>Хммм... мне кажется, что, что бы трактовать так как ты подумал, там должна была бы быть запятая: ...проблем, и преимуществ...


Форумный язык таков, что запятую можно и пропустить, это нормально и на это никто не обращает внимания. К тому же, слово "преимуществ" ты выделил болдом, что играет роль запятой, отделяя его от предыдущих слов акцентом. Можно, можно было так воспринять. Я так и воспринял.
Re[19]: Java Parallel computing: multicore, Erlang, Scala
От: remark Россия http://www.1024cores.net/
Дата: 28.11.08 11:31
Оценка: -1
Здравствуйте, Gaperton, Вы писали:

R>>Если у нас будет паттерн запрос-ответ (клиент-сервер), то всё будет намного хуже — будет ещё блокирование клиента, отправка ответа, доставание ответа, разблокирование клиента.


G>Все, хватит нести чушь и полоскать людям мозг. Надоело. Вот есть факт. Программы на MPI, основанные на передаче сообщений, в большинстве случаев быстрее, чем программы под OpenMP, который построен на разделяемой памяти. Даже на одной машине. Это наблюдаемый факт. А твои слова — это бла-бла-бла. Вот обгони для начала на разделяемой памяти умножение MPI-ное матриц на многоядерном проце, как ты говоришь, "на два порядка", и тогда будешь говорить мне, что там сказать честнее. Умнные все стали, сил нет, языками чесать.


G>http://www.lri.fr/~gk/QUID/papers/SPAA2003.pdf

G>We have demonstrated that it is absolutely not obvious
G>to get better performance with OpenMP codes compared to
G>MPI ones on shared memory machines.

G>А на нескольких машинах, к сведению, OpenMP не просто отстает, он С.О.С.Е.Т. Именно так. Причина в том, что модель на сообщениях — асинхронна, и поэтому хорошо толерантна к высоким задержкам. Почему и дает почти линейную масштабируемость.


Это уже становится интереснее — хотя бы какие-то объяснения с твоей стороны. Обязательно прочитаю статью.
НО, во-первых, что бы показать, что у разделяемой памяти нет преимуществ, ты должен приводить ситуации благоприятные для разделяемой памяти, если окажется, что таких ситуаций не удаётся найти или по всех них разделяемая память проигрывает, тогда возможно у неё действительно нет преимуществ.
Приводить же просто какие-то ситуации и показывать на них, что обмен сообщениями оказывается быстрее — бессмысленно. Это никак не показывает, что у разделяемой памяти нет преимуществ.

Во-вторых, что бросается в глаза, они тестируют на неких IBM SP3 Night Hawk II и SGI Origin 3800 — если не ошибаюсь, то это всё датировано 2000 годом и ранее. Это машины прошлого поколения, во-вторых, очень специфические. Я ориентируюсь и говорю про машины, которые использует 99% из нас сейчас — либо однопроцессорные многоядерные, либо несколько-процессорные многоядерные. Опять же, если на тех машинах обмен сообщениями оказывается быстрее, то это никак не говорит в пользу того, что у разделяемой памяти не преимуществ вообще (ну точнее говорит, но очень-очень слабо).

Когда прочитаю статью прокомментирую по-сути статьи.

Да, на экзотических распределенных машинах для супер-вычислений разделяемая память С.О.С.Е.Т. С этим никто не спорит. Там просто нет разделяемой памяти. Но это, в принципе, и мало кому интересно. Сколько процентов из нас разрабатывает ПО для распределенных кластеров?

Для того, что бы показать, что у разделяемой памяти ЕСТЬ преимущества мне НЕ надо обгонять MPI умножение матриц. И уж точно не надо это делать ВНАЧАЛЕ.
Я надеюсь, что это ты просто специально пытаешь внести некоторые логические ошибки в свои доказательства, что бы доказать свою точку зрения.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[19]: Java Parallel computing: multicore, Erlang, Scala
От: RailRoadMan  
Дата: 28.11.08 11:41
Оценка:
Здравствуйте, Gaperton, Вы писали:

R>>Если у нас будет паттерн запрос-ответ (клиент-сервер), то всё будет намного хуже — будет ещё блокирование клиента, отправка ответа, доставание ответа, разблокирование клиента.


G>Все, хватит нести чушь и полоскать людям мозг. Надоело. Вот есть факт. Программы на MPI, основанные на передаче сообщений, в большинстве случаев быстрее, чем программы под OpenMP, который построен на разделяемой памяти. Даже на одной машине. Это наблюдаемый факт. А твои слова — это бла-бла-бла. Вот обгони для начала на разделяемой памяти умножение MPI-ное матриц на многоядерном проце, как ты говоришь, "на два порядка", и тогда будешь говорить мне, что там сказать честнее. Умнные все стали, сил нет, языками чесать.


Gaperton, ты как-то изличше категоричен. OpenMP — это вообще частный случай разделяемой памяти, не всегда удачный или применымий. Он вообще заточен под вычислительные задачи. Я думаю никому не прийдет в голову пытаться делать например разделяемый кэш на OpenMP. Так что не надо эти результаты экстраполировать на все возможные варианты разделяемой памяти.

G>http://www.lri.fr/~gk/QUID/papers/SPAA2003.pdf

G>We have demonstrated that it is absolutely not obvious
G>to get better performance with OpenMP codes compared to
G>MPI ones on shared memory machines.

G>А на нескольких машинах, к сведению, OpenMP не просто отстает, он С.О.С.Е.Т. Именно так. Причина в том, что модель на сообщениях — асинхронна, и поэтому хорошо толерантна к высоким задержкам. Почему и дает почти линейную масштабируемость.


Возможно сосет в умножении матриц, не более, не надо на все обобщять

S>>>Вот хочется точно понять, почему такие же трюки неприменимы к передаче сообщений.


R>>Модель не предусматривает таких оптимизаций. Мы же сознательно открещиваемся от разделяемых данных. А это как раз оптимизации, которые хорошо ложатся именно на разделяемые данные, потому что данные... *разделяемые* по сути своей.


G>Модель вообще не касается оптимизаций — модель есть модель. Она допускает любые оптимизации, не нарушающие семантику.


G>Религиозные соображения в духе "мы же сознательно открещиваемся" — нам, инженерам, малоинтересны. Вы открещиваетесь? Открещивайтесь дальше.


Ну в таком случае ты согласишься, что MPI реализация в рамках одной машины вполне может опираться на разделяемую память? В любом случае какая-то разделяемая память будет, иначе через что ты передашь сообщени от одного потока к другому?

У всего должно быть свое место, remark сказал, что у разделяемой памяти есть преимущества ктр нет у передачи сообщений . Не дстатки тоже есть, он и не отрицает.

Ты же пытаешься показать, что передача сообщений — некая серебряная пуля и разделяемая память может быть _везде_ заменена на передачу сообщений.
Re[12]: Java Parallel computing: multicore, Erlang, Scala
От: remark Россия http://www.1024cores.net/
Дата: 28.11.08 11:41
Оценка:
Здравствуйте, RailRoadMan, Вы писали:

S>>Здравствуйте, remark, Вы писали:

S>>Итак, у нас есть некоторое число s. Поток 1 передает его в поток 2; поток 2 прибавляет к s некое число q, известное только ему, и возвращает обратно.

RRM>Это немного нечестно предлагать пример оптимизированный под модель обмена соообщениями.


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

А то вот Gaperton приводит какие-то распределенные кластеры для супер-вычислений, и считает, что он этим что-то доказывает.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[12]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 11:43
Оценка: +1
Здравствуйте, RailRoadMan, Вы писали:

RRM>Здравствуйте, Sinclair, Вы писали:


S>>Здравствуйте, remark, Вы писали:

S>>Итак, у нас есть некоторое число s. Поток 1 передает его в поток 2; поток 2 прибавляет к s некое число q, известное только ему, и возвращает обратно.

RRM>Это немного нечестно предлагать пример оптимизированный под модель обмена соообщениями.


RRM>Вот другой пример:

RRM>Есть некое число s инициализированное нулем.
RRM>Несколько потоков каждый из которых читает это число и увеличивает на известное только ему значение. Далее поток как-то обрабатывает прочитанное значение.

RRM>Можно взглянуть на решение этой задачи с помощью посылки сообщений?


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

Однако, если ты так хочешь — то пожалуйста. Надо заметить, что операции над числом у тебя сериализованы, то есть потоки выполняют операцию по очереди. После чего, главный поток ждет на барьере. Вот, что у тебя происходит.

Оптимизированный вариант на сообщениях — процессы worker-ы объединены в линейный список по PID-ам. Последний worker знает PID главного процесса, главный — PID первого. И действие выполняется передачей сообщения по этому кольцу.
Re[14]: Java Parallel computing: multicore, Erlang, Scala
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.11.08 11:44
Оценка: +1
Здравствуйте, RailRoadMan, Вы писали:
RRM>Грамотная реализация мьютекса под SMP даже в случае если невозможности захвата мьютекса не будет сразу блокировать поток, а некоторое время покрутиться на спин локе в юзер моде ожидая быстрого освобождения мьютекса и только если мьютекс не освободится заблокирует поток в ядре. В случае очень коротких блокировок мьютексы могут работать без переходя в ядро для блокировки потока, даже если есть реальная конкуренция между потоками
Грамотная реализация очереди будет делать то же самое.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Java Parallel computing: multicore, Erlang, Scala
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.11.08 11:44
Оценка:
Здравствуйте, RailRoadMan, Вы писали:
RRM>Можно взглянуть на решение этой задачи с помощью посылки сообщений?
То же самое. Один поток владеет этим числом; он раскидывает его остальным потокам, они обрабатывают число, а ему кидают сообщение "прибавь дельту".
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 11:46
Оценка:
Здравствуйте, RailRoadMan, Вы писали:

RRM>Это немного нечестно предлагать пример оптимизированный под модель обмена соообщениями.


RRM>Вот другой пример:

RRM>Есть некое число s инициализированное нулем.
RRM>Несколько потоков каждый из которых читает это число и увеличивает на известное только ему значение. Далее поток как-то обрабатывает прочитанное значение.

RRM>Можно взглянуть на решение этой задачи с помощью посылки сообщений?


Кстати, это как, ничего, что твой пример, который "оптимизирован под разделяемую память" — последовательный, и содержит ноль параллелизма?
Re[15]: Java Parallel computing: multicore, Erlang, Scala
От: RailRoadMan  
Дата: 28.11.08 11:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, RailRoadMan, Вы писали:

RRM>>Грамотная реализация мьютекса под SMP даже в случае если невозможности захвата мьютекса не будет сразу блокировать поток, а некоторое время покрутиться на спин локе в юзер моде ожидая быстрого освобождения мьютекса и только если мьютекс не освободится заблокирует поток в ядре. В случае очень коротких блокировок мьютексы могут работать без переходя в ядро для блокировки потока, даже если есть реальная конкуренция между потоками
S>Грамотная реализация очереди будет делать то же самое.

Опа! Т.е. у нас где-то в очереди будет разделяемый спинлок? Или я не понял мысль?
Re[13]: Java Parallel computing: multicore, Erlang, Scala
От: remark Россия http://www.1024cores.net/
Дата: 28.11.08 11:57
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, RailRoadMan, Вы писали:


RRM>>Это немного нечестно предлагать пример оптимизированный под модель обмена соообщениями.


RRM>>Вот другой пример:

RRM>>Есть некое число s инициализированное нулем.
RRM>>Несколько потоков каждый из которых читает это число и увеличивает на известное только ему значение. Далее поток как-то обрабатывает прочитанное значение.

RRM>>Можно взглянуть на решение этой задачи с помощью посылки сообщений?


G>Кстати, это как, ничего, что твой пример, который "оптимизирован под разделяемую память" — последовательный, и содержит ноль параллелизма?


А почему бы и нет? Потоки делают ещё и что-то другое, что содержит параллелизм, но так же им надо сделать и это.


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[13]: Java Parallel computing: multicore, Erlang, Scala
От: RailRoadMan  
Дата: 28.11.08 12:02
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Кстати, это как, ничего, что твой пример, который "оптимизирован под разделяемую память" — последовательный, и содержит ноль параллелизма?


А ничего, что в примере до этого (ктр про s и q) не сильно больше?
Re[20]: Java Parallel computing: multicore, Erlang, Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 28.11.08 12:05
Оценка:
Здравствуйте, RailRoadMan, Вы писали:

G>>Религиозные соображения в духе "мы же сознательно открещиваемся" — нам, инженерам, малоинтересны. Вы открещиваетесь? Открещивайтесь дальше.


RRM>Ну в таком случае ты согласишься, что MPI реализация в рамках одной машины вполне может опираться на разделяемую память? В любом случае какая-то разделяемая память будет, иначе через что ты передашь сообщени от одного потока к другому?


Вы как дети прям малые. Аппаратно передача сообщений в современных процах НЕ ПОДДЕРЖИВАЕТСЯ. Естественно, она будет реализована посредством разделяемой памяти, ПО ДРУГОМУ на современных процах просто НЕЛЬЗЯ, и я не понимаю, как это в принципе может являться предметом спора. Совсем за идиота собеседника держать не надо, ладно?

Тем более, что это совершенно не имеет значения в конткесте разговора, как именно устроена реализация MPI. Главное, что она почему-то часто оказывается на практике на реальных задачах быстрее, чем манипуляции с разделяемой памятью — даже на SMP. Вот незадача.

RRM>Ты же пытаешься показать, что передача сообщений — некая серебряная пуля и разделяемая память может быть _везде_ заменена на передачу сообщений.


Да ну, правда штоли? Ссылку на мое сообщение можно посмотреть? Давай так — ты ссылку сначала найдешь, а потом расскажешь мне про список глупостей, которые я по твоему пытаюсь показать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.