Um cluster de computação do Amazon EC2 custa entre US $ 800 e US $ 1000 (dependendo do ciclo de trabalho) por núcleo de CPU física ao longo de três anos. Em nossa última rodada de aquisição de hardware, meu laboratório pegou 48 núcleos no valor de hardware muito semelhantes aos dos clusters da Amazon por cerca de US $ 300 por núcleo.
Estou faltando alguma coisa aqui? Existem situações em que faz sentido economicamente construir um cluster na nuvem para tarefas de alta CPU, como simulações de dinâmica molecular? Ou estou sempre melhor construindo e cuidando da máquina dang?
(Devo mencionar que meu laboratório não paga eletricidade em nossa sala de servidores (pelo menos não diretamente), mas mesmo com esse benefício, a Amazon ainda parece extremamente cara).
fonte
Respostas:
A principal vantagem, na minha opinião, de usar recursos baseados em nuvem é a flexibilidade, ou seja, se você tem uma carga de trabalho flutuante, paga apenas pelo que precisa.
Se esse não for o caso em seu aplicativo, ou seja, você sabe que terá uma carga de trabalho quantificável e constante, provavelmente será melhor criar seu próprio cluster. Na nuvem, você paga pela flexibilidade e, se não precisar de flexibilidade, estará pagando por algo que não precisa.
Se sua carga de trabalho for flexível, mas um pouco intensa e depender de certos recursos de hardware (consulte a resposta do email aeis), convém compartilhar um cluster com outras pessoas da sua universidade para amortizar os ciclos inativos. Minha antiga universidade administra um cluster compartilhado com um "Modelo de acionista", no qual cada grupo garante uma parte do poder de computação proporcional ao seu investimento no hardware e ciclos inativos podem ser usados por qualquer pessoa. A única dificuldade é centralizar a administração do cluster.
fonte
Há algumas coisas com que se preocupar ao fazer computação em nuvem com simulações de MD. Por exemplo, você precisa se preocupar com o layout físico dos processadores no farm de servidores em que esses trabalhos serão executados. O motivo é que, dependendo do tamanho das suas simulações e dos tipos de cálculos que você está executando (por exemplo, sistemas com eletrostática), você pode confiar muito nas FFTs - e empurrar elétrons para diferentes processadores em um cluster gigantesco pode se tornar uma parte muito demorada do tempo total de computação.
Além disso, para algo tão intensivo em dados quanto o MD, convém garantir que você tenha conexões rápidas de upload e download com os servidores, além de limites razoáveis no armazenamento de dados. Caso contrário, muitas economias de custo poderiam ser sugadas pela perda de produtividade e taxas de armazenamento.
Pelo que vale, nosso instituto acabou de comprar cerca de ~ 240 núcleos para o cluster local a um custo inferior a 500 € por núcleo. Esse custo inclui hospedagem e administração, além de serviços, em nosso campus por quatro anos. Anualmente, isso parece ridiculamente barato. Acho que esse é provavelmente o melhor dos dois mundos - acesso local, mas mantido profissionalmente sem a necessidade de nossa própria equipe de TI.
fonte
Não tenho experiência em primeira mão com serviços em nuvem como o EC2 da Amazon, mas o custo real por núcleo é provavelmente muito maior do que você cita: é o custo da compra inicial, eletricidade, refrigeração, espaço em um prédio, hardware de substituição. Além do custo de administração: configurar o sistema operacional e os serviços de cluster, manter o sistema operacional atualizado, solucionar problemas da fila etc. Não ficaria surpreso se a soma de tudo isso fosse o dobro do custo da compra inicial. Claro que você ganha flexibilidade.
Para mim, o modelo se reduz à escala: se você tem um cluster verdadeiramente grande (1000 núcleos ou mais), pode amortizar o tempo de trabalho, os reparos e a administração do sistema, porque há o suficiente para manter um profissional ocupado. Se você tem um pequeno cluster em que não vale a pena ter uma pessoa dedicada, é provável que você faça alguém cujo primeiro trabalho deve ser fazer ciência e, nesse caso, o tempo dessa pessoa é mal gasto em trabalhos administrativos. É aqui que os serviços sob demanda, como servidores em nuvem, brilham.
fonte
Como complemento a algumas das já excelentes respostas, há outro fator a considerar:
Encontrei um número não trivial de concessões que , em nenhuma circunstância, pagará pelas despesas de hardware, mas pagará pelo tempo de computação em algo como o EC2. Portanto, em algumas circunstâncias de financiamento, embora você possa financiar um pequeno cluster "testbed" com fundos não estruturados ou um pacote de inicialização de laboratório, para projetos em larga escala, pode ser a única maneira de financiar seus custos de computação.
Considere o NIH:
Embora seja possível colocar as máquinas de cluster sob o título de US $ 5.000,00, e você possa fazer um bom argumento a esse respeito, eu encontrei tanto os revisores que estão preocupados com isso quanto as universidades que hesitam com os custos contínuos de manter tal sistema.
Algumas doações são ainda mais rigorosas. Uma concessão que tenho atualmente tem a seguinte redação:
Muitas vezes, é mais fácil obter um cluster pago por custos diretos, se for baseado em EC2 ou um de seus muitos análogos, do que realmente comprar o hardware, especialmente se sua instituição for mesquinha com os custos indiretos. Pode não ser o seu caso, mas é o caso de alguns.
fonte
Já existem muitas respostas de Deus. Eu só quero adicionar dois pequenos pontos.
1.) Eu sei que a IBM está oferecendo algo semelhante. Portanto, dependendo da sua aplicação, pode valer a pena comparar as diferentes ofertas. Não apenas em relação ao custo, mas também ao equipamento.
2.) É claro que a maioria dos laboratórios é pequena demais para poder investir em seu próprio cluster. Portanto, a questão é se não é possível reunir vários laboratórios e investir em um cluster compartilhado entre os diferentes laboratórios. Isso tem além do óbvio efeito de compartilhamento de custos, também a vantagem de uma distribuição de carga mais uniforme.
fonte