MPI_SEND занимает огромную часть виртуальной памяти
Отлаживая мою программу на большом количестве ядер, я столкнулся с очень странной ошибкойinsufficient virtual memory
, Мои исследования привели к спокойствию кода, когда мастер посылает небольшие сообщения каждому рабу. Затем я написал небольшую программу, в которой 1 мастер просто отправил 10 целых чисел сMPI_SEND
и все рабы получают его сMPI_RECV
, Сравнение файлов/proc/self/status
до и послеMPI_SEND
показал, что разница в размерах памяти огромна! Самое интересное (что приводит к сбою моей программы), это то, что эта память выигралапосле освобожденияMPI_Send
и до сих пор занимают огромное пространство.
Есть идеи?
System memory usage before MPI_Send, rank: 0
Name: test_send_size
State: R (running)
Pid: 7825
Groups: 2840
VmPeak: 251400 kB
VmSize: 186628 kB
VmLck: 72 kB
VmHWM: 4068 kB
VmRSS: 4068 kB
VmData: 71076 kB
VmStk: 92 kB
VmExe: 604 kB
VmLib: 6588 kB
VmPTE: 148 kB
VmSwap: 0 kB
Threads: 3
System memory usage after MPI_Send, rank 0
Name: test_send_size
State: R (running)
Pid: 7825
Groups: 2840
VmPeak: 456880 kB
VmSize: 456872 kB
VmLck: 257884 kB
VmHWM: 274612 kB
VmRSS: 274612 kB
VmData: 341320 kB
VmStk: 92 kB
VmExe: 604 kB
VmLib: 6588 kB
VmPTE: 676 kB
VmSwap: 0 kB
Threads: 3