Que tal contribuir de maneira positiva durante a pandemia?
Vamos descobrir então como podemos fazer isto utilizando o Folding@Home
Neste momento, alguma pessoa do planeta terra está sendo afetado de alguma maneira pelo COVID-19. E várias pessoas estão buscando maneiras de como ajudar. Essas pessoas estão fazendo máscaras, iniciando projetos inovadores, fornecendo equipamentos ou conselhos técnicos. E você pode ajudar doando o que você tem. Se você é igual à mim, que possui um computador ou notebook que fica ocioso maior parte do tempo , você pode contribuir para encontrar uma solução para a pandemia do COVID-19, além de outras pesquisas como a doença de Alzheimer e até o cancêr.
Ponto chave do problema
Os vírus nada mais são compostos químicos formados por grupos de aminoácidos, estes chamados de proteínas. Realizando uma examinação destas proteínas, podemos identificar o que elas fazem e como elas fazem. Basicamente, podemos ter o conhecimento em onde adicionar nossas próprias células para controlar ou combater estas proteínas “ruins”. Quando é possível isolar e identificar esta proteína, inicia-se o processo de terapias, experimentando vacinas e assim chegando à uma cura. Um dos desafios se concentra em obter informações da proteína, embora seja fácil obter uma imagem da estrutura , que basicamente é uma foto, não obtém dados da proteína em ação. Assim , é mais difícil criar um plano de combate, o que realmente seria ótimo , para aumentar a variedade de maneiras as quias se poderia combater a proteína do vírus. Em outra questão, também é caro e demorado tentar diversas maneiras distintas de ações ( tentativa e erro ).
Os computadores já são utilizados há muito tempo pelos cientistas para simular essas proteínas e suas ações. Em alguns casos, é possível utilizar enormes computadores, que são capazes de realizar milhares/milhões de cálculos e produzir as representações da estrutura e do comportamento do vírus. Mas, infelizmente, esses computadores são raros, muito caros e na maioria das vezes, compartilhados com outros projetos. E, dividindo a simulação em tarefas ou partes menores, é possível realizar esses cálculos e a modelagem em vários computadores de forma simultânea, e assim, juntar os dados em um único resultado de forma mais rápida e barata.
Folding at Home
O projeto Folding@Home é um projeto que foi iniciado em 2000, os voluntários doam tempo de CPU e GPU de seus computadores, que ficariam ociosos, para trabalhar em projetos de criação de antibióticos e na pesquisa de cura ao cancêr, desde então, fizeram muitas contribuições importantes. Atualmente, o Folding@Home disponibiliza mais de 100 petaflops de poder de processamento para os pesquisadores. Podemos citar um projeto atual e de alta prioridade, a pesquisa para encontrar as maneiras de combater a pandermia do COVID-19.
O Folding@Home é um software que pode ser instalado em praticamente qualquer computador. Existem downloads deste software para Windows, MacOS e Linux. Existem também uma imagem para VMWare. Além disso, há projetos para executar o cliente no Android e em um plugin do Chrome. E não mais impressionante, podemos encontrar uma imagem no Docker.
Neste artigo, vamos ver como realizar a instalação e configuração no Linux, utilizando uma instalação mínima ( Headless ) do CentOS 7, o qual você poderá criar várias máquinas virtuais ( VMs ).
Como o Folding@Home funciona
Este software consiste em três pacotes:
- O
client
, o qual, atualmente realiza a execução da simulação e se comunica com a arquitetura Folding@Home - Um
control client
( controle do cliente ), o qual, é utilizando para gerenciar o processamento do cliente, para configurar qual projeto você deseja contribuir, e a segurança do acesso. Ocontrol client
pode ser utilizado para gerenciar mais de um processo do cliente. - Um
visualizer
( visualizador ), o qual, você pode utilizar-lo para visualizar certos aspectos do projeto.
Os requisitos de sistema para começar são mínimos. Qualquer combinação de hardware e sistema operacional recente funcionará bem.
Para Linux, o Folding@Home tem pacotes .deb ( para Debian/Ubuntu/Mint) e .rpm ( para RHEL/CentOS/Fedora), podendo ser obtidos clicando aqui.
Já no diretórios Downloads
, instale o pacote utilizando o usuário root, usando YUM para solucionar os errores de dependências.
[root@jupiter Downloads]# yum install ./fahclient-7.5.1-1.x86_64.rpm
Repita este processor para os arquivos fahcontrol
e fahviewer
, e então deve estar tudo pronto. O fahclient
será inicado automaticamente como um serviço, mas você pode utilizar a aplicação visual fahcontrol
para gerenciar o cliente e configurar algumas opções.
Vamos começar pelo botão Configure.
- Na aba Identity, você pode informar um nome de usuário e um ID de time ( o código do time Enable Sysadmin é
253484
). Você também pode realizar seu cadastro e informar uma senha ( passkey ), o qual irá prevenir que alguma pessoa se passe por você. - Na aba Remote Access, você poderá informar uma senha e o IP do computador que você deseja gerenciar caso seja de forma remota.
- Na aba Advanced, você poderá escolher uma
preferência de causa
. Nesta opção você poderá escolher entre alguns projetos em andamento, ou Any ( Qualquer um ). Atualmente,o Folding@Home está solicitando às pessoas que desejam contribuuir para a pesquisa do COVID-19 que escolham a opção Any.
Podemos observar também que, no aplicativo fahcontrol
, você pode pausar
o client e ver o progresso da tarefa atual.
Instalação através do terminal
Em uma instalação minimal do CentOS 7.x, realize a instalação manualmente dos clientes Folding@Home através do terminal.
Primeiros, vamos realizar o download dos clientes.
wget https://download.foldingathome.org/releases/public/release/fahclient/centos-5.3-64bit/v7.4/fahclient-7.4.4-1.x86_64.rpm
wget https://download.foldingathome.org/releases/public/release/fahcontrol/centos-5.3-64bit/v7.4/fahcontrol-7.4.4-1.noarch.rpm
Note que não iremos realizar o download do fahviewer
, o qual necessita de uma interface gráfica.
Neste passo, iremos instalar o fahclient
.
[root@fah1 ~]# yum install ./fahclient-7.4.4-1.x86_64.rpm
Para o cliente fahcontrol
, a instalação necessita do Python 2.6, porém funcionará normalmente com a versão 2.7. Em uma instalação limpa, esta versão do python não estará instalado. Neste caso, iremos utilizar a opção --skip-broken
para ignorar qualquer tipo de erro ao realizar a instalação.
[root@fah1 ~]# yum install --skip-broken ./fahcontrol-7.4.4-1.noarch.rpm
Os arquivos de configuração encontram-se no diretório /etc/fahclient
, mas o client é executado a partir de /var/lib/fahclient
. No diretório configs
, iremos realizar uma cópia da configuração padrão, a qual inclue as instruções para várias opções. Realize a cópia para o diretório /etc/fahclient
.
[root@fah1 configs]# cp ./config-20200326-190702.xml /etc/fahclient/config.xml
cp: overwrite '/etc/fahclient/config.xml'? y
[root@fah1 configs]# cd /etc/fahclient/
[root@fah1 fahclient]# ls
config.xml
Agora, abra seu editor de texto favorito e adicione a informação de seu usuário
<!-- User Information -->
<user value="skipworthy"/> <!-- Enter your user name here -->
<team value="253484"/> <!-- Your team number -->
<passkey value="[your passkey here"/> <!-- 32 hexadecimal characters if provided -->
Agora, vamos selecionar as opções de power ( power values
). O valor padrão está de bom tamanho. Caso altere para full
, entende-se que está sendo utilizado um servidor dedicado.
<power value="full"/>
<gpu value="false"/> <!-- If true, attempt to autoconfigure GPUs -->
<fold-anon value="false"/>
Próximo passo, configurar o acesso remoto
<!-- Granting Remote FAHControl Access To grant remote access to FAHControl and the remote command server add the following:
<allow>127.0.0.1 192.168.0.142</allow> <password>PASS</password>
Where x.x.x.x is the IP address of the computer which should be granted remote access and PASS is you choose to further secure the connection. -->
Agora, salve suas alterações e reinicie o fahclient
usando os scripts.
[root@fah1 fahclient]# /etc/init.d/FAHClient stop
Stopping fahclient ... OK
[root@fah1 fahclient]# /etc/init.d/FAHClient start
Starting fahclient ... OK
[root@fah1 fahclient]#
Por fim, use o comando tail
para visualizar no arquivo de log se as configurações foram alteradas e se o cliente está sendo executado.
[root@fah1 fahclient]# tail log.txt
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:12:
19:30:34:
WU00:FS00:0xa7:Completed 2500 out of 125000 steps (2%)
E, você terminou! Você poderá adicionar o novo cliente ao seu cliente de controle ( control client
) e acompanhar suas estatísticas através do site do Folding@Home.
Resumindo
Existem diversas informações realmente interessantes e seus detalhes no site do projeto Folding@Home. Seria maravilhoso você dar uma olhada neste projeto realmente inteligente e que vale muito a pena.