GPUs, CUDA e os (sub)projetos @ home

Prezados:

Conversei, dias desses, via e-mail, com outro participante ativo dos (sub)projetos BOINC (SETI e lhc), cujo nome não sei se posso citar, e demonstramos preocupação pelo fato de o Boinc Manager, embora detecte os drivers CUDA, não o utilize quando do processamento do AstroPulse...
Mas o SETI@home enhanced, agora, faz pleno uso da GPU, conforme figura abaixo:

(clique na figura para vê-la com maior resolução)

Coincidências à parte, eu havia pensado em utilizar o processamento das novas GPUs (que têm uma capacidade, às vezes, superior à da própria CPU) para cálculos matemáticos avançados, como é o caso do SETI, lhc e outros.

De repente, eis que uma nova versão do gerenciador surge, agora com suporte à CUDA (Compute Unified Device Architecture, para quem chegou agora, é o nome da arquitetura de computação paralela desenvolvida pela NVIDIA para suas placas gráficas)!
Mas nada, no mundo dos zeros e uns, é perfeito...
Como disse, o AstroPulse (do SETI) ainda usa, para processar os dados recebidos do Manager, a lenta e engessada CPU - que tem "outras coisas p´ra fazer" - e, com isso, deixa de utilizar a plena capacidade das máquinas de hoje.

Então, é chegada (já QUASE passada, IMHO) a hora de as GPUs assumirem este tipo de "trabalho", a exemplo do que fazem nos novos jogos FPS (e.g. Crysis, FarCry2), onde 'emulam', também, a física do jogo, sem necessidade das extravagantes - e caras - placas PhysX da Ageia.

Seria o momento de nós, programadores, revermos alguns conceitos a respeito das APIs da CUDA, utilizando-os para um processamento mais "poderoso" dos dados do BOINC?

Vamos conversando a respeito e trocando ideias...
Numa dessas encontramos uma solução (eu disse UMA. Não A solução. No mundo digital, há várias maneiras de fazer alguma coisa. Mas ainda vale a premissa KISS - Keep It Simple, Stupid).
Vida longa à lâmina de Ockham!

Amplexos,
prof Paulo Maximo, MSc
consultoria em EaD

25 comentários:

Heytor Moore disse...

olá.. no seervidor da empresa que trablho, roda o 2003 server. e no gerenciado de tarefas fica rodando os aplicativos astropulse e seti at home, este dois aplicativos ficam consuimindo 100% da cpu. ja tentei localizar informações sobre o que é, e para que serve, este aplicativos. mas não acho.. gostaria de desativar, mas não sei qual será o dano. se tiver dano!!! como faço para desatir estes dois aplicativos?

Prof Paulo Maximo disse...

Prezado Heytor:

Estes dois processos referem-se a projetos do BOINC e estão rodando sob o Boinc Manager.
Se for o caso de desativá-los (o que não é o ideal, pois seria uma CPU a menos para computação distribuída, que é JUSTAMENTE a ideia do BOINC), basta "matar" os processos boinc, boincmgr e boinctray.
Contudo, estranho o fato de os processos estarem usando 100% da CPU, pois mesmo com processamanto "pesado" NUNCA deveriam passar de 40%.

Atenciosamente,
prof Paulo Maximo, Msc

Alisson disse...

É normal os aplicativos do BOINC usarem 100% da CPU, qdo ela não esta em uso. Na pratica eles tomam todo o tempo OCIOSO das cpus. Ou seja, qdo vc rodar algum outro aplicativo que utilize recursos da CPU, como as threads do BOINC rodam em baixa prioridade, esse aplicativo ira rodar utilizando toda a CPU necessaria, sem onerar o processamento.

Alisson disse...

Acho fascinante os recursos do CUDA. Segundo as estatísticas, uma plc NVIDIA topo de linha, processa 2x mais informações que um Core i7 (processador topo de linha da Intel).
Pena que não exista (ainda) o seti p/plcs da ATI que usam outro tipo de API a OPENCL (que não é proprietaria da NVIDIA, e pode se tornar padrão).
Seguindo a tendencia dos GPUS serem melhores p/processamento matemático que as CPUs, provavelmente num futuro próximo elas vão tomar lugar das CPUs facilmente, já que p/aplicações especificas como o folding@home a GPU consegue ser até 60x mais rápida q uma CPU padrão.
Existe varios Samples em C do SDK na página da NVIDIA. Vale a pena conferir.

Anônimo disse...

Olá a todos. Estou montando uma Crunching Machine.. ou seja, estação especifica para processamento cientifico. A placa sera uma 9800GT para o CUDA. Alguém conhece programas de benchmark para testar a performance de whetstones e drystones que medem a performance da placa de video em processamento matematico. Grato. Vetorpc.net.

Jonata disse...

Como faço para colocar um monte de pacotes para processar? Porque aqui mesmo sendo Core 2 Duo e Core 2 Quad as vezes so recebo de 2 em pacotes. Queria deixar de cache ao menos uns 10 pacotes. Abraços.

Edson disse...

Olá, desculpe a ignorância, mas resolvi postar esta dúvida aqui pois não encontrei outro canal de contato. Instalei o executável AK_v8_win_x64_SSE3.exe, sobre o qual li comentário que melhoraria a performace do SETI no BOINC, e de lá para cá não processou mais nenhum pacote. Alguém sabe o que ocorreu?
abraço
edson

Julio disse...

Edson, eu também instalei o aplicativo e minhas tarefas simplesmente sumiram..

Valmir M. de Morais disse...

Amigos,

Estou recebendo a mensagem "Error... No work available to process", desde ontem à noite(dia 16).O BOINC não está processando nada!
Alguma dica do que está ocorrendo???
Como consertar isso??

Grande abraço,

Valmir M. de Morais
Estação Astronômica PieGise
Juazeiro do Norte, Ceará

Paulo Cardinali disse...

Olá a todos. O que está acontecendo com vários projetos do Boinc. Tenho diversas tasks do Climate, Einstein paradas no Transfer (a semanas) e o Astropulse não manda mais tasks para processar. Os créditos parecem que nao estao sendo processados. Outra coisa é a lista do SetiBR, Ela está ativa? Abraços a todos.

Valmir M. de Morais disse...

Toc! Toc!

Há alguém por aqui, mais experiente, que possa sanar nossa dúvidas colocadas abaixo ????

Abraços,

Valmir Martins de Morais
Estação Astronômica PieGise
Juazeiro do Norte, Ceará - Brasil

Presci Neto disse...

Valmir/Paulo,

Todos os projetos BOINC possuem páginas de status onde pode ser verificada a disponibilidade dos servidores. É normal que algumas vezes os servidores sejam parados para manutençao ou que não hajam tarefas para processar. Por isso recomenda-se a participação sempre em mais de um projeto.

Sobre a lista de discussão sim, ela está ativa, porém aparentemente os participantes estão preferindo se comunicar através dos comentários do site, mesmo.

Presciliano

Filipe disse...

Boa noite pessoal, estive pesquisando sobre a tecnologia CUDA e com a evolução das GPUS provavelmente teremos uma nova revolução pela frente. Para vocês terem uma idéia da diferença um pacote processado na GPU (via CUDA) é em torno de 30 vezes mais rápido que um processado em um core do meu computador...

Estou processando pacotes do Seti@Home (Cuda) numa média de um a cada 14 minutos, e os arquivos normais a cada 7 horas e 7 minutos...

Se vocês derem uma olhada na página da Nvidia vão ficar impressionados com as placas da série Tesla, a mais recente lançada por eles tem 980 núcleos, 16GB Ram, Arquitetura 512bit (pelo que entendi) e a velocidade de 4 Tera Flops.

Imaginem a capacidade de processamento dessa placa... Dei uma pesquisada também na arquitetura CUDA e peloque o material da NVidia disponibiliza existem diversos comandos em C/C++ que podem ser rodados direto no processador da GPU :D

