Rosetta@Home - tópico oficial - Na luta contra o COVID19!

Tive que passar a 100% para o Folding@home porque o Roseta está a secar. Apenas 4 a terminar e 0 em lista de espera...
 
Não sei se é conhecido, mas acabei de ver. É possível correr Rosetta@Home em SBCs (Small board Computers, tal como o Raspberry Pi) que tenham processadores ARM 64 bit, corram Linux 64 bit e tenham pelo menos 2 GB de RAM.

YvkcWhw.png


On Debian/Ubuntu-based operating systems, you can install BOINC as follows:

"sudo apt-getinstall boinc-client boinctui"

Not that BOINC for 64-bit Arm has been around for several years, but Rosetta@Home has only recently started to send work units to 64-bit Arm devices.

You can then use your computer to go to create a BOINC account and join a team such as “crunch-on-arm” team. Once it’s done, you can run BOINC Terminal UI program in your Arm device:

"boinctui"

Then press F9 to access the menu, navigate to Projects, select Add Project, and select Rosetta with Existing User and enter the credentials you just created in the previous step.

After a while, Rosetta should begin downloading the necessary files, then some work units, before crunching data on your board. You can press ‘Q’ to exit the UI, and it will still run in the background.

Note that if you are using a Raspberry Pi 4 with 2GB RAM only, only 1.9GB RAM may be detected, and you may have to tweak your config files. This is explained in miniNodes post. That also means some other SBC’s with 2GB RAM may have issues, so using boards with 4GB RAM or more if a safer bet.

https://www.cnx-software.com/2020/0...cs-and-servers-in-the-fight-against-covid-19/

Vou ver se tenho tempo de experimentar. :)
 
The Raspberry Pi 2 V1.2 was upgraded to a Broadcom BCM2837 SoC with a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor

O CPU dá. É o mesmo do 3 e são 64 bit. Penso que também dá para instalar distros 64 bit no 2+ e 3.
O problema é a RAM, mesmo no RPI 4 com 1 GB de RAM.

No artigo que eles linkam diz isto:
If you are using a 2gb RAM version of the Pi 4, we need to override one setting to cross that 1.9gb threshold mentioned earlier.If you have a 4gb RAM version of the Pi 4, you can skip this.But, 2gb users, type ‘sudo nano /var/lib/boinc-client/global_prefs_override.xml’ and enter the following to increase the default memory available to Rosetta to the maximum amount of memory on the board:

Código:
<global_preferences>
<ram_max_used_busy_pct>100.000000</ram_max_used_busy_pct>
<ram_max_used_idle_pct>100.000000</ram_max_used_idle_pct>
<cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

https://www.mininodes.com/how-to-run-rosettahome-on-arm-powered-devices/

Não sei se "jogando" com aqueles 2 parâmetros iniciais, se consegue colocar a funcionar em versões com 1 GB de RAM. Duvido, visto que me parece que ele coloca aqueles 2 a 100% no de 2 GB de RAM.
Dito isto, a performance do A53 do 2+ e 3, não será fantástico a correr o que quer que seja. Mesmo o A72 não será "espectacular".

Eu vou ver se tenho tempo de experimentar. Tenho o RPI4 com 4 GB de RAM com "bom" cooling passivo (Uma caixa Flirc). Gostava de experimentar para ver a diferença para a VM com 2 cores de 1 i3-8100 que tenho a correr o Rosetta@Home. :)
 
O meu só tem 1 GB, melhor deixar estar quieto. Serve bem como mediacenter + pihole :D

Andava para comprar um RPI4, mas com o dolar/euro lá em cima... no way
 
8 horas de CPU é o padrão do projecto. Dá para escolher, entre 2 horas e 1 dia e 12 horas de CPU, se não estou em erro. Quanto mais horas, mas trabalho a tarefa faz.
Já apanhei cerca de 30 tarefas que demoraram 17 horas cada. Mas na grande maioria é de 5 a 8 horas.
 
Eu vou ver se tenho tempo de experimentar. Tenho o RPI4 com 4 GB de RAM com "bom" cooling passivo (Uma caixa Flirc). Gostava de experimentar para ver a diferença para a VM com 2 cores de 1 i3-8100 que tenho a correr o Rosetta@Home. :)

Experimenta e comenta o que achas do processamento das WUs.
Tenho visto feedback positivo dos RPi 3 e 4

Eu tenho um Vernee Thor (Android de 2GB de RAM) a correr o WGC e meti para o Rosetta também, mas o log diz que o Rosseta pede 2GB e só tenho 1500 e tal disponíveis, e por isso nao recebo WUs do rosetta.

