Contêineres para processamento em lote de HPC

1

Estamos enfrentando o problema de muitas pessoas quererem executar diferentes softwares científicos em nosso cluster de computação de alto desempenho. Cada usuário requer um conjunto diferente de bibliotecas e versões de bibliotecas e não queremos que o administrador lide com a instalação de uma nova biblioteca todas as vezes.

Portanto, estamos pensando em usar contêineres docker para essa finalidade: cada usuário pode configurar seu próprio contêiner com as bibliotecas userland que ele requer e, em seguida, executar as tarefas de processamento em lote usando esse contêiner.

No entanto, como eu vejo, o docker está focado principalmente em serviços em vez de trabalhos de processamento em lote : normalmente você tem um serviço (por exemplo, web) que deve ser executado todo o tempo e processar novos trabalhos (que é basicamente sempre a mesma tarefa com novos dados de entrada) assim que eles chegam.

Nossa situação é bem diferente: um novo usuário deve ser capaz de configurar novas tarefas que devem ser executadas no hardware e deve obter uma certa quantidade de recursos para o trabalho de processamento em lote.

Eu estou querendo saber se já existe uma solução para esse cenário. Eu dei uma olhada no link que parece ir na direção certa, mas o desenvolvimento parou.

    
por J. Doe 13.02.2017 / 15:30

2 respostas

3

Usamos contêineres docker extensivamente para trabalhos do tipo lote efêmero. No nosso caso, é um processamento intensivo de imagens 3D, mas cada contêiner processa um "lote" de milhares de imagens relacionadas. Descobrimos que este caso de uso funciona muito bem, não há motivo para não usar o docker para isso.

Aqui estão algumas coisas para pensar ao projetar sua solução:

  1. Todas as pessoas que enviam o código são confiáveis? Se não, você precisará pensar muito sobre segurança.
  2. Certifique-se de executar seus contêineres com o sinal -rm para que os contêineres sejam removidos automaticamente após a conclusão.
  3. Execute um registro do docker local para que 1) não seja dependente de um registro externo e 2) você possa configurar seu servidor em lote para puxar imagens automaticamente conforme necessário.
  4. Mantenha o controle de imagens que não foram usadas em algum momento e limpe-as do servidor.
por 13.02.2017 / 15:37
0

O ProActive do ActiveEon é um agendador de lotes projetado originalmente para clusters de HPC. Inclui um recurso para iniciar tarefas em contêineres. Este artigo passa por uma demonstração com pacotes R dentro de um contêiner Docker.

Em relação às questões de design:

  1. Os fluxos de trabalho podem ser armazenados em um catálogo com o RBAC. É possível criar um processo seguro para adicioná-los.
  2. Os contêineres são removidos automaticamente assim que a tarefa é executada.
  3. Conforme necessário.
  4. É possível criar um fluxo de trabalho para rastrear e remover regularmente imagens não utilizadas de diversos recursos.

Por fim, um recurso adicional é a capacidade de invadir a nuvem (pública ou privada) se for necessária mais capacidade.

    
por 22.02.2017 / 00:21