Mas também tem coisas quer nos limitam, por exemplo se você pensar em fazer um programa que utilize funções complexas que rodem na GPU, tem que tomar cuidado com os 5 segundos.... isso mesmo tem um limite de 5 segundos pra programas convencionais, acho que se fizer como serviço não tem essa limitação (isso é pro Windows, não vi em outros S.O.s)

Enfim pessoal da programação, vamos aproveitar e estudar essa tecnologia que já está disponível desde 2007!

[]s T+

Edson disse...

Olá Felipe, estou com um novo micro com uma placa da Nvidia que acho suporta CUDA, mas não vi diferenças na performance, ou melhor, agora meu processador tem 4 núcleos, então melhorou sim, mas acho que não pelo processamento com a tecnologia CUDA. Se você puder me dar uma dica para ver se há alguma configuração errada, agradeço.
9/10/2009 22:15:21 Starting BOINC client version 6.6.38 for windows_intelx86
9/10/2009 22:15:21 log flags: task, file_xfer, sched_ops
9/10/2009 22:15:21 Libraries: libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3
9/10/2009 22:15:21 Data directory: C:\Documents and Settings\All Users\Dados de aplicativos\BOINC
9/10/2009 22:15:21 Running under account Administrador
9/10/2009 22:15:21 Processor: 4 AuthenticAMD AMD Phenom(tm) II X4 810 Processor [x86 Family 16 Model 4 Stepping 2]
9/10/2009 22:15:21 Processor features: fpu tsc pae nx sse sse2 3dnow mmx
9/10/2009 22:15:21 OS: Microsoft Windows XP: Professional x86 Edition, Service Pack 3, (05.01.2600.00)
9/10/2009 22:15:21 Memory: 1.87 GB physical, 3.72 GB virtual
9/10/2009 22:15:21 Disk: 97.65 GB total, 53.79 GB free
9/10/2009 22:15:21 Local time is UTC -3 hours
9/10/2009 22:15:22 NVIDIA GPU 0: GeForce 8200 (driver version 17833, compute capability 1.1, 126MB, est. 3GFLOPS)
9/10/2009 22:15:22 Not using a proxy
9/10/2009 22:15:22 climateprediction.net URL: http://climateprediction.net/; Computer ID: 1015625; location: (none); project prefs: default
9/10/2009 22:15:22 SETI@home URL: http://setiathome.berkeley.edu/; Computer ID: 5129357; location: (none); project prefs: default
9/10/2009 22:15:22 No general preferences found - using BOINC defaults
9/10/2009 22:15:22 Reading preferences override file
9/10/2009 22:15:22 Preferences limit memory usage when active to 959.55MB
9/10/2009 22:15:22 Preferences limit memory usage when idle to 1727.19MB
9/10/2009 22:15:22 Preferences limit disk usage to 10.00GB

Edson

Mateus - Cervera disse...

Olá Edson.

A sua placa de vídeo, GeForce 8200, é um dos modelos mais simples com suporte CUDA. Pela informação apresentada, ela tem 128 Mb de memória e velocidade estimada de 3 GFlops.
O mínimo necessário para rodar a versão CUDA do Seti é 256 Mb de memória de vídeo.
Se esta GeForce 8200 for on-board, talvez você consiga aumentar a quantidade de memória compartilhada na Bios.

De qualquer forma, o modelo 8200 não é muito rápido. Para comparar, utilizo 3 modelos de placas nVidia, com os seguintes resultados:
GeForce 9600GSO - est. 54 GFlops
GeForce GTS 250 - est. 84 GFlops
GeForce GTX 260 - est. 96 GFlops

A placa GTS 250 trabalha num PC com processador Core 2 Quad Q6600, rodando em overclock a 3.0 GHz. Neste equipamento, a placa de vídeo (GPU) processa 2 vezes mais WU's do que o processador (CPU). o RAC atual desta máquina está em 11500.

Mateus.

Filipe disse...

Olá Edson, é como o Matheus falou, acho que tem que ter uma placa mais forte, lá no site da NVidia diz os tipos de placas (Lista de placas com CUDA).

