+ Responder ao Tópico



  1. #1

    Question openmosix não consigo instalar

    Olá

    Estou lendo muito sobre cluster, tenho aqui 6 cpus diferentes em média de 750MHZ com 128 de memoria, sei que o cluster baseado em beowulf necesita que o programa que irá rodar determinada tarefa tenha suporte ao mesmo, para poder dividir as tarefas em cada nódo, então busquei informações detalhadas sobre o openmosix e gostaria de implementá-lo somente pra estudo, e para teste converter arquivos AVIS para DVD, isso é possivel???? caso não, então pra que situação serve o openmosix???
    estou utilizando o ubuntu 6.06, necessito fazer um downgrade do kernel para 2.4.26, mas não consigo, portanto estou desistindo com essa distribuição, então qual distribuição vcs utilizam?

    Obrigado..

  2. #2

    Padrão

    Saudações mauriciommagalhaes,

    Bom já fazia tempo que eu não via alguém falando sobre openmosix aqui no forum...
    Quando eu fiz meu projeto sobre openmosix, eu usei debian mesmo e kernel 2.4.
    Eu acho que vc deveria tentar primeiro umas live distros com openmosix. No site do openmosix.org tem um link instant clusters, que são distros que já vem prontas para usar o openmosix assim que vc der boot com uma delas.
    Só te aconselho a não misturar distros diferntes, pois se as versões do openmosix forem diferentes pode ser que elas não conversem direito.
    Que eu posso te indicar que funcionam bem são a Dynebolic e a BCCD.
    Quanto a tarefa que vc pretende rodar vai depender do aplicativo conseguir quebrar em threads menores, aí o próprio openmosix se encarrega de distribuir isso pelo cluster.
    Um programa que aproveitaria bem seria o blender na hora de renderizar as imagens...
    Ou se vc por exemplo executar várias instâncias do mencoder (MPlayer) em apenas um terminal, o openmosix deve migrar esses processos para outros nós do cluster.

    Marcos Pitanga era moderador especificamente deste forum, não sei se ainda é. Ele escreveu dois livros sobre openmosix, são bons.

    Boa sorte, abraço.

  3. #3

    Smile

    Caro José

    Muito obrigado pela dica, porem gostaria de configura-lo e não ele pronto, mudei a distribuição coloquei o slackware 10.0 que tem o kernel 2.4, entao consegui fazer com sucesso a compilação, porem ainda não coloquei no boot, pois estou fazendo isso no trabalho e não deu tempo hj... somente segunda pra tentar subir o kernel novo com o patch do openmisix. Mas agora você me deixou com uma dúvida, a diferença entre o modelo beawul e o opemosix, em documentos na internet eu tive o seguinte entendimento:

    Beawul = Ele basicamente pega um processo e divide nos outros nós(sabendo que o software tem que ser compativel com o modelo beawul). Ex: se eu quiser encodar um vídeo, eu ativo o processo e entao esse processo é dividido e após o término os nós envia o processo e esse processo de volta concatenado.

    Openmosix = Ele basicamente envia o processo, porem não o divide com os nós. O mesmo exemplo utilizado acima, porem quando eu mandar ele encodar o vídeo, o processo será enviado pra maquina menos ociosa ou mais veloz, ou seja, somente um nó o processará, isso so seria ideal se eu fosse encodar mais de um vídeo, vamos criar um ambiente como exemplo, Tenho um cluster Openmosix com 50 nos, e tenho 50 vídeo para encodar, então quando mandasse encodar todos os videos, cada vídeo iria ser enviado para cada um nós e assim encodando os vídeos simutâneamente, por esse entendimento, entendo que se eu tivesse essa quantidade de nós sem estar em cluster e colocasse pra encodar esses mesmos 50 videos, indo em maquina em maquina(50 total) daria a mesma coisa, a unica diferença é que o openmosix vc não iria perder o tempo indo em maquina em maquina.

    Esse foi meu entendimento entre os dois modelos, o modelo beawul é melhor, porem o software precisa ser desenvolvido pra suporta-lo.

    Ai vem minha dúvida quando você escreve:

    "Quanto a tarefa que vc pretende rodar vai depender do aplicativo conseguir quebrar em threads menores, aí o próprio openmosix se encarrega de distribuir isso pelo cluster.
    Um programa que aproveitaria bem seria o blender na hora de renderizar as imagens..."

    nesse texto, me parece que o openmix tambem divide os processos como no BEAWUL.

    Me tira essa dúvida, que quanto + eu leio mais fico perdido.

    Um Grande Abraço

  4. #4

    Padrão

    Saudações novamente mauriciommagalhaes,
    Essa explicação que vc pegou na net está bastante simplificada, mas é bem perto da verdade sobre os dois modelos de clusters.
    Vários são os softwares que internamente criam threads. Um exemplo bem comum seria o mysql. Claro que o OpenMOSIX não migraria uma thread do mysql que é I/O bound. É apenas um exemplo de um software que cria várias threads.

    Veja o exemplo do script awk abaixo
    Código :
    awk 'BEGIN 
    {
       for (i=0; i<10000; i++) 
          for (j=0; j<10000; j++) ;
    }' &
    esse é o exemplo mais comum de teste de performance pra OpenMOSIX, vc vai achá-lo em vários lugares por aí.

    O OpenMOSIX não é capaz de quebrar o laço do primeiro for e enviar o processamento de cada for para um nó diferente, mas se vc executar esse bloco de código várias vezes em bg (&) vc perceberá que conforme vc cria os processos o cluster os encaminha para um nó diferente.

    Ele realmente não é capaz de dividir os processos. Mas o render blender é aceita parâmetros que informam ao render quantos processadores disponíveis há no sistema. Com isso o render já cria as threads e o OpenMOSIX só tem o trabalho de encaminhá-las a outros nós.
    Digo só, mas o algoritmo de balanceamento de carga dele é bem complexo. Há comandos também que permitem que vc force a migração de um processo para outro nó, enfim, aí já é uma questão de administração.

    Pelo que eu li, vc já conseguiu compilar e configurar, só falta testar.
    Não sou nenhum perito em OpenMOSIX, mas se vc tiver problemas pra colocar pra funcionar eu posso fazer um howto da parte de implementação do meu projeto e colocar no wiki, talvez ajude.

    Boa sorte, amigo.

  5. #5

    Padrão

    Caro José,

    Sim, consegui instalar 4 nódos com a distrribuição slackware. fiz o teste com o script e todos os processos migraram porem estou com um problema, tentando encodar 4 vídeos simutaneamente eu não consigo. utlizo um programa chamado TOVID, que não é nada mais que um script que facilita a separação do audio e video(Mux) de um arquivo divx e converte-lo pra MPEG2 (DMUX). Dentro do script ele utiiza os programas ffmpeg e mpeg2enc basicamente, o ffmpeg ele separa o audio e video, quando ele entra nesta fase, os processos são migrados para cada nó, sendo que o audio do video1, video2, video3 e video 4 são feitos em nodos diferente, até ai tudo certo, porem quando ele entra na fase de transformar o vídeo pra MPG2 ele utiliza o programa "mpeg2enc", que não migra, ficam todos disputando processamento no nodo de execuçãos dos processos, recompilei o kernel com o path "migshm" e ele migra muuuuuuuuuuuuuuuito pouco coisa de 2 seg utilizando pouco do processamento de outro nódo, mas volta para o principal logo em seguida, sendo que 98% do processo de encoder dos vídeos, são feitos no ódo de execução.

    Muitissimo Obrigado

    Grande abraço.

    Maurício

  6. #6

    Padrão

    para saber o motivo do processo não migrar execute
    Código :
     mps aux --ominfol

    que vai te mostrar o motivo pelo qual o processo não pode ser migrado.
    Sinceramente acho que tarefas como conversão de vídeo que utilizam muito I/O de disco não são adequadas para o openmosix. Nesse tipo de situação é preferivel utilizar um "farm", ou seja, uma cópia loal do programa em cada nó executando uma tarefa sobre um pedaço de arquivo (seria um beowolf específico para um tipo de tarefa) .

    Aliás, que tipo de uso você pretende dar ao seu cluster?

  7. #7

    Padrão

    Caro Jośe

    Utilizei o comando descrito adicionando " | grep mpeg2enc" , e retorna as seguintes informações

    root mpeg2enc 2588 2583 79 0 63.5 7.7 76348 69956 R 09:35 00:03:06 0 0 0 migratable
    root mpeg2enc 2974 2969 77 0 43.8 7.6 75608 69136 R 09:38 00:00:50 0 0 0 migratable

    Então, pelo que estou entendendo ele informa que é migravel esse comoando, ou estou errado??, orem ele não migra fica executando tudo no mesmo nó! mas se não for possível estarei fazendo testes com outros Softwares...

    Estou usando o cluster só para estudo pessoal. gostaria de entende-lo melhor...

    Grande abraço.

    Mauricio
    Última edição por mauriciommagalhaes; 21-02-2007 às 12:42.

  8. #8

    Padrão

    então, tente roda-lo forçando o nó de execução pra ter certeza que ele vai rodar lá executando-o por meio dos mosrun, ou forçando o nó através do /proc/

    the openMosix-API