Приложение Erlang, созданное с использованием rebar3, использует одно ядро

Я развертываю приложение, написанное на erlang, созданное с использованием rebar3. Когда я запускаю его, он использует одно ядро ​​процессора. Что мне сделать, чтобы он использовал все ядра? Спасибо


person Satya Budumuru    schedule 21.05.2018    source источник
comment
Как заявил Пичи, вам нужно будет предоставить что-то еще, если вы хотите двигаться вперед с этим.   -  person x80486    schedule 22.05.2018


Ответы (2)


  1. Потому что вся работа в одном процессе?
  2. Потому что работа в процессах заблокирована, поэтому каждый раз может работать только один процесс?
  3. Потому что он плохо настроен?

Вы не предоставили никакой значимой и актуальной информации для ответа.

person Hynek -Pichi- Vychodil    schedule 22.05.2018

Согласно ответам на этот вопрос и справочное руководство по Erlang, запуск среды выполнения с -smp enabled приведет к тому, что среда выполнения создаст несколько планировщиков ОС для отправки задач на разные процессоры. Вы можете убедиться в этом, когда запустите среду выполнения erl и посмотрите на [smp:8:8] (это означает, что я работаю с 8 планировщиками).

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

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

person Pie 'Oh' Pah    schedule 21.05.2018