Lé mesmo eles informam que:"Many CUDA programs require at least 256 MB of memory attached to the GPU."

Para o projeto do Seti@Home, ele me enviou os pacotes das versões "6.03" e "6.08 (CUDA)", acredito que ele verifica se sua máquina tem suporte a CUDA e terá performance com isso, seguindo a mesma lógica dos pacotes astropulse...

Bem, esses pacotes da versão 6.08 são processados numa velocidade em média 30 vezes mais ráidos na minha maquina, mas minha placa eh uma GTS250, essa pode ser a diferença.

Agora, eu fico imaginando o que uma placa da classe tesla pode fazer...

Lembrei de outra coisa, existem versões do CUDA, pode ser que atualizando o driver para versão mais recente, você possa começar a usar.

Acho que vale a pena ir no CUDA ZONE e dar uma olhada.

[]s e vamos trocando idéias.

Edson disse...

Olá Matheus e Felipe. Infelizmente, não poderei trocar o vídeo agora, então o negócio é melhorar o desempenho desta. Baixei o novo driver CUDA, vamos ver se melhora.
Outra dúvida: tenho dual boot na máquina (Windos XP 32 e UBUNTU). É possível compartilhar a mesma área de disco onde estão gravadas as tarefas, de modo a não ficar processando muitas delas ao mesmo tempo? Hoje participo do projeto Climate Prediction e SETI.
abraÇO
edson

Filipe disse...

Cara, essa eu vou deixar pro pessoal que conheçe mais de linux e que está a mais tempo usando o Boinc.

Tecnicamente acho que é possível, pois no ubuntu tem uma opção pra vc usar o samba ou algo parecido, que te permite ver os arquivos no formato usado pelo windows, mas nao sei se no Boinc tem opção pra vc escolher o lugar ou comaprtilhar pacotes para serem decodificados...

[]s, Filipe

Alan disse...

Eai Pessoal, tudu bem.

Bom, se tiver algum outro site que fale sobre o asunto que vou tratar, porfavor, passem o link.

Bom, estou montando um novo PC para mim, e de quebra, deiaxar uma maquina para ajudar no Boinc.

Estou pensando em.
Placa Mãe Asus P5dn2-sli Intel - 2 Slots Pci Express 16x
Essa tem 2 Slots para futuras placas de video com CUDA

Memoria Ram de 1Gb, meu PC atual tem 2Gb e rara mente chega a 600Mb de uso.

Um HD e os perifericos normais.

Alguem ai pode dar uma ideia???

Processador.
Pentium 4 531 - 3.00ghz, Soquete 775
Sei que ja tem melhores, mas em principio, o processamento seria das placas de video.

Obrigado a todos.

Anônimo disse...

Seti Home Beta ja tem tasks do Astropulse para GPU ATI.

http://setiathome.berkeley.edu/beta/

Welligton disse...

Olá, tem alguma previsão para o projeto SETI@home seja compatível com Ati Radeon? pois comecei a particar também de outros projetos que são compativeis e a diferença de processamento é incrível.

Shredder AMI disse...

Infelizmente não há previsão, mas tem o SETI@Home Beta que corre também nas GPU ATI.

Welligton disse...

que pena... :/

Claudio Henrique Campos disse...

Utilizo o programa mas não estou junto com nenhum time. Gostaria de saber duas coisas:
Os créditos que eu já tenho entram na conta do time?
O que este site SETIBR ganha (estou falando em retorno, seja publicidade, dinheiro, etc...) com a adesão de mais pessoas em seu time?
Grato pela atenção dispensada.
camposclaudio12@gmail.com
Claudio Campos

Shredder AMI disse...

• 1 - Os créditos que você possui não são contabilizados, apenas os créditos das wu's baixadas e processadas a partir do momento que você está no time.
• 2 - O retorno seria a pontuação que você fizer sendo contabilizada também à equipe, melhorando o rank nacional/mundial da equipe.


Estatísticas do SETIBR ( ver estatísticas detalhadas)

Top 10 participantes do SETIBR (ver lista completa)