Pergunta

Estou aprendendo programação paralela por mim. Pergunto-me se a memória distribuída é sempre multiprocess e multithread é sempre memória compartilhada? se multiprocess pode ser tanto para a memória distribuída e para memória compartilhada? Obrigado e cumprimentos!

Foi útil?

Solução

Sim, sim, e "sim, em um sentido"

Em um sistema de memória distribuída, diferentes unidades de CPU têm seus próprios sistemas de memória. O acesso de outra CPU provavelmente será mais lento ou com um modelo de coerência mais limitada, se é que é possível a todos. Este será o mais típico de um multiprocessador de transmissão de mensagens.

Usando vários segmentos para a programação paralela é mais um paradigma software do que um problema de hardware, mas você está correto, o uso do termo fio essencialmente especifica que uma única memória compartilhada está em uso, e pode ou não pode incluir múltiplos processadores reais. Pode até não incluem vários segmentos do kernel, caso em que os fios não serão executados em paralelo.

Eu não estou completamente claro sobre o significado da última pergunta. Certamente, dizendo "memória distribuída" ou "memória compartilhada" que implica "distribuiu mais processadores" e "compartilhada por processadores", então eu suponho que os termos só são razoavelmente aplicado a multiprocessador ou potencialmente multiprocessador sistemas. Se estamos a falar de vários processos no sentido de software, eu acho que é praticamente uma exigência para os sistemas de memória distribuída, e, essencialmente, uma exigência (que pode ser chamado threads) para um sistema de memória compartilhada.

Devo acrescentar que distribuiu-memory-mas-cache coerente sistemas existem e são um tipo de memória compartilhada multiprocessador de design chamado NUMA. Apenas alguns anos atrás, estas máquinas eram lunáticos da computação paralela, mas agora os processadores Intel core i7 têm trouxe NUMA para o mainstream.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top