s dados compartilhados somente leitura são copiados para diferentes processos de multiprocessament
O pedaço de código que tenho parece com algo assim:
glbl_array = # a 3 Gb array
def my_func( args, def_param = glbl_array):
#do stuff on args and def_param
if __name__ == '__main__':
pool = Pool(processes=4)
pool.map(my_func, range(1000))
Existe uma maneira de garantir (ou incentivar) que os diferentes processos não obtenham uma cópia do glbl_array, mas o compartilhem. Se não houver como parar a cópia, irei com uma matriz com mapa de memma, mas meus padrões de acesso não são muito regulares, portanto, espero que as matrizes com mapa de memoria sejam mais lentas. O exposto acima parecia a primeira coisa a tentar. Isso é no Linux. Eu só queria alguns conselhos do Stackoverflow e não quero incomodar o administrador do sistema. Você acha que ajudará se o segundo parâmetro for um objeto imutável genuíno comoglbl_array.tostring()
.