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

Responder a