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. | ![]() |