Артем Приходько, Avito. Python vs multiprocessing

Мультипроцессинг в питоне вещь актуальная, особенно если вы занимаетесь ML сервисами. Но если вы попытаетесь использовать его в ваших сервисах — вы непременно наткнетесь на ряд подводных камней, которые почти нигде не обсуждается. В докладе я бы хотел рассказать про наш опыт использования мультипроцессинга, с какими проблемами можно столкнуться, затаскивая его в реальные продакшн сервисы. Из этого доклада можно будет узнать: В каких случаях нужно использовать shared memory и как корректно и эффективно с ней работать. Расскажу про атомарные счетчики ссылок как альтернативу стандартным методам контроля над шареной памятью в питоне. Скрытые баги в стандартных питоновских очередях. Мультипроцессорные очереди в питоне ведут себя контринтуитивно (например, говорить, что очередь пуста, когда в ней на самом деле лежит куча тасков), плюс они не совсем кроссплатформенные. Эти вещи мало где обсуждаются, а проблемы, связанные с ними, напрямую аффектят сервисы. При этом сходу не понятно, что произошло не так и как можно это исправить.
Back to Top