RDMA - эффективный способ обхода бесполезных копий данных между приложением и ядром ОС. Mmap - эффективный способ обработки большого файла, как будто это всего лишь массив байтов.Что происходит, когда RDMA работает над mmaped region?
Я работаю с MPI через Infiniband, который поддерживает сетевые операции RDMA между процессами. Каждый процесс MPI имеет очень большой файл для совместного использования с другими.
Может ли каждый процесс MPI сделать область mmap над каждым большим файлом и поделиться им с другими? Я хочу разрешить каждому процессу читать любой файл любого процесса, как если бы он считывал свою память через RDMA (односторонняя связь MPI).
Насколько я знаю, когда приложение вызывает операцию RDMA, оно напрямую передает «адрес виртуальной памяти» в NIC. NIC будет обрабатывать перевод с адреса виртуальной памяти на адрес физической памяти. Если драйвер RDMA связывает страницу интересов, прежде чем он отправит запрос в NIC, я думаю, что это сработает. Есть ли у кого есть опыт? : D
благодаря
спасибо за приятные ответы: D Я надеюсь, что библиотека MPI от Intel использует концепцию как в Linux, так и в Windows. (Кажется необходимым привязать страницы интересов, чтобы RDMA мог безопасно читать страницы.) – syko