Я развертываю приложение, написанное на erlang, созданное с использованием rebar3. Когда я запускаю его, он использует одно ядро процессора. Что мне сделать, чтобы он использовал все ядра? Спасибо
Приложение Erlang, созданное с использованием rebar3, использует одно ядро
Ответы (2)
- Потому что вся работа в одном процессе?
- Потому что работа в процессах заблокирована, поэтому каждый раз может работать только один процесс?
- Потому что он плохо настроен?
Вы не предоставили никакой значимой и актуальной информации для ответа.
Согласно ответам на этот вопрос и справочное руководство по Erlang, запуск среды выполнения с -smp enabled
приведет к тому, что среда выполнения создаст несколько планировщиков ОС для отправки задач на разные процессоры. Вы можете убедиться в этом, когда запустите среду выполнения erl
и посмотрите на [smp:8:8]
(это означает, что я работаю с 8 планировщиками).
Однако обычно Erlang управляет этим за вас, создавая поток ОС (планировщик) для каждого ядра на вашем компьютере, задачи которого могут быть назначены равномерно.
Еще одна вещь, на которую вы, возможно, захотите обратить внимание, это то, написан ли ваш код параллельным способом или в основном работает последовательно, и в этом случае в любом случае требуется только одно ядро.