Мне нужно прочитать большой набор данных (около 25 ГБ изображений) в память и прочитать его из нескольких процессов. Ни один из процессов не должен писать, только читать. Все процессы запускаются с использованием многопроцессорного модуля Python, поэтому они имеют один и тот же родительский процесс. Они тренируют разные модели на данных и работают независимо друг от друга. Причина, по которой я хочу читать это только один раз, а не в каждом процессе, заключается в том, что память на машине ограничена.
Я пытался использовать Redis, но, к сожалению, он очень медленный, когда многие процессы читают из него,Есть ли другой способ сделать это?
Возможно ли каким-то образом иметь другой процесс, который служит только функцией "получить изображение с идентификатором x"? Какой модуль Python подойдет для этого? В противном случае я думал о реализации небольшого веб-сервера с использованием werkzeug или Flask, но я не уверен, станет ли это моим новым узким местом, тогда ...
Еще одна возможность, которая пришла мне в голову, - это использовать потоки вместопроцессов, но поскольку Python на самом деле не выполняет «настоящую» многопоточность, это, вероятно, станет моим новым узким местом.