Já num tablet da huawei de 3GB Ram, corre bem, demora secalhar o dobro do tempo de um i5 de 3ª geração que tenho num portátil a completar uma WU. O smartphone e o tablet sao ambos octacore, de configuração BIGlittle, mas só fazem 4 WUs de cada vez.
 
Neste link https://boinc.bakerlab.org/rosetta/prefs.php?subset=project

Target CPU time - Se puserem por exemplo para 10 horas, uma tarefa apontará para correr durante 10 horas de CPU. Se ao fim de 10 horas de CPU, a tarefa continuar, isso acontence até que acabe a estrutura em que está a trabalhar OU até chegar às 4 horas de CPU para além das 10 horas CPU, ou seja, no limite, pode chegar às 14 horas de CPU. Quando chega essa altura, uma função chamada watchdog aborta a tarefa (ou melhor, aborta a estrutura actual) e a tarefa é devolvida e validada pelo servidor.

Aqui há umas poucas semanas houve umas tarefas que estavam a durar 16 horas independentemente do valor especificado nas preferências, talvez tenha sido isso, CmdC. Houve até um tópico criado por um dos moderadores sobre isso, visto que ele achava que o padrão tinha passado das 8 horas para as 16 horas.

Às vezes, uma tarefa acaba mais cedo por qualquer razão, por exemplo, um erro numa estrutura ou assim (vi várias dessas em que o ficheiro do output não correspondia com o tamanho correcto e a tarefa acabava ao fim de 3 horas por exemplo, sendo que acabava validada pois as estruturas anteriormente computadas estavam correctas).

Espero ter explicado mais ou menos bem.
 
Experimenta e comenta o que achas do processamento das WUs.
Tenho visto feedback positivo dos RPi 3 e 4

Eu tenho um Vernee Thor (Android de 2GB de RAM) a correr o WGC e meti para o Rosetta também, mas o log diz que o Rosseta pede 2GB e só tenho 1500 e tal disponíveis, e por isso nao recebo WUs do rosetta.

Já num tablet da huawei de 3GB Ram, corre bem, demora secalhar o dobro do tempo de um i5 de 3ª geração que tenho num portátil a completar uma WU. O smartphone e o tablet sao ambos octacore, de configuração BIGlittle, mas só fazem 4 WUs de cada vez.

Lá experimentei hoje. :) Instalei a versão 64 bits do Ubuntu Server 20.04 Beta e instalei o "boinctui".
Nota: Se estiverem numa máquina Linux sem ambiente gráfico, não instalem o "boinc", porque é a versão gráfica e tem 1.1 GB de dependências. Instalem o "boinctui" porque são apenas uns MB e é super simples.

O "lscpu" a mostrar os detalhes do Processador.
1.jpg


O "boinctui" é muito simples de usar. Ir ao menu via F9, adicionar o projecto e colocar o user e password.
3.jpg


Durante bastante tempo não consegui fazer download de WUs, talvez por os servidores andarem sobrecarregados.
2.jpg


Se repararem na primeira imagem do "boinctui", tem lá valores do benchmark interno. "Whetstone" que é um benchmark simples de virgula flutuante e "Dhrystone" que é outro benchmark simples de números inteiros. Os valores, comparador com uma máquina virtual com 2 cores de um Intel Core i3 8100. Aqui ficam os valores desses 2 cores do i3 8100.
4a.jpg


E os valores colocados num gráfico, para mais fácil comparação. De notar que estes dois benchmarks são bastantes antigos e também haverá diferenças entre ter corrido em Linux no Rpi4 e em Windows no i3 8100. Não é das coisas mais fiáveis do mundo......
Benchmarks.jpg


Ao fim de algum tempo tempo, lá fez download de 2 WUs, mas não iniciou logo. Em idle, o RPi4 estava a 42,8º C de temperatura, numa boa caixa passiva (Flirc) dentro de uma sala sem refrigeração e com muito material informático ligado.
5.jpg


Lá começou e ao fim de uma hora, o CPU do RPI4 estava a 55,5º C, mas como as WUs são single thread, só está a usar 2 dos 4 cores do RPI4. Mesmo só usando 2 threads, estava à espera de temperaturas piores.
Cada WU parece demorar por volta de 6 horas e 20 minutos.
6.jpg


Quando tiver 4 WUs a "boincar" ao mesmo tempo, edito ou coloco um novo post a mostrar como está a correr. :)

