Corona vírus – Folding@Home Linux

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. O control 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.

You May Also Like

About the Author: Ronyan

Entusiasta de tecnologia desde criança, passou de redes de computadores para desenvolvimento web e gerenciamento de servidores.