Raphael wrote:
*Existe maneira de eu compartilhar memória RAM entre estações Linux???*
A dúvida surgiu pelo seguinte temos aqui um cluster com umas 5
máquinas para rodar o FLUENT (software de simulação de fluídos),
mas para rodar ele, antes prescisamos gerar uma malha em outro
software cuja ainda não foi lançada uma versão paralela, que utiliza
uma grande quantidade de
Memória RAM para isso (ordem de gigas).
O sistema de DSM (/Distributed Shared Memory/) é considerado um novo
paradigma para computação paralela e distribuída. Esta disponibiliza uma
total abstração do espaço de endereçamento lógico, ou seja, uma técnica
usada para compartilhar dados entre todos os computadores que compõem um
/cluster/ e que não dividem a mesma memória física (memória principal),
ou seja, é uma abstração que cria uma memória global, acessível por
todos os processadores.O objetivo aqui é criar um método que agrupe
essas memórias isoladas em uma única entidade lógica, seja feito por
/hardware/ ou /software/. Esses sistemas criam uma maneira de
portabilidade de aplicações escritas para que arquiteturas de memória
compartilhada possam sofrer pequenas modificações de uma maneira bem
simples e que permitam serem executadas dentro de um agregado de
máquinas, gerando assim uma grande economia em investimentos em /software/.
O DSM dá a impressão aos usuários de que todos os processadores estão
compartilhando um único pedaço de memória; na realidade cada processador
pode acessar somente a memória na qual é proprietário. Então o DSM deve
poder trazer os conteúdos da memória de outros processadores quando for
exigido. Isto dá origem a cópias múltiplas da mesma memória
compartilhada em diferentes memórias físicas. O DSM tem que manter a
consistência destas diferentes cópias, de forma que qualquer processador
que tem acesso à memória compartilhada deverá devolver a informação
correta. Toda comunicação e sincronização podem ser feitas através da
memória, sem nenhuma visibilidade de comunicação para os processos de
usuário.
As memórias caches privadas aos processadores são utilizadas para
reduzir a latência de memória, que diz respeito ao intervalo de tempo
compreendido entre o momento em que um processador iniciou um acesso a
um dado compartilhado até que este acesso seja resolvido. O problema da
latência de memória é comum aos sistemas DSM por causa da grande
sobrecarga pa com a localização dos dados e acesso em sistemas com
memória fisicamente distribuída. Este /overhead/ é mais sério em DSM
baseados em /software/, visto que a sobrecarga para acessar a memória
remota pode envolver chamadas ao /kerne/l, troca de contexto,
buferização, além da latência do /software/ de comunicação e do /hardware/.
A consistência de memória é responsável em manter a informação real e
fiel para todos os nodos do /cluster/ e para o programador. Existem
alguns modelos para que isto ocorra de forma coerente. O problema de
coerência da memória engloba o problema de coerência de cache.
No modelo de consistência de uma memória globalizada, as operações de
acesso à memória são percebidas pelo programador quando feitas
atomicamente na ordem especificada pelo programa/ /(consistência
seqüencial). Pra manter a consistência seqüencial em um cluster, essas
otimizações internas do processador não podem ser utilizadas (write
buffers e re-escalonamento de instruções).
O desempenho da DSM sempre é o principal foco de preocupação. O primeiro
sistema de DSM IVY utiliza o modelo seqüencial, mas a performance é
muito ruim devido à comunicação excessiva dos dados na rede. Este
gargalo de desempenho foi aliviado em sistemas posteriores, que utilizam
novas técnicas para melhorar a eficiência.
Por isso que não acredito apesar dos diversos modelos de consistências
propostos que DSM via Software seja uma solućão viável para clusters.
Mas dá uma olhadinha os projetos treadmarks, Midway, Jump, Jessica.
Para mim DSM tem que ser feito via Hardware como em arquiteturas NUMA ou
simulada por placas de rede como da Dolphin com Scalable Coherent Interface.
[]'s
Marcos Pitanga
Linux Clusters Specialist
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html