#shared_memory

2025-06-03

Почему multiprocessing.Queue() тормозит и как обойти это с помощью shared_memory

Привет, Хабр! Вы запускаете многопроцессную задачу, кидаете данные в multiprocessing.Queue() , а потом вдруг замечаете... что всё тормозит. Муторно. Медленно. Местами прям отвратительно. Вы смотрите в монитор, на top, на htop, на код — и не понимаете: ну ведь должно же летать! А не летит.

habr.com/ru/companies/otus/art

#python #multiprocessing #очередь #производительность #shared_memory #межпроцессное_взаимодействие #кольцевой_буфер

2025-02-28

Эффективное межпроцессное взаимодействие с использованием IPC и Shared Memory

В данной статье рассматривается использование механизма разделяемой памяти (shared memory) для эффективной передачи данных между независимыми процессами в рамках одной машины. Цель статьи — продемонстрировать не только базовые принципы работы с разделяемой памятью, но и показать, как размещать в ней высокоуровневые контейнеры, такие как хеш-таблицы (unordered_map), а также рассмотреть практический пример потоковой обработки данных при помощи кольцевого буфера.

habr.com/ru/articles/829334/

#c #c++ #boost #ipc #shared_memory #interprocess_communications

2024-12-18

Как мы используем разделяемую память в Aqueduct

Привет. Меня зовут Денис Лисовик, я Backend-инженер в команде Data Science SWAT Авито. В этой статье рассказываю, как использовать разделяемую память в Aqueduct. Вместе мы шаг за шагом пройдем от сервиса, который едва держит один RPS, до сервиса, который может держать сотни запросов в секунду. В процессе вы узнаете, как использовать разделяемую память и как сделать так, чтобы она не утекала, а приложение не падало с Segmentation fault.

habr.com/ru/companies/avito/ar

#python #shared_memory #multiprocessing

2024-10-29

Технология NTB: опыт применения и ее виртуализация QEMU

В статье мы расскажем о системах хранения данных (СХД), в частности о применении технологии NTB поверх шины PCIe. Наша команда столкнулась с задачей виртуализации технологии NTB в QEMU, решение которой было сведено к созданию частичной виртуализации IDT 89HPES24NT6AG2 PCI Express Switch, модификации модуля ядра Linux для поддержки нашей виртуализации и сборки воедино с помощью Yocto Project.

habr.com/ru/articles/853486/

#NTB #qemu #dma #RMDA #PCIE #схд #shared_memory #виртуализация #производительность #linux_kernel

2024-10-18

[Перевод] Rust IPC Ping-Pong

На работе наша команда недавно столкнулась с необходимостью в высокопроизводительном IPC в Rust. Поиск привел нас к содержательной статье от 3tilley « IPC in Rust — a Ping Pong Comparison », что стало превосходной отправной точкой в нашем исследовании. Вдохновляясь этой работой, мы решили копнуть глубже и провести собственные замеры производительности, в особенности нас интересовал новый многообещающий фреймворк iceoryx2. Взяв за основу работу в исходной статье, мы будем использовать UNIX Domain Sockets (как stream, так и datagram), Memory Mapped Files и Shared Memory с использованием iceoryx2 для сравнения производительности IPC между процессами на одной машине для различных размеров пэйлоада.

habr.com/ru/companies/beget/ar

#ipc #UNIX_Domain_Stream_Socket #Unix_Datagram_Socket #Memory_Mapped_Files #shared_memory

2024-06-03

[Перевод] Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 1

Представляю вашему вниманию перевод работы A guide to inter-process communication in Linux . Объём данной работы большой, поэтому перевод будет выполнен в виде нескольких отдельных статей:

habr.com/ru/articles/819263/

#ipc #linux #c #shared_memory #shared_storage #semaphore #lock #перевод

2024-01-29

Python Multiprocessing. Обмен данными между процессами. Передача объектов пользовательских классов

Параллельное программирование — сложный, но очень полезный навык для программиста. Оно позволяет эффективно использовать мощности современных компьютеров с несколькими ядрами и процессорами. Это особенно важно при решении сложных задач, например, в инженерных расчетах, обработке мультимедийных данных, обучении нейросетей и многом другом. Модуль Multiprocessing позволяет использовать так называемый истинный параллелизм, то есть создавать процессы, которые выполняются полностью независимо друг от друга. В этом случае процессы не имеют общей памяти и не могут просто так читать и изменять одни и те же переменные. Конечно же, в модуле multiprocessing реализован нативный способ передавать данные между процессами, и даже не один. Однако как только мы отходим от встроенных типов данных, то готовые решения уже не работают. О том, как с этим обходиться, я и расскажу в этой статье.

habr.com/ru/articles/789904/

#multiprocessing #DataManager #SyncManager #shared_memory #параллельное_программирование #параллелизм #процесс

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst