KiSobral / jogo-da-vida-paralelo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# Trabalho Final Programação para Sistemas Paralelos e Distribuídos

## Como rodar

Para rodar o projeto desenvolvido é necessário possuir instalada a ferramenta [Docker](https://www.docker.com/) e [Docker Compose](https://docs.docker.com/compose/). Caso você não possua essas ferramentas, é possível instalá-la seguindo suas documentações oficiais:

* Arch: [Docker Desktop](https://docs.docker.com/desktop/install/archlinux/); [Docker Engine](https://wiki.archlinux.org/title/docker#Installation); [Docker Compose](https://wiki.archlinux.org/title/docker#Docker_Compose)
* Ubuntu: [Docker Desktop](https://docs.docker.com/desktop/install/ubuntu/); [Docker Engine](https://docs.docker.com/engine/install/ubuntu/); [Docker Compose](https://docs.docker.com/compose/install/linux/#install-using-the-repository)
* Windows: [Docker Desktop](https://docs.docker.com/desktop/install/windows-install/)
* Mac: [Docker Desktop](https://docs.docker.com/desktop/install/mac-install/)

Após a instalação do Docker, basta executar o comando abaixo para criar os containers que irão executar as ferramentas Elastic Search, Kibana, Zookeeper e Kafka.

```bash
$ docker compose up
```

O último container instanciado inicia um consumidor do tópico Kafka e fica disponível para execução do código do Jogo da Vida, desenvolvido em C, com as bibliotecas MPI e OMP.

O consumidor espera receber uma mensagem no formato:

```json
{
    "powmin": powmin,
    "powmax": powmax,
    "method": metodo
}
```

Sendo `powmin` e `powmax` valores inteiros, enquanto `method` espera uma string.


Para facilitar o envio de dados para o consumidor foi criado um código Python que realiza esse processo. Para executá-lo é necessário criar um ambiente virtual. Isso pode ser feito seguindo o tutorial da [Dataquest](https://www.dataquest.io/blog/a-complete-guide-to-python-virtual-environments/).

Dentro do ambiente virtual instale as dependências com o comando `pip install -f requirements.txt`. Por fim basta executar o arquivo `producer.py` com o comando:

```bash
python3 producer.py
```

About


Languages

Language:C 64.5%Language:Jupyter Notebook 22.0%Language:Python 12.8%Language:Dockerfile 0.7%