WorkUnit

From Portugal@Folding Wiki

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; contém informação sobre os átomos, ligações entre os átomos e provavelmente ainda mais parâmetros.

Tabela de conteúdo

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 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 gráfico, 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.

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 ser executado, e pelo tempo que o CPU demora a completar a WU.

Tipicamente, um projecto está designado para demorar entre 2 a 4 dias 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

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 tal.

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.

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

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/flag –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.

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.

Atribuição de WUs

As WUs são atribuídas ao cliente pelos servidores do Folding@Home. Não se pode escolher a WU que queremos receber, visto esse trabalho pertencer ao servidor.

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 se pode configurar o cliente para receber unidades Large WUs. Estes parâmetros, fazem com que os Assignment Servers emitam WUs maiores do que o normal, 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.

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.

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: 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.

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 aloja uma Página com todos os projetos activos, e também se encontra lá o número de pontos/créditos que corresponde a cada projecto.

Também se pode utilizar programas de monotorização, como é exemplo o FahMon, que indicam a WU actual e seu crédito, entre outras funções.

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 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 Cores compartilham o mesmo o código fonte e bibliotecas entre Sistemas (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.

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.

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.



Este artigo foi escrito/traduzido com base no artigo WorkUnits do FahWiki.
Ferramentas pessoais
Portugal@Folding Wiki