[LHC] Workshop on Parallel Programming &Optimization for Intel Architecture (CENAPAD-SP)

Henrique Almeida hdante at gmail.com
Sat Feb 6 12:26:47 PST 2016


Leandro, entendi. A dúvida é se você tem benchmarks comparando a velocidade da GPU com o Xeon Phi para a solução de algum problema. Veja por exemplo "Application 2: Monte-Carlo Pricing of American Options", em:

http://blog.xcelerit.com/intel-xeon-phi-vs-nvidia-tesla-gpu/

Veja "Parallel Computation of Non-Bonded Interactions in Drug Discovery: Nvidia GPUs vs. Intel Xeon Phi"

http://www.ds.ewi.tudelft.nl/fileadmin/pds/homepages/fang/papers/iwbbio2k14a128.pdf


Minha dúvida é se tem um exemplo de problema sendo resolvido pelo Xeon Phi de forma mais eficiente, pois não fico confortável de anunciar uma solução sub ótima no laboratório que só é melhor em casos especiais.


Enviado do meu iPhone

> Em 6 de fev de 2016, às 17:51, Leandro Zanotto <leandro.zanotto at gmail.com> escreveu:
> 
> Vou falar rapidamente sobre o Xeon Phi
> 
> 1 - Tem uma unidade vetorial de 512bits (AVX2)
> 2 - Composto de no minimo 57 cores pentium sendo cada um composto por 4 threads tendo num total de 228 threads no minimo.
> 3 - Memoria GDDR5 - No minimo 6GB
> 
> Sendo que ele tem um linux rodando na sua memoria mais as bibliotecas que podem ser instaladas de 2 formas por NFS ou diretamente nela quando 
> 
> for dar boot na placa ele pode se comportar com um outro host dentro do cluster, sendo assim para quem usa MPI se beneficiará disso.
> 
> 
> Agora o exemplo que me pediu.
> 
> Se tivermos uma soma de vetores:
> 
> 
> for (int i=0; i < N; i++){
>  
>      C[i]  = A[i] + B[i]
> 
> }
> 
> 
> Na GPU temos com cuda
> 
> 
>  int id = blockIdx.x*blockDim.x+threadIdx.x;
> 
> if (id < N){ 
>   C[id] = A[id] + B[id];
> }
> 
> Isso é totalmente paralelo na GPU cai bem pois não temos branches.
> 
> Na Xeon Phi
> 
> #pragma omp parallel for
> for (int i=0; i < N; i++){
>  
>      C[i]  = A[i] + B[i]
> 
> }
> 
> Fica bem simples até mesmo num processador com mais de um nucleo. Ele dividirá seu código pelo numero de threads
> 
> Resumindo esse exemplo é bem simples e pode ser feito em qualquer um. GPU ou Xeon Phi
> 
> 
> Agora se tivermos algo com branches e whiles onde não se sabe qual o fim do loop a GPU irá sofrer pois sua unidade de controle 
> 
> não suporta branches (branch divergence).
> 
> Por ex.
> 
>  int id = blockIdx.x*blockDim.x+threadIdx.x;
> int x = 0;
> if (id < N){ 
>      
>     if (x / 2 == 0) { 
>       C[id] = A[id] + B[id] * 2;
>     }else{
>       C[id] = A[id] + B[id] * 4;
>     }
> }
> 
> O que acontece aqui é que quando as threads de um determinado bloco entrar na entrada par as outras threads estarão dormindo
> 
> sem fazer trabalho isso faz com que você disperdice o poder da placa.
> 
> Nesse caso sendo a Xeon Phi composta de pentium isso vai bem pois ela nao ficará com threads dormindo.
> 
> Pela falta desse controlador na GPU temos mais espaço no processador para colocar mais threads por isso elas tem
> 
> mais threads que o coprocessor.
> 
> 
> Isso foi bem básico mas se tiver mais duvida escreva.
> 
> OBS: Você pode combinar nas GPUs atuais o trabalho do processador com MPI e OpenMP + CUDA enviando até 32 processos simultaneos 
> 
> para elas.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  
> 
> 
> 
> 
> 
> 2016-02-06 16:37 GMT-02:00 Henrique Almeida <hdante at gmail.com>:
>> Você tem exemplos onde o Xeon Phi é mais apropriado que GPU ?
>> 
>> Em 06/02/2016 14:23, "Leandro Zanotto" <leandro.zanotto at gmail.com> escreveu:
>>> Trabalho com Xeon Phi, GPU, (MPI, OpenMP e CUDA), meu ultimo projeto foi com Xeon Phi. 
>>> 
>>> Não é tão simples de programar como a Intel vende, configurar a placa também não é tão 
>>> 
>>> simples, visto que a GPU, você instala o driver e está pronta para o uso. 
>>> 
>>> A Xeon Phi roda linux nela e tem que configurar algumas coisas. 
>>> 
>>> Meu ultimo projeto foi com Xeon Phi (Fortran OpenMP + MPI) o atual está sendo com GPU (Fortran CUDA + MPI e OpenMP).
>>> 
>>> Porém se olharmos o supercomputador no topo da TOP 500 ele tem Xeon Phi. 
>>> 
>>> Considero a Xeon Phi uma opção, mas tudo depende da aplicação.
>>> 
>>> 
>>> 
>>> 2016-02-06 14:09 GMT-02:00 Henrique Almeida <hdante at gmail.com>:
>>>> Depois de ver alguns benchmarks, retiro o que eu disse. O Xeon Phi é a maior roubdada.
>>>> 
>>>> Em 06/02/2016 12:07, "Henrique Almeida" <hdante at gmail.com> escreveu:
>>>>>  Gostei, vou sugerir o workshop no LNLS
>>>>> 
>>>>> Em 5 de fevereiro de 2016 10:45, Douglas Esteves
>>>>> <douglas.brsoftware at gmail.com> escreveu:
>>>>> >  Workshop sobre Programação Paralela e Modernização de Código e aprenda as
>>>>> > melhores técnicas de programação baseadas em padrões open-source para
>>>>> > extrair o máximo de performance dos processadores e co-processadores Intel.
>>>>> >
>>>>> > https://indico.ncc.unesp.br/event/20/
>>>>> >
>>>>> > _______________________________________________
>>>>> > Lista do LHC <http://lhc.net.br>
>>>>> > HSC at listas.tia.mat.br
>>>>> > http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
>>>>> >
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>>  Henrique Dante de Almeida
>>>>>  hdante at gmail.com
>>>> 
>>>> _______________________________________________
>>>> Lista do LHC <http://lhc.net.br>
>>>> HSC at listas.tia.mat.br
>>>> http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
>>> 
>>> 
>>> 
>>> -- 
>>> Leandro Negri Zanotto
>>> 
>>> _______________________________________________
>>> Lista do LHC <http://lhc.net.br>
>>> HSC at listas.tia.mat.br
>>> http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
>> 
>> _______________________________________________
>> Lista do LHC <http://lhc.net.br>
>> HSC at listas.tia.mat.br
>> http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
> 
> 
> 
> -- 
> Leandro Negri Zanotto
> _______________________________________________
> Lista do LHC <http://lhc.net.br>
> HSC at listas.tia.mat.br
> http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.tia.mat.br/pipermail/hsc-tia.mat.br/attachments/20160206/d62ef553/attachment.html>


More information about the HSC mailing list