Skip to content

Commit

Permalink
Documenting main directory and subdirectories with README files
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasroges committed Jan 23, 2020
1 parent 71d265f commit 3961951
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 0 deletions.
59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,60 @@
# Slurm Swarm Cluster

## Instruções para obtenção das imagens

### Local

A obtenção das imagens pode ser realizada localmente, através dos `Dockerfile` disponibilizados e do comando `docker build`.

Existem 3 imagens que devem estar disponíveis antes de executar a aplicação no Swarm: [base](base), [controller](controller) (no nó controlador), [worker](worker) (nos nós de execução de aplicações).

Em cada umas das páginas linkadas acima, encontram-se as instruções específicas para utilização do `docker build`.

### Docker Hub

As imagens estão disponíveis no Docker Hub e podem ser obtidas através dos comandos abaixo.

```
docker pull lraraujo/slurm-swarm-base:19.05.4
docker pull lraraujo/slurm-swarm-controller:19.05.4
docker pull lraraujo/slurm-swarm-worker:19.05.4
```

## Instruções para execução

Iniciar o Swarm, normalmente no nó controlador.

```
docker swarm init
```

Utilizar a saída do comando acima e executá-la nos outros nós, para que entrem no Swarm e possa ocorrer a execução de maneira distribuída.

Para verificar a situação dos nós no Swarm, pode-se executar o comando `docker node ls`. Após todos estarem ativos, podemos iniciar a pilha de serviços, utilizando o nó ... do Swarm. Para tal, utilizar o arquivo [docker-compose.yml](docker-compose.yml) (o número de replicas de *workers* deve ser editado para corresponder a quantidade de nós).

```
docker stack deploy -c docker-compose.yml slurm
```

Para verificar a condição dos serviços, utilizar `docker service ls`.

Para entrar em algum dos serviços, utilizar `docker ps` para obter o nome dos *containers* e utilizá-lo no comando abaixo.

```
docker exec -ti <nome> /bin/bash
```

## Comandos SLURM

Alguns comandos podem ser executados para verificar a estrutura do *cluster* e outros aspectos do SLURM:

* `sinfo`
* `scontrol show node <hostname>`
* `squeue`
* `sbatch` (submeter jobs)

### Exemplo

Um pequeno exemplo ([slurm_test.job](base/slurm_test.job)) foi colocado na imagem para realizar um simples teste nos nós de processamento.

Para execução do mesmo, utilizar o comando `sbatch -N <número-de-nós> slurm_test.job`.
11 changes: 11 additions & 0 deletions base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Slurm Swarm Cluster - Base

Imagem contendo as dependências e configurações para possibilitar a execução do SLURM em um ambiente de *containers*.

## Obtenção

Para construir essa imagem, que é a base para nó controlador e nó de processamento, utilizar o comando abaixo.

```
docker build -t slurm-swarm-base:19.05.4 .
```
11 changes: 11 additions & 0 deletions controller/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Slurm Swarm Cluster - Controller

Imagem contendo um *script* de execução que configura arquivos e dirétórios do Munge e do SLURM, no nó controlador e nos nós de processamento, para possibilitar o funcionamento do SLURM em todos esses nós.

## Obtenção

Para construir essa imagem, utilizar o comando abaixo.

```
docker build -t slurm-swarm-controller:19.05.4 .
```
11 changes: 11 additions & 0 deletions worker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Slurm Swarm Cluster - Worker

Imagem apenas executa `sshd` para aguardar a conexão do controlador, que realiza a configuração necessária (Munge e SLURM).

## Obtenção

Para construir essa imagem, utilizar o comando abaixo.

```
docker build -t slurm-swarm-worker:19.05.4 .
```

0 comments on commit 3961951

Please sign in to comment.