Como compartilhar CPU ou RAM?

20

Na rede, compartilhamos o arquivo (driver de disco) ou bancos de dados. Mas como podemos compartilhar CPU ou RAM pela rede?

    
por MJH 12.03.2011 / 01:45

5 respostas

21

Para fazer isso, o (s) programa (s) que acessam os recursos da CPU / RAM devem ser especificamente projetados para acessar os recursos mencionados. Um sistema configurado dessa maneira é chamado de cluster e a maneira típica como os recursos são compartilhados é com um protocolo chamado MPI (message passing interface). É um download gratuito e usá-lo com o Linux pode render um poderoso cluster (possivelmente até um super computador) por um custo mínimo, mas novamente é inútil, a menos que você tenha programas que foram projetados especificamente para tirar proveito do MPI. Existem alguns bons tutoriais de cluster por aí, se você ainda estiver interessado, deve verificar um.

Editar:

Eu recomendaria o tutorial aqui se você quiser configurar um cluster. Eu fiz um cluster seguindo este tutorial cerca de um ano atrás e funcionou muito bem. O tutorial é um pouco antigo, então alguns arquivos podem não estar exatamente onde o tutorial diz que estão (às vezes os arquivos são movidos em diferentes / mais novas distribuições do Linux), mas se você não estiver familiarizado com o Linux, isso não deve ser um problema. O tutorial usa uma versão mais antiga do MPI, mas eu usei a versão mais recente e não tive problemas não é facilmente resolvido. Dependendo do que você está fazendo, pode haver um programa que tire proveito do MPI. Eu sei que existem alguns codificação de vídeo e programas de processamento de números que tiram proveito do MPI que pode ser baixado de fontes universais.

    
por 12.03.2011 / 01:58
9

Você pode compartilhar RAM usando discos RAM, mas isso se parece com o compartilhamento de discos normais, exceto que eles estão na RAM de outro computador. Não há nenhuma maneira direta de um computador usar a RAM de outro computador como se fosse sua própria RAM, mas existem algumas maneiras de usar a RAM de outro computador. Mais sobre isso no próximo parágrafo.

Quanto ao compartilhamento de CPU, é possível, mas não há um padrão único para isso. Você não pode simplesmente compartilhá-lo e deixar que outro computador tire os recursos necessários. Em vez disso, você precisa ter aplicativos especificamente projetados que podem funcionar em vários computadores em um. Isso é freqüentemente chamado de computação distribuída e é usado por alguns projetos de pesquisa como o SETI @ Home, Einstein @ Home, Climateprediction.net e muitos outros.

Basicamente, os programas funcionam de tal forma que existe um servidor central que distribui o trabalho que precisa ser feito. Computadores em unidades de trabalho de download de rede do computador central e processá-los. Depois que o computador central recebe os resultados dos clientes e os mescla em um resultado coeso. Desta forma, os computadores "compartilham" recursos de CPU e RAM pela rede. O lado negativo disso é que os programas precisam ser feitos de forma a trabalhar na rede e, no momento, a computação distribuída não é popular o suficiente entre os usos comuns de um computador, portanto apenas um pequeno número de programas especializados o suporta. Por outro lado, é comumente usado para fins científicos, já que é mais barato obter um grande número de computadores pessoais ou playstations 3 do que obter acesso a um computador mainframe.

    
por 12.03.2011 / 01:59
5

is there software for share my application in my network?without need to foreign network!(for ex. i want rendering a file,that my PC render this in 7days,but i share this to my network and rendering reduction to 1 day? – MJH Mar 12 '11 at 1:19

Você caiu em um problema XY , você não deve perguntado "como posso compartilhar computadores de cpu e ram accros", mas "como posso usar vários computadores para tornar o meu processa usando ZZZZZ mais rápido?"

É altamente dependente do software que você está usando e do que está processando (você está transcodificando o vídeo ou você está renderizando um modelo / vídeo 3D?).

Para escolher alguns exemplos, o software 3D gratuito Blender suporta renderização distribuída onde você pode ter vários computadores trabalhando juntos para gerar uma saída. Se você estiver fazendo renderização de vídeo, algum tipo de googling rápido encontrou o MediaEncodingCluster que permite a renderização de arquivos de vídeo e áudio usando vários computadores. .

    
por 12.09.2013 / 15:44
5

O único sistema operacional que conheço que permite compartilhar CPU / RAM é o plano9. Lá você pode exportar / montar quase tudo. Isso não significa que as performances são boas, é claro.

    
por 31.08.2015 / 17:49
0

Seria um bom recurso compartilhar cpu / ram para tarefas pela rede. Atualmente, ainda temos algumas noções antigas de manter os programas na caixa onde as coisas acontecem, mas podemos permitir que múltiplos processadores na mesma máquina acessem o mesmo sniplet de código. Nós temos um método (pelo menos) que faz algo assim. O java on webpages funciona usando o servidor e o cliente, mas ainda está bloqueado em uma maneira servidor-cliente de fazer as coisas (em que o servidor armazena a maioria dos dados). O que precisamos ser capaz de atribuir tarefas a máquinas da mesma maneira que fazemos quando temos vários cpus (exceto que a máquina que faz o trabalho precisa ter snip de programa e snip de dados atribuídos. Isso coloca uma carga mais pesada na rede embora se as tarefas em si não forem de natureza simples e puderem resultar em novos gargalos, gosto da ideia de que são tarefas repetitivas, embora em métodos muito semelhantes à mineração de chaves.

    
por 20.01.2018 / 16:31