На ум приходит пара вещей:
Если вы этого еще не сделали, поместите локальные данные на SSD (если возможно, NVMe). Это дает значительное ускорение без каких-либо изменений кода.
Вы можете попробовать чтение / запись локальных файлов с помощью mmap
. Затем ОС сохранит в памяти последние просмотренные страницы; столько, сколько поместится в дисковый кеш. Если одна программа записывает данные, а другие их читают, это похоже на общую память, но с файловым интерфейсом.
Вы можете использовать сокеты для передачи данных между процессами.
См., Например, это пример pytables .
Если вы работаете в UNIX -подобной системе, вы можете использовать общую память POSIX через ctypes
. Конечно, если бы вы могли использовать разделяемую память 3.8 из multiprocessing
, это, вероятно, намного проще.