Melhor solução de hardware / software para marcas paralelas?

2

Temos um sistema de compilação baseado em Linux no qual uma compilação consiste em vários destinos incorporados diferentes (com drivers e conjuntos de recursos diferentes correspondentes habilitados), cada um construído com outra árvore de fontes principal única.

Em vez de tentar converter nosso sistema baseado em fabricação em algo mais amigável a multiprocessos, queremos encontrar a melhor maneira de disparar compilações para todos esses destinos simultaneamente. O que não tenho certeza é como obter o melhor desempenho.

Eu considerei as seguintes possíveis soluções:

  • Muitas máquinas de compilação individuais. Desvantagens: muitas cópias do código compartilhado ou trabalho de uma unidade compartilhada (lenta). Mais sistemas para manter.
  • Um número menor de máquinas multiprocessadas (quadcores duplos, talvez), com armazenamento local RAID com distribuição rápida. Desvantagens: não tenho certeza de como isso será escalado. Parece que o volume seria o gargalo, mas não sei como o Linux lida com o SMP atualmente.
  • Uma máquina SMP semelhante, mas com um hypervisor ou Solaris 10 executando o VMware. Isso é bobagem ou forneceria alguns benefícios de agendamento? Desvantagens: não resolve o problema do gargalo de armazenamento.

Eu pretendo apenas sentar e experimentar essas possibilidades, mas queria verificar se eu perdi alguma coisa. Obrigado!

    
por Allan Anderson 12.06.2009 / 17:56

3 respostas

3

Você está executando make -j e criando trabalhos paralelos? A Sun tem um bom guia sobre isso.

A idéia do hipervisor é um pouco boba. Você quer velocidade e desempenho de I / O, algo que um único servidor vmware vai tirar de você. Você provavelmente deseja configurar quantos núcleos e discos forem possíveis. Estes seriam os dois fatores limitantes reais do seu sistema de construção.

Existe uma razão pela qual você não pode executá-los em serial em vez de em paralelo? Tome o caminho mais simples não o mais fácil.

Para referência futura: uma boa lista de alternativas para fazer.

    
por 12.06.2009 / 18:44
0

Virtualize e use modelos, um código-base, muitas opções - grande vitória:)

    
por 12.06.2009 / 17:59
0

Você pode virtualizar e usar discos de alta velocidade ou ir para o armazenamento em estado sólido. O custo no estado sólido pode ser um fator limitante. Também há um limite na capacidade de dados com estado sólido.

Neste caso, é provavelmente melhor ter sistemas rápidos com um bom software de virtualização. É simples, fácil e rentável.

    
por 12.06.2009 / 21:57

Tags