Lua Lanes и поддержка многоядерных процессоров: можно ли это сделать?

Луа Лейнс (Lua Lanes) говорит, что он обеспечивает поддержку многоядерности через многопоточность. Разве это не неправильно? Вам не нужно использовать несколько процессов, чтобы использовать преимущества нескольких ядер? Луа Лейнс делает это?

Возможно, я неправильно понимаю, что они говорят. Вот отрывок с их сайта:

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

Спасибо

2 ответа

Решение

Это зависит от операционной системы, но большинство современных операционных систем (Windows, Linux/*nix, ...) распределяют задачи по ядрам / процессорам по потокам, а не по процессам. Таким образом, один процесс с несколькими потоками может быть запущен на нескольких ядрах.

Lanes использует реальные потоки ОС, а не легкие потоки Lua - сопрограммы, поэтому планировщик может фактически распределить его по нескольким ядрам.

Насколько я могу судить, они запускают несколько компьютеров Lua в рамках одного многопоточного процесса ОС. Они используют Lindas для общих данных Lua и IPC, но это не связано с IPC на уровне ОС и другими многопроцессорными издержками.

Обратите внимание, что я делаю вывод после просмотра вашей ссылки, а не после попытки запустить полосы и т. Д. Я могу ошибаться.

Другие вопросы по тегам