O Intel® Xeon Phi™ é o coprocessador certo para mim?

Artigo original escrito por Eric Gardner (Intel).

Se você está lendo este artigo, provavelmente você quer saber mais sobre o coprocessador Intel® Xeon Phi™ e o que ele pode fazer pelas aplicações que você desenvolve. Este artigo apresenta um processo simples e rápido para analisar se continuar usando os processadores Intel® Xeon® é o melhor para sua aplicação ou se adicionar o coprocessador Intel® Xeon® Phi™ à sua plataforma aumentará o desempenho da aplicação.

O processo dará ênfase às áreas principais de paralelismo, vetorização e largura de banda da memória, que são essenciais para uma aplicação tirar o máximo proveito do coprocessador Intel® Xeon Phi™. Concentrar-se na otimização destas áreas principais irá, além de preparar sua aplicação para o coprocessador Intel® Xeon Phi™, aumentar o desempenho do seu processador Intel® Xeon.

1. Você está usando uma aplicação desenvolvida internamente ou adquirida de outro fabricante (ISV)?

Você está desenvolvendo uma aplicação internamente / está usando open source / está usando bibliotecas que permitem acesso ao código fonte OU está executando uma aplicação “fechada” de terceiros? Nos primeiros casos, pule para o passo 3. Se a aplicação for “fechada” (de terceiros), prossiga para o passo 2.

DICA:Muitas aplicações de terceiros (“fechadas”) são fornecidas por “independent software vendors” (ISV).

2. Contate o fabricante (ISV) para saber quando ele irá suportar o coprocessador Intel® Xeon Phi™.

Em muitos casos, as aplicações não são capazes de tirar todo proveito dos altos níveis de paralelismo proporcionados pelo coprocessador Intel® Xeon Phi™. Nesses casos, rodar a aplicação em processadores Intel® Xeon® continuará sendo a melhor opção para obter o melhor desempenho. Para aplicações que são propícias para o uso de coprocessadores Intel Xeon Phi, existem diversos fornecedores de soluções terceirizadas que estão trabalhando para certificar seus produtos. Uma vez que não podemos tornar público o “roadmap” de nossos parceiros, o próximo passo é contatar diretamente o fornecedor da aplicação em questão, para perguntar se e quando ele planeja suportar o coprocessador Intel Xeon Phi. Se a resposta for “sim”, pule para o passo 7, caso contrário vá para o passo 6.

3. Sua aplicação escala até mais do que 100 threads?

Para atingir o nível de desempenho que um processador Intel® Xeon® com coprocessador Intel® Xeon Phi™ proporciona, é necessário que seu código posssua um grau significativo de paralelismo (usando, por exemplo, multi-threading). Se a sua carga de trabalho apresenta esta demanda, o coprocessador permitirá atingir níveis de desempenho inatingíveis normalmente, fazendo valer a pena o investimento em programação paralela. Seu código apresentará ganho de desempenho ao usar mais de 100 threads? Se “sim”, prossiga para o passo 4. Caso contrário, pulo para o passo6.

DICA: Confira maneiras úteis para medir a escalabilidade de threads na página 11 deste documento.

4. Sua carga de trabalho tira benefício de grandes vetores?

Ao invés de utilizas os pequenos vetores tradicionais (MMX, SSE ou AVX), o coprocessador Intel® Xeon Phi™ traz uma exclusividade: grandes vetores de 512-bits para realizar instruções SIMD. Além do benefício para multi-threading, sua carga de trabalho pode também fazer uso intenso destas unidades de vetorização para obter um aumento significativo de desempenho com o coprocessador Intel® Xeon Phi™ em relação ao processador Intel® Xeon®.

Sua aplicação é capaz de fazer uso intenso de unidades de vetorização? Se “sim”, pule para o passo 7. Caso contrário, prossiga para o passo 5.

DICA:Para encontrar maneiras úteis de mensurar a vetorização em seu código, consulte a página 12 deste documento. Tem dúvidas sobre o que é vetorização? Visite este link e faça o download do "Vectorization CodeBook".

5. Sua carga de trabalho tira proveito de uma largura de banda de memória maior?

Bem, sua aplicação escala até mais do que 100 threads, mas não faz uso intenso de unidades de vetorização. Apesar de não ter grandes benefícios com a vetorização, sua carga de trabalho ainda pode ser uma forte candidata para o uso do coprocessador Intel® Xeon Phi™, caso ela esteja limitada pela largura de banda da memória quando roda no processador Intel® Xeon®. Sua aplicação está limitada pela largura de banda da memória no processador Intel Xeon e apresenta boa localidade de referências de memória, e ainda utiliza cache nas principais tarefas computacionais? Se “sim”, pule para o passo 7. Se “não”, siga para o passo 6.

DICA: Para mais informações sobre largura de banda, localidade de referências e uso de cache, por favor consulte as páginas 12 e 16 deste documento.

6. Processador Intel® Xeon®

Com base em suas respostas, sua aplicação continuará apresentando alto desempenho com o processador Intel® Xeon®. Para saber mais sobre critérios para uso ideal do coprocessador Intel® Xeon Phi™, e para conhecer mais sobre programação paralela em geral, por favor consulte este guia completo.

7. Coprocessador Intel® Xeon Phi™

Com base em suas respostas, sua aplicação pode ser capaz de tirar proveito do elevado grau de paralelismo e desempenho do coprocessador Intel® Xeon Phi™. Para começar hoje mesmo, confira este website e este livro.

Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione