Я изучаю модель процесса Erlang. Я ударил загвоздка в tech report (раздел 3, пункт 2) на Erlang:Документация Erlang/SMP: одноузловая и многоузловая на машину или на приложение, а также замешательство, которое может следовать
Это объясняет, почему это в некоторых случаях может быть более эффективным для запуска несколько SMP В.М. с одним планировщиком каждый вместо этого на один SMP VM с несколькими планировщиками. Конечно, для запуска нескольких виртуальных машин требуется, чтобы приложение выполнялось во многих параллельных задачах , которые не имеют или очень мало обмениваются друг с другом.
Теперь этот параграф меня смущает; Я вижу сценарий многоуровневого многоуровневого процесса, но я не вижу нескольких процессов с одним планировщиком; Предположительно, каждый процесс имел бы имя другого узла, и это означало бы, что определенное приложение без изменений не может использоваться с этой моделью; в силу отсутствия необходимости модификации упоминается как ключевая особенность SMP в отчете. Если несколько процессов имеют одинаковые имена узлов, то производительность будет катастрофической из-за буферов обмена сообщениями между Erlang-процессами - это предполагает использование amnesia в памяти. Есть ли какая-то модель процесса, которая не представлена в статье и что я здесь отсутствует?
Что автор пытается сказать здесь? он пытается предположить, что приложение должно быть переписано (чтобы принять во внимание несколько уникальных имен узлов) для случая с одним процессом планирования с несколькими процессами?
- редактировать 1: Разъяснение Источник проблемы -
вопрос был дан ответ по обсуждаемому вопросу; Ниже приведен обзор проблемы, с которой я столкнулся.
Вопрос по этому вопросу состоял в том, что документация, как я помню, не затрагивает сценарий запуска нескольких эмуляторов Erlang на физическую машину - всегда было показано, что эмулятор представляет вашу физическую машину (в промышленном Применение); Кроме того, никогда не рассматривался сценарий необходимости раздельного разбиения программы на вычислительную эффективность. Это внезапное введение стало источником моей горе.
Соглашение по-прежнему предвзято направлено на создание LOTS процессов и что будущее содержит много улучшений для эмулятора SMP для Erlang, а это означает, что один узел на машину по-прежнему является очень жизнеспособным вариантом, предполагающим благоприятный дизайн приложения.
Спасибо. Похоже, мы получили такую же информацию из статьи: нет модели магического процесса, которая позволяет процессам Erlang совместно обслуживать одно имя узла: D –
@Vainstah, что вы подразумеваете под процессом Erlang? «нет модели магического процесса, которая позволяет процессам Erlang совместно обслуживать одно имя узла», просто не имеет смысла. – Zed
Все узлы, будь то на одной машине или нет, всегда имеют разные имена. Имена узлов уникальны. – rvirding