WorkUnits - Concluído
-Work Units
1. Geral
Os projectos disponíveis para o processamento dos dados são distribuídos para os clientes do Folding@Home em WorkUnits (WU).
Cada WU é constituída por um conjunto variado de ficheiros, os quais estão localizados numa pasta (denominada work) criada pelo cliente; contendo informação sobre os átomos, ligações entre os átomos e provavelmente ainda mais parâmetros.
2. Trajectórias
Cada projecto consiste num leque variado de múltiplas WUs, e cada WU calcula porções ligeiramente diferentes de uma trajectória em particular. Estas diferentes partes de trajectória são identificadas por diferentes números de Run (Série), Clone e Generation (Geração); estes podem ainda ser encontrados no ficheiro FAHlog.txt que se encontra presente na pasta onde está instalado o cliente.
Exemplo: 2401 (Run 40, Clone 21, Gen 1)
Devido às várias trajectórias necessárias a cada projecto em particular, o tempo de conclusão de cada WU pode variar um tanto, dependendo do número e da complexidade das trajectórias que cada projecto precisa calcular.
O nome e o número do projecto de uma WU em particular, não nos diz as especificações dessa WU. Desta maneira, quando o cliente GUI, ou outras ferramentas de monitorização dizem que estamos a processar um projecto em particular, estamos de facto a processar uma pequena porção desse projecto. Se obtivermos duas WUs que pertencem ao mesmo projecto, teremos cálculos de diferentes porções deste projecto.
3. Tipos de WU
As WUs chegam ao nosso computador, em todas as formas e tamanhos que possamos imaginar. Esta diversidade é causada pelas diferentes proteínas que têm vindo a ser analisadas, pelas várias fases de análise e pelos métodos usados na sua análise.
Estas diferenças podem ser observadas pela quantidade de espaço em disco ocupado por estas WUs, pela memória RAM ocupada quando o
FahCore_xx está a funcionar, e pelo tempo que o CPU demora a completar a WU.
Tipicamente, um projecto está designado para demorar entre 2 a 3 para ser completado inteiramente no computador de Benchmark de Stanford. O que significa que estas valham entre 220 e 440 pontos/créditos.
Existem quatro tipos de WUs disponíveis para os participantes do Folding@Home, e além dessas, as WUs normais.
-Deadlineless Work Units – WUs sem prazo final de entrega
-Large Work Units – WUs com tamanho/tempo de conclusão elevados
-New Advanced Work Units – Novas WUs “avançadas”
-Beta Work Units – WUs destinadas a Beta Testers
3.1 Deadlineless Work Units – WUs sem prazo final de entrega
Todos os projectos têm WUs com determinados prazos de entrega, com excepção de uma pequena quantidade destes em que são criadas WU’s/projectos sem prazo de entrega. As WUs sem prazo de entrega estão disponíveis para quem tem o cliente configurado para receber WUs sem prazo de entrega.
Este tipo de WU é crucial para os computadores que participam no Folding@Home, e que devido ao seu Hardware ser lento (actualmente) ou que estão pouco tempo ligado por dia, tornam impossível o cumprimento dos prazos de entrega das WUs normais.
As WUs sem prazo de entrega podem ser colocados na cache, até um número máximo de 10 unidades simultaneamente.
Nota: A “caching” de WUs não é destinada aos clientes que têm capacidade de completar WUs normais dentro dos prazos impostos, porque todos os projectos são designados para serem completados dentro do prazo preferido de entrega, por computadores com uma performance razoável, mesmo que estes possuam ligações de Internet por Dial-up.
Por isso, use apenas WUs sem prazo de entrega, nos casos em que os computadores não consigam completar a tempo as WUs normais, e também não devemos fazer o caching de WUs sem ser realmente necessário, a menos que entrem num cenário de Sneakernetting.
3.2 Large Work Units – WUs com tamanho/tempo de conclusão elevados
As Large WUs, também conhecidas como BigWUs, estão disponíveis para os clientes que têm seleccionado o parâmetro –BigWU para receber WUs maiores que 5MB.
Estas WUs requerem mais memória no disco e na Ram do computador para o seu processamento, e portanto valem normalmente o dobro dos pontos/créditos de uma Wu normal.
3.3 New Advanced Work Units – Novas WUs “avançadas”
As novas WUs “avançadas”, estão disponíveis para todos os clientes que tem seleccionado o parâmetro –advmethods.
Estas WUs encontram-se numa fase final de testes, antes de estarem disponíveis para todos os participantes do Folding@Home. É de realçar que estas WUs têm uma maior probabilidade de dar origem a erros e a problemas diversos.
3.4 Beta Work Units – WUs destinadas a Beta Testers
As Beta WUs estão apenas disponíveis para os membros do Folding@Home Beta Team. Existe uma possibilidade muito elevada de obter erros e problemas diversos com este de WUs.
4. Atribuição de WUs
As WUs são atribuídas ao cliente por os Folding@Home Assignment Servers. Não se pode escolher a WU que queremos receber, mas o utilizador pode escolher quais as WUs que querem enviar.
Entretanto, é possível ajustar algumas das preferências das WUs no cliente do F@H, mas não é garantido que estas preferências vão funcionar. Podemos, por exemplo, escolher as WUs sem fim de prazo (deadlineless). Esta selecção costuma funcionar quase sempre, porque este tipo de WU é destinado aos clientes que lhe falta velocidade “desejada”, para terminar WUs normais dentro do prazo de final de entrega, mas não há nenhuma garantia. Também podemos configurar o cliente para receber unidades Large WUs. Estes parâmetros, fazem com que os Assignment Servers emitam WUs maiores do que seria de esperar, em comparação com um cliente em default. Este tipo de configuração, faz com que as WU recebidas por o cliente, ocupem muita mais memória em disco e Ram quando em utilização. Finalmente, podemos usar a flag -advmethods para definir o cliente como disponível para receber novas WUs, antes que estejam disponíveis para todo o público. Devemos ter cuidado ao seleccionar esta opção, pois pode dar origem a erros e/ou problemas.
Uma WU representa apenas uma trajectória dentro de um projecto, e não é distribuída geralmente a vários clientes ao mesmo tempo. Quando uma WU recebida por um cliente vê ultrapassada a Preferred Deadline esta é reenviada a outro cliente. Se a WU (reenviada) for retornada antes do prazo final, o cliente recebe os pontos/créditos. Se o primeiro utilizador que recebeu a dita WU e o cliente que recebeu a WU (reenviada), enviam ambos o retorno dessa WU, os servers do Folding@Home fazem automaticamente a comparação entre os dados e os pontos/créditos são descontados nos dois clientes.
Quando um prazo final de entrega é excedido, o cliente apaga automaticamente a WU em questão e faz posteriormente o download de outra WU. Quando termina uma WU inesperadamente (Early Unit End - EUE), é atribuído pontos/créditos parcialmente. Exemplo: A WU x vale 100 pts, e terminou nos 60%, então são atribuídos 60 pontos/créditos.
5. Processamento de WUs
As WUs não são processadas directamente pelo cliente do Folding@Home, e utiliza-se em vez disso, aplicações chamadas
FahCore_xx. Cada uma destas possui código específico e optimizado para um determinado tipo de processamento. Alguns dos
FahCore_xx que são utilizados pelo cliente do Folding@Home são as Tinker, QMD e as Gromacs.
6. Fim do prazo das WUs
Todas as WU, estão limitadas a um período de tempo para serem processadas após a sua recepção. Cada WU traz consigo dois prazos de entrega:
1. Preferred Deadline – Fim do prazo de entrega preferido
2. Final Deadline – Fim do prazo de entrega absoluto
Alguns projectos não têm fim de prazo de entrega aka Deadlineless ou Timeless.
Quando um cliente não retorna a WU dentro da Preferred Deadline, considera-se a WU, supostamente perdida. Assim sendo, esta é reenviada a outro cliente, para se certificar que os resultados irão ser obtidos de qualquer das formas. Cada WU, é deveras importante para cada projecto, e mesmo que uma WU seja somente uma parte pequena de um único projecto, é parte do projecto inteiro do Folding@Home.
Um cliente que exceda o fim do prazo preferido de um WU, ainda tem tempo para terminar a WU antes do seu prazo final. O crédito inteiro seria concedido mesmo assim. O valor científico do trabalho (pois passou da Preferred Deadline) é reduzido ligeiramente porque teve que ser duplicado. E se o cliente exceder o fim do prazo final de uma WU, o cliente rejeitará o WU parcialmente terminado e fará o download de uma WU nova. Nenhum crédito será concedido.
7. Créditos das WUs
Todas as WUs para um projecto em específico valem a mesma quantidade de pontos/créditos, mas os projectos diferem na quantidade de pontos/créditos entre si mesmos. O crédito que um projecto vale, pode variar conforme o tempo excedente (embora esta situação seja extremamente rara); isto verifica-se nas situações em que um projecto (WU) requer muito mais tempo para terminar, em comparação ao que fora determinado inicialmente.
A Universidade de Stanford hospeda uma
Web page com todos os projetos activos, e também encontramos lá o número de pontos/créditos que corresponde a cada projecto. Também podemos utilizar uma de muitas Third Party Contributions, como é exemplo o
Jmol, que indicam a WU actual e seu crédito, entre outras funções, ou da história inteira do crédito dos projectos (até ao presente momento).
7.1 Determinação dos Créditos
A quantidade de créditos concedidos para WU terminada para cada projecto, é baseada num benchmark aplicado a cada projecto.
Os benchmarks são realizados num computador equipado com um Intel P4 2.8GHz (com a função de SSE desligada), e funciona num ambiente Linux. A máquina está preparada para receber 110 pontos/créditos por dia. Isto quer dizer que um projecto idêntico deve ser terminado em 24 horas num sistema também idêntico. Assim um projecto que demore três dias a ser concluído, valerá 330 pontos/créditos.
As BigWUs têm direito a um bónus de 100%, devido ao seu tamanho.
O sistema operativo (OS) em que o cliente funciona, não tem qualquer influência na produção. Um Intel P4 2.8GHz a funcionar com Windows XP, alcançará o resultado final quase ao mesmo tempo, que o mesmo em Linux pois os FahCore compartilham o mesmo o código fonte e bibliotecas entre OS (o mesmo se aplica ao MacOSx). Assim o processamento tornava-se apenas diferente, se o código fonte ou as bibliotecas fossem diferentes. Actualmente, apenas temos apenas um caso destes, em que o FahCore correspondente à Gromacs33 funciona apenas em ambiente Linux, mas uma versão deste Core para Windows está a ser desenvolvida.
7.2 Concessão dos Créditos
Quando um cliente envia uma WU, os créditos são concedidos à combinação do Username/Team, que era actual na altura da conclusão. Isto significa que o Username e a Team configurados no cliente, podem ser alterados quando a WU está a ser processada. Não é atribuído assim, o Username e a Team que estavam configurados no cliente quando a WU é recebida.
Uma vez o crédito concedido a um Username/Team, não pode ser mudado. Alem disso, não é possível transferir os pontos/créditos previamente ganhos, para um Username novo ou para uma outra Team diferente.
Dependendo da disponibilidades dos Servers em Stanford, pode demorar algum tempo após a conclusão de um WU, para os pontos/créditos serem adicionados ao Username e à Team que o terminou. Mas na maioria das vezes, isto acontece dentro de uma hora.
Há também os casos onde nenhum crédito é concedido. Isto não é comunicado ao cliente que recebe somente a indicação que a WU foi recebida, e não os pontos/créditos que foram concedidos. Se precisarem de saber porque não foi concedido nenhum crédito, devem perguntar no
Folding-Community onde indicarão essa dúvida ao Moderador, indicando o Projecto, Run, Clone e Generation da referida.
No caso de a WU ser terminada prematuramente, por exemplo quando uma Early Unit End (EUE) ocorre, o crédito é concedido, ainda que parcialmente. Uma fórmula é usada determinar a percentagem de trabalho que estava terminado, atribuindo os pontos/créditos (através do resultado dessa fórmula); como vemos neste exemplo: A WU x vale 100 pts, e terminou nos 60%, então são atribuídos 60 pontos/créditos.
Infelizmente, há algumas excepções a esta política. Quando uma WU tem uma EUE, alguns dos dados estarão incompletos. Se o server não encontrar um log válido que indica que foi concluído 60%, estimará quanto foi terminado. Estas estimativas são baseadas na quantidade de trabalho que um PC muito lento terminaria, prejudicando significativamente a pontuação atribuída a um computador razoavelmente rápido.