EDIT: RPi4 a "boincar" 4 WUs ao mesmo tempo à 2 horas e 30 minutos. CPU em Full load, com temperatura nos 60,8º C. Uma WU de Covid-19 parece demorar +/ 9 horas, enquanto no i3 8100 demora +/- 7 horas.
Estou bastante surpreendido pela positiva em relação à performance e temperatura do CPU. É uma comparação entre um processador que tem +/- um TDP de 7W (RPi4) com um de 65W (i3 8100). :)
7.jpg
 
Última edição:
Excelentes resultados deste "boincing"

EDIT: RPi4 a "boincar" 4 WUs ao mesmo tempo à 2 horas e 30 minutos. CPU em Full load, com temperatura nos 60,8º C. Uma WU de Covid-19 parece demorar +/ 9 horas, enquanto no i3 8100 demora +/- 7 horas.
Estou bastante surpreendido pela positiva em relação à performance e temperatura do CPU. É uma comparação entre um processador que tem +/- um TDP de 7W (RPi4) com um de 65W (i3 8100). :)
7.jpg

Que eficiência, muito bom mesmo. Os processadores ARM tem um grande potencial para este tipo de carga sintética, com estes consumos baixos. E a temperatura também é muito boa, visto ser passively cooled.
 
Ok, já entendi. Eu como tinha por default dá então as 8 horas. Obrigado pela explicação @Culverin penso que esta opção não existirá no WCG

De nada.
- No WCG não existe essa opção pois cada tarefa tem uma carga de trabalho definida logo à partida. O Rosetta@home é um pouco diferente. O MIP do WCG usa o software Rosetta e normalmente tem um número fixo de estruturas (1, 2, 3, 4 por aí) daí que sejam tarefas curtas. Acaba de resolver essas estruturas, acaba a tarefa.


- A questão de comparação do Rosetta entre diferentes processadores é meio complicada. Como o runtime é fixo, uma tarefa num I7 ou num Raspberry Pi vai demorar sensivelmente o mesmo tempo (8 horas é o padrão, mas podemos escolher nas definições)
Há que olhar para o trabalho feito por cada tarefa. Idealmente faríamos a comparação com a mesma tarefa em 2 processadores diferentes, mas tal não é possível.

Mas o principio geral é que apesar da mesma duração, um I7 fará muito mais trabalho numa tarefa em 8 horas de CPU do que um Raspberry Pi nas mesmas 8 horas de CPU. Podemos olhar para o task log e ver quantas estruturas foram computadas, embora isto varie por cada tarefa. O I7 faz mais trabalho durante essas 8 horas do que o Pi dada a diferença de velocidade, IPC, etc.
O que interessa é que todas as tarefas acabam por ajudar, seja para a parte da ciência aplicada como é agora o COVID-19 (e HIV, Malária, etc em tempos passados) ou para o desenvolvimento do Rosetta enquanto software, que tem sido o maior objectivo do Rosetta@home.


- Quanto aos benchmarks do BOINC, há diferenças entre Windows e Linux. Pelo que já li no WCG, terá a ver com a melhor gestão de memória do Linux. O que é certo é que os projectos que usam o AutoDock Vina no WCG (actualmente só o SCC) são muito mas muito mais rápidos em Linux, 50% ou mais do que em Windows. Os outros são ela por ela.

