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

Leandro Zanotto leandro.zanotto at gmail.com
Sat Feb 6 11:51:19 PST 2016


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.tia.mat.br/pipermail/hsc-tia.mat.br/attachments/20160206/3884de8f/attachment.html>


More information about the HSC mailing list