R y memoria compartida para paralelo :: mclapply

Estoy tratando de aprovechar una máquina de cuatro núcleos al paralelizar una operación costosa que se realiza en una lista de aproximadamente 1000 artículos.

Estoy usando la función paralela :: mclapply de R actualmente:

res = rbind.fill(parallel::mclapply(lst, fun, mc.cores=3, mc.preschedule=T))

Que funciona El problema es que cualquier subproceso adicional que se genere tiene que asignar una gran parte de la memoria:

Idealmente, me gustaría que cada núcleo acceda a la memoria compartida desde el proceso de la matriz R, para que a medida que aumente el número de núcleos utilizados en mclapply, no alcance las limitaciones de RAM antes de las limitaciones de núcleo.

Actualmente estoy perdido sobre cómo depurar este problema. Todas las grandes estructuras de datos a las que accede cada proceso son globales (actualmente). ¿Es ese el problema de alguna manera?

Aumenté la configuración máxima de mi memoria compartida para el sistema operativo a 20 GB (RAM disponible):

$ cat /etc/sysctl.conf 
kern.sysv.shmmax=21474836480
kern.sysv.shmall=5242880
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.maxprocperuid=512
kern.maxproc=2048

Pensé que eso arreglaría las cosas, pero el problema sigue ocurriendo.

¿Alguna otra idea?

Respuestas a la pregunta(3)

Su respuesta a la pregunta