Também o TN-Grid (que tem algum trabalho do SARS-CoV-2) e o Universe@home são significativamente mais rápidos em Linux do que no Windows. No Universe@home, as tarefas em Linux (https://universeathome.pl/universe/results.php?hostid=554097) são realizadas em pouco mais de 1 hora CPU enquanto que no Windows (https://universeathome.pl/universe/results.php?hostid=548101) demoram muito mais. No TN-GRID, a diferença é menor mas significativa (do que tenho visto, 30-40 minutos mais rápido em Linux do que em Windows)


- O Ubuntu 20.04 apresenta benchmarks diferentes no BOINC. Por exemplo, o meu Ryzen 1400:


Linux Mint 19.3 (Ubuntu 18.04) - https://universeathome.pl/universe/show_host_detail.php?hostid=554074
Ubuntu 20.04 - https://universeathome.pl/universe/show_host_detail.php?hostid=554097
E já agora o Windows para comparação - https://universeathome.pl/universe/show_host_detail.php?hostid=548101

Houve portanto uma diferença nos resultados do benchmark do BOINC entre o 18.04 e o 20.04.
No Linux Mint, tentei com a mesma versão BOINC e o mesmo Kernel do 20.04 mas não obtive resultados diferentes. Algo terá mudado no 20.04.
Eu notei uma diferença perceptível entre 18.04 e 20.04 na duração das tarefas SCC do WCG, com vantagem para o 20.04.


- Ultimamente tenho feito um pouco mais de Rosetta e também do TN-Grid, que acho que é um projecto interessante e com boa comunicação. O meu projecto principal é e quase desde sempre foi o WCG, embora esteja desiludido com a falta de comunicação de vários dos projectos. Dito isto, falei recentemente com um dos cientistas de um projecto que acabou há vários anos e fiquei bastante satisfeito.

Não há-de faltar muito para haver mais um projecto contra o SARS-CoV-2. Acredito que o BETA do OpenPandemics comece esta semana.
 
Última edição:
- A questão de comparação do Rosetta entre diferentes processadores é meio complicada. Como o runtime é fixo, uma tarefa num I7 ou num Raspberry Pi vai demorar sensivelmente o mesmo tempo (8 horas é o padrão, mas podemos escolher nas definições)
Há que olhar para o trabalho feito por cada tarefa. Idealmente faríamos a comparação com a mesma tarefa em 2 processadores diferentes, mas tal não é possível.

Mas o principio geral é que apesar da mesma duração, um I7 fará muito mais trabalho numa tarefa em 8 horas de CPU do que um Raspberry Pi nas mesmas 8 horas de CPU. Podemos olhar para o task log e ver quantas estruturas foram computadas, embora isto varie por cada tarefa. O I7 faz mais trabalho durante essas 8 horas do que o Pi dada a diferença de velocidade, IPC, etc.
O que interessa é que todas as tarefas acabam por ajudar, seja para a parte da ciência aplicada como é agora o COVID-19 (e HIV, Malária, etc em tempos passados) ou para o desenvolvimento do Rosetta enquanto software, que tem sido o maior objectivo do Rosetta@home.

Tens razão. Eu estou mais habituado ao Folding@Home onde é mais fácil fazer uma comparação directa.
A melhor forma de comparar não será com o campo "Average processing rate" em GFlops nos detalhes de cada computadores, quando esses computadores estão só a 100% a usar o Boinc?

Adicionei um Atom N2807 e o que tenho é:

ProcessadoresAverage processing rate ( Gflops )
2 cores i3 810022.84
2 cores Atom N28073.29
4 cores ARM A72 (RPi4)2.90
- Quanto aos benchmarks do BOINC, há diferenças entre Windows e Linux. Pelo que já li no WCG, terá a ver com a melhor gestão de memória do Linux. O que é certo é que os projectos que usam o AutoDock Vina no WCG (actualmente só o SCC) são muito mas muito mais rápidos em Linux, 50% ou mais do que em Windows. Os outros são ela por ela.

Para mim talvez o maior problema é a antiguidade daqueles benchmarks. Actualmente, não me parece que os valores sejam muito representativos em processadores modernos.
 
Taxa média de processamento 3.62 GFLOPS - Ryzen 1400 3.2 Ghz Rosetta 4.12 x86_64-pc-linux-gnu - 16 tarefas concluídas

Acho que sim, que é melhor comparar por aqui.
 
Aconselham-me a instalar o Linux para despachar mais tasks? Culverin ?

Em relação ao Rosetta? Não sei se há ganho de velocidade nesse projeto em particular mas talvez um melhor uso de memória. O Linux, Xubuntu por exemplo, usa menos memória que o Windows e o Rosetta usa muita RAM, talvez haja vantagem nesse sentido? Talvez faça um pouco mais de trabalho por cada tarefa mas a duração será a mesma.

Noutros projectos, como mencionei acima, há uma clara melhoria nos tempos de execução.
É uma questão de experimentar, nem é preciso instalar no PC, basta usar a pen e instalar o BOINC e ver como anda.
 
Instalei o Xubuntu 20.04 no dia 1 de Abril no AMD Ryzen 5 1400 3.2 GHz. Desde então fez 984 tarefas em 13 dias (no tempo que esteve ligado, não fica durante a noite). A maioria SCC, e algumas FAH2.
Com o Windows 10, fez em 13 dias de Março 457 tarefas, igualmente com maioria de SCC e algumas FAH2.

Ambos os sistemas operativos fizeram também várias tarefas do Universe@home, TN-Grid, Rosetta e talvez mais qualquer coisa (umas GPU Einstein ou assim). No entanto, dediquei mais tempo ao TN-Grid e Universe@home no Linux do que no Windows.

No Universe@home, TN-Grid e nos projectos WCG que usam o AutoDock Vina (SCC é o único neste momento), há grandes diferenças e aí sim, despacham-se mais tarefas.
 
Última edição:
Back
Topo