Sei sulla pagina 1di 10

White Paper

USANDO OS RECURSOS EXISTENTES NOS PROCESSADORES XEON DA INTEL

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel
Pergunta: Como escolher os SUMRIO EXECUTIVO modelos de programao ideais e Com a transio do mecanismo primrio para ganhos de desempenho de velocidade do clock para recursos as ferramentas que aumentam o como mltiplos ncleos, vetores mais amplos e conjuntos de intrues orientadas a vetores mais avanadas, desempenho da aplicao? cada vez mais importante para os desenvolvedores de software a otimizao de suas aplicaes para
utilizar plenamente os recursos existentes no hardware. Entretanto, os desenvolvedores nem sempre esto cientes que j existem ferramentas especializadas para ajud-los a usar plenamente tais recursos. Este document apresenta os recursos do hardware, lista as opes de ferramentas disponveis, descreve cada ferramenta em detalhes e traz perguntas claras para ajudar os desenvolvedores a definir a ferramenta certa para suas aplicaes. Se voc um programador trabalhando em ambientes C, C++ ou Fortran e est disposto a realizar algumas pequenas mudanas em seu cdigo, continue lendo para saber como grandes e pequenas empresas esto verificando enormes ganhos de desempenho em suas aplicaes atravs das ferramentas de software da Intel..

RAZES PARA ADOTAR O PARALELISMO


Existem inmeras razes para adotar o paralelismo, e importante entender suas motivaes e expectativas para faz-lo. Em nossa experincia, empresas adotam paralelismo por uma ou mais das seguintes razes: Clientes queixando-se do desempenho das aplicaes; Aplicaes em que o tempo para o clculo da soluo crtico (ex: a previso do tempo para amanh no pode levar uma semana); Concorrentes esto implementando paralelismo; Economia de energia por realizar a mesma atividade computacional atravs de cdigo eficiente; Oferta de novos recursos para a sua aplicao (ex: implementar segurana em uma aplicao com o mnimo impacto em desempenho, transferindo a carga do processamento da criptografia AES para o processador).

RECURSOS DE DESEMPENHO NOS PROCESSADORES XEON DA INTEL


Os processadores Xeon da Intel contm diversos recursos que permitem aos usurios um aumento significativo no desempenho de suas aplicaes. No entanto, estes recursos exigem experincia de programao e o uso de ferramentas disponibilizadas pelo mercado ou pela Intel para tirar pleno proveito de seus benefcios. Capacidade da CPU Cache inteligente da Intel (Intel Smart Cache) Tecnologia Intel Hyper-Threading Benefcio para as aplicaes Tira proveito da memria rpida da CPU pela reduo de cache misses Cdigo multi-threaded executando em diversos ncleos virtuais aumenta o desempenho Cdigo multi-threaded executando em diversos ncleos fsicos aumenta o desempenho Dados vetorizados rodam em paralelo em cada ncleo, para maior desempenho Proteo utilizando acelerao de hardware para recursos de segurana PMU permite descobrir problemas de desempenho, como cache misses.

Tecnologia de diversos ncleos da Intel (Intel multicore) Intel SSE, incluindo Intel AVX Intel AES-NI PMU - Unidade de Monitoramento de Desempenho (Performance Monitoring Unit)

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Intel White Paper

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

Contedo Sumrio executivo............................................. 1 Razes para adotar o paralelismo............................................................. 1 Recursos de desempenho nos processadores Xeon da Intel................... 1 Ferramentas disponveis.............................. 2 Ferramentas de Desenvolvimento......................................... 2 Modelos de Programao........................ 2 Escolha da opo de desempenho .......... 3 Definindo o modelo de programao................................................... 4 Ferramentas e modelos de programao: breves descries.............................................................. 4 Resumo................................................................... 8

FERRAMENTAS DISPONVEIS
A Intel oferece aos desenvolvedores de software uma ampla gama de ferramentas e modelos de desenvolvimento para adotar o paralelismo.

FERRAMENTAS DE DESENVOLVIMENTO
Ferramentas de anlise rapidamente apontam reas de problemas em cdigos-fonte atravs da busca por erros e vulnerabilidades de segurana, e fornecem dicas para ajudar a tomar decises. Bibliotecas fornecem funes pr-definidas que podem ser facilmente adicionadas ao seu cdigo para usar de forma mais eficiente os recursos existentes no hardware Intel. Compiladores oferecem recursos de otimizao e capacidade para multi-threading. Ferramentas de cluster ajudam a analisar e otimizar o desempenho de aplicaes paralelas durante o desenvolvimento de clusters usando a interface MPI (Message Passing Interface). Nossos pacotes de produtos simplificam o processo de aquisio, incluindo a maior parte ou todas as ferramentas em um nico pacote de instalao. Categoria Produto Intel Linguagens

MODELOS DE PROGRAMAO
A Intel tambm oferece uma srie de modelos de programao que podem ser utilizados tanto processadores multi-core quanto em processadores many-core. Cada modelo possibilita aos desenvolvedores incluir ou otimizar o paralelismo em suas aplicaes. Os modelos variam desde aqueles designados para abstrao de alto nvel e com facilidade de uso em mente (como Intel Cilk Plus e Intel TBB), bibliotecas altamente otimizadas e que fazem uso extensivo de multi-threading, projetadas para produtividade imediata (Intel IPP, Intel MKL) at ferramentas que implementam padres estabelecidos, que ajudam na escalabilidade entre diversos ambientes (MPI, OpenMP*, Coarray Fortran and OpenCL*). A tabela abaixo apresenta as diversas escolhas disponveis.
Intel Threading Building Blocks Extenses Template para as libraries linguagens amplament C/C++ para e usadas simplificar o em C++ paralelismo para paralelismo Cdigo aberto Tambm um produto Intel Cdigo aberto Tambm um produto Intel Intel Cilk Plus Domain Specific Libraries Intel Integrated Performanc e Primitives Intel Math Kernel Library Padres estabelecidos Message Passing Interface (MPI) OpenMP* Coarray Fortran OpenCL*

suportadas Ferramentas Intel Parallel Advisor C, C++ de Anlise Intel VTune C, C++, Amplifier XE Fortran, C# Intel Inspector XE C, C++, Fortran Bibliotecas Intel Math Kernel C, C++, Library (Intel MKL) Fortran Intel Integrated C, C++. Performance Exemplos de Primitives uso em C#, (Intel IPP) Java Intel Threading C++ template Building Blocks library (Intel TBB) Compiladores Intel Composer XE C, C++, Fortran Ferramentas Intel MPI Library C, C++, de Cluster Fortran Intel Trace Analyzer C, C++, and Collector Fortran Pacotes Intel Parallel Studio C, C++, XE Fortran Intel Cluster Studio C, C++, XE Fortran

Famlia de modelos de programao: ampla variedade de ofertas de ferramentas para os desenvolvedores

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

Intel White Paper

DEFINA QUAL OTIMIZAO DE DESEMPENHO PARA APLICAES A IDEAL PARA VOC


Escolher o(s) recurso(s) ideal(is) para utilizar e depois mapear a ferramenta certa para tirar proveito de seu potencial depende do ambiente especfico da aplicao. Nossos engenheiros normalmente fazem as seguintes perguntas em suas consultorias, de forma a determinar se o paralelismo o caminho certo para a empresa, e tambm sugerir quais ferramentas so as mais apropriadas. Pergunta Voc um desenvolvedor de software com acesso ao cdigo fonte? Voc tem interesse em fazer algum esforo para melhorar o desempenho da sua aplicao? Voc analisou o seu cdigo em termos de desempenho? Resposta Se sim, continue Se sim, continue Comece criando um perfil de referncia para seu cdigo, para determinar aonde ele est consumindo tempo, desperdiando tempo ou aguardando por um longo intervalo. O Intel VTune Amplifier XE usa a unidade de monitoramento de desempenho (MPU) dos processadores Xeon da Intel para amostrar eventos de hardware (ex: identificando o uso no ideal da memria cache interna (tecnologia Smart Cache da Intel). Intel Parallel Advisor: Proporciona um passo-a-passo para ajudar a identificar e explorar a implementao de paralelismo Intel Inspector XE: Pode encontrar erros de memria e de gesto de threading, que causam problemas no paralelismo, incluindo erros difceis de identificar, como deadlocks e condies de corrida (race conditions). Tambm assegura que seu cdigo est utilizando corretamente o multi-threading para permitir a execuo tanto nos ncleos virtuais (tecnologia Hyper Threading da Intel) quanto nos ncleos fsicos (tecnologia multi-core da Intel). Substitua bibliotecas de funes de baixo desempenho por verses altamente paralelizadas e otimizadas, disponveis a baixo custo e sem royalties. Se uma funo em particular (ex: BLAS, FFT, multiplicao de matrizes) um ponto de melhoria, utilize nossas bibliotecas. Elas contm milhares de funes pr-definidas e altamente otimizadas, que podem ser incorporadas rapidamente em seu cdigo, alm de escalar automaticamente com os recursos futuros das CPUs Intel, sem necessitar de re-compilao: Biblioteca Intel Math Kernel: funes para aplicaes cientficas, de engenharia e finanas (ex: utilizando as otimizaes Intel AVX, a Intel MKL permite at 90% de ganho de desempenho no benchmark SMP LINPACK rodando em processadores Xeon da Intel) Intel Integrated Performance Primitives: funes para imagem e vdeo, comunicaes, processamendo de sinais e processamento de dados (ex: usando a acelerao por hardware AED-NI nos processadores Xeon da Intel, a Intel IPP permite at 145% de ganho de desempenho em OpenSSL). Se voc encontrou pontos de melhoria em um mdulo, voc pode recompliar aquela parte de cdigo com o compilador da Intel, enquanto continua a utilizar seu compilador atual para o restante do cdigo. Experimente tambm a autovetorizao e outras funes automatizadas de nosso compilador. Explore todo nosso conjunto de ferramentas, incluindo os modelos de programao listados na tabela a seguir.

Voc encontrou pontos de melhoria em alguma funo?

Voc encontrou pontos de melhoria em um mdulo?

Voc est interessado em mais desempenho?

Nota: Aplicaes que utilizem intensamente operaes de ponto flutuante so especialmente favorecidas para acelerao atravs de nossas ferramentas.

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Intel White Paper

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

DETERMINE O MODELO DE PROGRAMAO IDEAL PARA SUA APLICAO E AMBIENTE


Vamos analisar a questo da compatibilidade. Pergunta Qual linguagem de programao voc usa? Resposta C Intel Cilk Plus, Intel IPP, Intel MKL e possivelmente Intel OpenCL* SDK C++ - Cilk Plus, Intel TBB, Intel IPP, Intel MKL Fortran Escolha entre Coarray Fortran, Intel MPI, Intel MKL e Intel IPP (via chamadas cross-language) C# - algum suporte API atravs de Intel MKL e Intel IPP. Linguagens de Script (Python*, PERL*) algumas opes disponvies atravs de Intel MKL e Intel IPP Quais sistemas operacionais so suportados? Windows* amplamente suportado Linux* amplamente suportado Mac OS* X suporte atravs de C++ Composer XE e Fortran Composer XE (Cilk Plus, Intel TBB, Intel IPP, Intel MKL, compiladores, OpenMP*, Coarray Fortran)
Nota: Todas as ferramentas oferecem amplo suporte para arquiteturas Intel e compatveis.

Utilize a tabela abaixo para escolher o modelo de programao mais adequado para voc. Pergunta Quanto voc est disposto a aprender um novo modelo de programao? Quanto voc tolerante a mudanas em seu cdigo? Resposta Baixa disposio e tolerncia Utilize bibliotecas Intel IPP e Intel MKL. Explore os recurso de auto-vetorizao do compilador. Alguma disposio e tolerncia Considere Intel Cilk Plus, Intel OpenMP*, Coarray Fortran, alm das bibliotecas da Intel. Muita disposio e tolerncia Considere Intel TBB e Intel MPI, pois elas oferecem mxima flexibilidade e desempenho. Voc est usando memria compartilhada, cluster ou programao com vetores? Programao para cluster use MPI para aplicaes utilizando memria distribuda. Use OpenMP*, Intel Cilk Plus ou Intel TBB para ns utilizando MPI. Programao para memria compartilhada Use OpenMP*, Intel Cilk Plus ou Intel TBB. Programao com vetores (SSE/AVX, etc) Use Intel Cilk Plus e array notation do Fortran90. A programao hbrida, CPU + GPU importante para voc? Se sim, considere a utilizao de OpenCL*.

FERRAMENTAS E MODELOS DE PROGRAMAO: BREVES DESCRIES


Intel Parallel Studio XE (pacote) Um pacote de desenvolvimento de software paralelo que combina em uma nica oferta o compilador C/C++, lder de mercado da Intel, compilador Fortran, bibliotecas de desempenho e paralelismo, ferramentas de verificao de erros, de robustez e de perfil de desempenho do cdigo. O pacote auxilia no aumento do desempenho das aplicaes e no aumento da qualidade, segurana e confiabilidade do cdigo, itens necessrios para aplicaes corporativas e de alto desempenho (High Performance Computing). Ao mesmo tempo, este pacote facilita a gesto de todas as ferramentas necessrias para criar aplicaes de alto desempenho e simplifica a transio de processadores multi-core para many-core no futuro, utilizando um conjunto comum de ferramentas. Saiba mais em software.intel.com/en-us/articles/intel-parallel-studio-xe/ Intel Cluster Studio XE (pacote) Adicione nossas ferramentas para cluster ao Intel Parallel Studio XE. Este o primeiro pacote de ferramentas que proporciona mximo desempenho, confiabilidade e escalabilidade para o desenvolvimento e a anlise de aplicaes C++/Fortran usando memria compartilhada, distribuda ou aplicaes hbridas, rodando em arquitetura Intel IA-32 e Intel 64 sobre plataformas Windows* ou Linux*. Saiba mais em software.intel.com/en-us/articles/intel-cluster-studio-xe/

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel
Intel Parallel Advisor (ferramenta de anlise) Orienta os desenvolvedores a implementar ou otimizar o paralelismo em programas C/C++ existentes. Desenvolvedores podem utiliz-lo para identificar as regies de cdigo que esto consumindo mais tempo, inserir anotaes para realizar experimentos com a adio de paralelismo, validar a viabilidade das mudanas propostas e verificar eventuais problemas que podem impedir que a aplicao funcione adequadamente quando paralelizada. Esta ferramenta est disponvel para Microsoft Windows*. Saiba mais em software.intel.com/en-us/articles/intel-parallel-advisor/ Intel Composer XE (compilador e bibliotecas) Este o nome do pacote que inclui o compilador C++ da Intel, compilador Fortran da Intel, bibliotecas Intel Math Kernel Library, Intel Integrated Performance Primitives e Intel Threading Building Blocks. Permite que desenvolvedores C/C++ e Fortran criem e mantenham aplicaes corporativas e de alto desempenho para processadores com as mais recentes arquiteturas Intel. A utilizao deste pacote permite melhorias superiores aos melhores compiladores C++ e Fortran otimizados do mercado. Uma simples recompilao com o Intel Composer XE pode aumentar o desempenho em 20% ou mais. Melhorias de desempenho so fruto das otimizaes em memria, auto-paralelizao e vetorizao. Saiba mais em software.intel.com/en-us/articles/intel-composer-xe/ Intel Vtune Amplifier XE (ferramenta de anlise) uma ferramenta de perfil de desempenho do software e de threading para desenvolvedores C/C++, Fortran e C# que precisam entender o comportamento sequencial e paralelo para aumentar o desempenho e a escalabilidade. Como software de anlise de desempenho para aplicaes em Windows e Linux, o Intel Vtune Amplifier XE remove o processo de tentativa e erro, fornecendo acesso rpido a informaes de escalabilidade para tomadas de decises mais rpidas e melhores. Otimize seu software para o mximo desempenho, garanta que os ncleos sejam plenamente explorados e que os novos recursos do processador sejam suportados em todo seu potencial. O software apresenta uma srie de novas experincias de perfis de desempenho pr-definidas, para obter rapidamente informaes de perfil de desempenho sem ter que conhecer detalhes da microarquitetura. Aps verificar o perfil de desempenho, recursos de anlise como a linha do tempo, filtragem e anlise de frames transformam os dados em informao para orientar as aes. Saiba mais em www.intel.com/software/products/vtune Intel Inspector XE (ferramenta de anlise) Ajuda a aumentar a confiabilidade da aplicao atravs da deteco de erros de memria e de threading. A ferramenta foi criada para desenvolvedores C, C++, C# e Fortran, construindo software em sistemas Windows* e Linux*. A ferramenta de anlise de memria pode detectar memory leaks e corrupes de memria nos incio do ciclo de desenvolvimento. A ferramenta de anlise de threads e o debugger encontram threads com interaes problemticas e identifica competio por dados (data races) e deadlocks. Ela tambm identifica erros intermitentes e no determinsticos, mesmo quando o cenrio de timing responsvel pelo erro no acontece. Usando esta ferramenta no incio do ciclo de desenvolvimento pode detectar e resolver problemas de segurana que seriam muito mais dispendiosos para resolver aps a distribuio do software. Saiba mais em software.intel.com/en-us/articles/intel-inspector-xe/

Intel White Paper

Intel MPI Library (biblioteca de cluster) Aumenta o desempenho da aplicao em clusters baseados em arquitetura Intel, atravs da implementao da especificao MPI-2 (Message Passing Interface-2) de alto desemepnho em diversas fabrics. Ela permite alteraes e upgrades para novas interconexes sem exigir maiores mudanas no software ou no ambiente operacional. Use esta biblioteca de MPI de alto desempenho para desenvolver aplicaes que podem rodar em mltiplas interconexes de cluster fabrics, escolhidos pelo usurio em tempo de execuo. A Intel tambm disponibiliza um kit com um ambiente de runtime grtis para produtos desenvolvidos com a biblioteca MPI da Intel. Obtenha os mximos resultados para a computao de alto desempenho (HPC) em ambientes de nvel corporativo, de diviso, departamento ou grupo de trabalho. Saiba mais em software.intel.com/en-us/articles/intel-mpi-library/ Intel Trace Analyzer and Collector (anlise de cluster) uma ponderosa ferramenta para validar a correo e o comportamento das aplicaes. Inclui uma biblioteca de tracing de baixo impacto, que realiza o tracing de aplicaes baseado em eventos. Voc pode analisar os dados coletados pelo tracing para pontos de melhoria de desempenho e gargalos. O produto completamente thread-safe e integra-se com processos multithreaded em C/C++ e Fortran, com ou sem MPI. Suorta intromentao binria e modo fail-safe. Alm disso, pode verificar erros de programao MPI e de sistema. O Intel Trace Analyzer proporciona uma forma conveniente de monitorar atividades da aplicao obtidas pelo Intel Trace Collector atravs de visualizaes grficas. Voc pode visualizar o nvel de detalhes desejado, identificar rapidamente pontos de melhoria de desempenho e gargalos, e analisar suas causas. Combinados, o Analyzer e o Collector permitem anlises otimizadas e capacidade de visualizao. Juntos, oferecem a rpida visualizao grfica de dados complexos de perfil de desempenho e podem escalar facilmente at centenas de processos. A ferramenta est disponvel para Linux* e Microsoft Windows*. Saiba mais em software.intel.com/enus/articles/intel-trace-analyzer/

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Intel White Paper MODELOS DE PROGRAMAO

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel
Intel Threading Building Blocks (Intel TBB) A abstrao mais popular para programao paralela em C++. Introduzida pela Intel em 2006, tornou-se um projeto de cdigo aberto em 2007, e conta com adoo considervel no mercado, tendo ultrapassado OpenMP em popularidade. Empresas que tm declarado publicamente o uso de Intel TBB incluem Adobe, Autodesk e Dreamworks Animations, para nomear somente algumas. Intel TBB foi portado para numerosos sistemas operacionais e processadores. Intel TBB deve ser usado por desenvolvedores C++ que buscam implementar paralelismo em processadores multi-core e many-core. Saiba mais em http://threadingbuildingblocks.org Chamada de funo paralelizada em C++ usando Intel Threading Building Blocks parallel_for (0, n, [=](int i) { Foo(a[i]); } ); OpenMP* Em 1996, o padro OpenMP* foi proposto como uma forma para os compiladores auxiliarem na utilizao de hardware paralelo. Aps mais do que uma dcada, a maioria dos compiladores C, C++ e Fortran suportam OpenMP*. OpenMP particularmente adequado para as necessidades de programas Fortran e de programas cientficos escritos em C. A Intel membro do grupo de trabalho OpenMP* e lder como fornecedora de implementaes e ferramentas de suporte OpenMP*. OpenMP* aplicvel programao para multi-core e many-core. Saiba mais em http://openmp.org Somando elementoes de vetores em C usando OpenMP #pragma omp parallel for reduction(+: s) for (int i = 0; i < n; i++) { s += x[i]; }

Bibliotecas (Intel Math Kernel Library e Intel Integrated Performance Primitives) Bibliotecas disponibilizam um importante mtodo de abstrao de programao paralela que deve ser considerado antes de se dedicar programao. importante considerar as implementaes de algoritmos das bibliotecas, incluindo BLAS, codificadores/decodificadores de udio e vdeo, FFT, ordenadores e solucionadores de problemas(solvers). As bibliotecas da Intel oferecem implementaes avanadas de muitos algoritmos que so altamente otimizados para utilizar os conjuntos de instrues SSE e AVX, bem como os recursos de processadores multi-core e many-core. Um cdigo fonte nico pode usufruir destes benefcios com uma nica chamada para em uma das bibliotecas. MKL disponibiliza interfaces padro em Fortran e suporta novos padres de mercado para interfaces C para LAPACK, o qual a Intel ajudou a criar. Em conjunto com a constante busca da Intel por alto desempenho em suas bibliotecas, padres tornam as bibliotecas uma fcil escolha para iniciar na programao paralela. Saiba mais em http://www.intel.com/software/products/mkl/ and www.intel.com/software/products/ipp/ Multiplicao de matrizes em Fortran utilizando uma chamada da biblioteca Intel Math Kernel call DGEMM(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c ,ldc) Intel Cilk Plus Uma extenso rpida, fcil e confivel para o C e C++. Fornece extenses para execuo de tarefas paralelas e array notations para o uso efetivo de paralelismo de tarefas, dados e vetores. Estas extenses tm suas origens nas pesquisas do Prof. Leiserson do M.I.T. e na empresa que ele fundou, conhecida como Cilk Arts. Intel Cilk Plus deve ser divulgado para o programador C e C++ que busca implementar paralelismo de tarefas, dados em vetores em processadores e co-processadores. Cilk Plus deve ser considerado antes de Intel TVV em qualquer projeto que possa se beneficiar de paralelismo por vetorizao. Os recursos do Cilk Plus e da Intel TBB podem ser mesclados e utilizados em conjunto. Portanto, usurios de Intel TBB podem usar recursos de paralelismo do Cilk Plus para dados e vetores em programas usando Intel TBB. Saiba mais em http://cilkplus.org Invocao de funes paralelizadas usando Intel Cilk Plus cilk_for (int i=0; i<n; ++i) { Foo(a[i]); } DAXPY em array notation usando Intel Cilk Plus a[0:n] += x * b[0:n];

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel
Message Passing Interface (MPI) Para programadores que utilizam clusters, nos quais os processadores esto conectados pela capacidade de passar mensagens mas no sempre pela capacidade de compartilhar memria, Message Passing Interface (MPI) o mtodo de programao mais comum. Num cluster, a comunicao continua utilizando MPI da mesma forma, independentemente se os ns do cluster possuem processadores many-core ou no. A biblioteca Intel MPI, amplamente utilizada, oferece ao mesmo tempo alto desempenho e suporte para praticamente todas as interconexes. A biblioteca Intel MPI suporta sistemas baseados em processadores multi-core e many-core, criando ranks em processadores multi-core e many-core de uma forma que familiar e consistente com a programao MPI atual. Saiba mais em http://intel.com/go/mpi Cdigo MPI em C para clusters for (d=1; d<ntasks; d++) { rows = (d <= extra) ? avrow+1 : avrow; printf( sending %d rows to task %d\n, rows, dest); MPI_Send(&offset, 1, MPI_INT, d, mtype, MPI_COMM_WORLD); MPI_Send(&rows, 1, MPI_INT, d, mtype, MPI_COMM_WORLD); MPI_Send(&a[offset][0], rows*NCA, MPI_DOUBLE, d, mtype, MPI_COMM_WORLD); MPI_Send(&b, NCA*NCB, MPI_DOUBLE, d, mtype, MPI_COMM_WORLD); offset = offset + rows; } Coarray Fortran O padro Fortran 2008 introduziu extenses co-array como um mtodo adicional para usar Fortran como uma linguagem de programao paralela eficiente e robusta. O Intel Fortran Compiler suporta a programao paralela atravs de co-arrays conforme definido no padro Fortran 2008, tanto em sistemas de memria compartilhada quanto de memria distribuda. O Coarray Fortran use um modelo de programao singleprogram e multi-data (SPMD). Saiba mais em http://intel.com/software/products Soma em Fortran, usiando o recurso co-array REAL SUM[*] CALL SYNC_ALL( WAIT=1 ) DO IMG= 2,NUM_IMAGES() IF (IMG==THIS_IMAGE()) THEN SUM = SUM + SUM[IMG-1] ENDIF CALL SYNC_ALL( WAIT=IMG ) ENDDO a a

Intel White Paper

OpenCL* OpenCL* oferece uma interface mais prxima ao hardware, com algumas abstraes importantes e com substancial controle, associado a um grande interesse e comprometimento da indstria. O OpenCL* pode requerer a maior quantidade de refactoring quando comparado s outras solues apresentadas neste artigo, especialmente quando o refactoring baseado em conhecimentos avanados do hardware do sistema. Os resultados do trabalho de refactoring podem ser significativos para o desempenho de sistemas multi-core e many-core, e os resultados podem ou no ser atingveis com tal refactoring. O objetivo do OpenCL* fazer com que o investimento em refactoring seja produtivo quando realizado. Outras solues alm do OpenCL* oferecem mtodos para evitar a necessidade de refactoring baseado em conhecimento do hardware do sistema. Saiba mais em http://intel.com/go/opencl Multiplicao por elemento em C usando OpenCL kernel void dotprod( global const float *a, global const float *b, global float *c) { int myid = get_global_id(0); c[myid] = a[myid] * b[myid]; }

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Intel White Paper

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

RESUMO
No desperdice desempenho. A Intel implementa continuamente novos recursos de desempenho em seus processadores, portanto seu cdigo precisa ser vetorizado e multi-threaded para usufru-los. Este artigo mostrou como as ferramentas de anlise podem identificar reas de ateno em relao ao desempenho, como funes lentas podem ser substitudas por funes altamente otimizadas das bibliotecas Intel, como um ponto de melhoria em um mdulo pode ser re-compilado usando nossos compiladores, alm de apresentar como os diversos mdulos de programao existentes podem ajud-lo. A Intel vem disponibilizando ferramentas de programao aos desenvolvedores por mais de 25 anos, com o intuito de ajud-los a utilizar todoss os recursos de nossos processadores. A Intel entende que as necessidades de cada aplicao variam amplamente, e disponibiliza aos desenvolvedores uma ampla gama de ferramentas e opes para solucionar uma grande variedade de problemas envolvendo programao. comum que os utilizadores de nossas ferramentas constatem ganhos de desempenho de 10%, 2x ou at 20x. As ferramentas so projetadas para complementar seu ambiente existente, seja ele Microsoft Visual Studio*, Eclipse*, Xcode, makefile ou builds por linha de comando, com compiladores Microsoft, Intel ou GCC. Conforme produtos baseados na arquitetura Intel Many Integrated Core Architecture (Intel MIC architecture) tornarem-se disponveis, ser crescente a importncia de garantir que seu cdigo-fonte esteja pronto para tirar plena vantagem da potncia disponvel. A boa notcia que os mesmo modelos de programao padronizados para a tecnologia multi-core x86 sero aplicveis tecnologia many-core. Uma vez que os desenvolvedores otimizem seu cdigo para processadores Intel Xeon, eles podem reutilizar o cdigo existente e sua experincia de programao na arquitetura Intel MIC. Ns encorajamos voc a saber mais sobre o assunto em: software.intel.com/pt-br/parallel/, ou publicar sua pergunta no frum: software.intel.com/enus/forums/threading-on-intel-parallel-architectures/.

OPES DE COMPRA: PACOTES COM LINGUAGENS ESPECFICAS


Diversos pacotes esto disponveis, combinando as ferramentas para criar, verificar e otimizar sua aplicao. Licenas para nico usurio, para mltiplos usurios ou em volume esto disponveis, bem como descontos para instituies acadmicas e estudantes.

Pacotes >>

Intel Parallel Studio XE

Intel Cluster Studio XE

Intel C++ Studio XE

Intel Fortran Studio XE

Intel Composer XE

Intel C++ Composer XE

Intel Fortran Composer XE

Compilador Intel C/C++ Compilador Intel Fortran Intel Integrated Performance Primitives3 Intel Math Kernel Library3 Intel CilkTM Plus Componentes Intel Threading Buidling Blocks Intel Inspector XE Intel VtuneTM Amplifier XE Static Security Analysis Biblioteca Intel MPI Intel Trace Analyzer & Collector Biblioteca Rogue Wave IMSL*2 Sistema Operacional1

W, L W, L W, L W, L W, L W, L, M W, L, M

Notas: 1 Sistemas Operacionais: W=Windows, L= Linux, M= Mac OS* X. 2 Disponvel no Intel Visual Fortran Composer XE para Windows com IMSL*. 3 No disponvel individualmente em Mac OS X, includo nos pacotes Intel C++ & Fortran Composer XE para Mac OS X.

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

Intel White Paper

AVALIE AS FERRAMENTAS
Faa o download gratuito de cpias de avaliao de nossas ferramentas. Se voc ainda est em dvida por onde comear recomendamos: Para pacotes, avalie o Intel Parallel Studio XE ou Intel Cluster Studio XE Intel VTune Amplifier XE performance analyzer Intel Parallel Advisor for Windows*

FERRAMENTAS DE APRENDIZADO
Intel Learning Lab, tutoriais, artigos e outros. Apresentaes tcnicas e videos sobre Computao Paralela

LEITURA RECOMENDADA
Guia Intel para o desenvolvimento de aplicaes Multithreaded (em ingls). Webinar A chave para escalar aplicaes para multi-core (em ingls). Intel VTune Amplifier XE um curto video de apresentao e passo-a-passo detalhado para se familiarizar com os tutoriais (em ingls). Artigo: Prepare seu cdigo para execuo paralela (inclui cdigos de exemplo detalhados) (em ingls). pgina 774 do Manual: Manual de referncia para arquiteturas Intel 64 e IA-32 (em ingls). Intel TBB (livro da Amazon.com, em ingls).

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Intel White Paper

Um guia resumido para as Ferramentas para Computao Paralela utilizando processadores Xeon da Intel

INFORMAES CONTIDAS NESTE DOCUMENTO SO DISPONIBILIZADAS EM CONJUNTO COM PRODUTOS INTEL. NENHUMA LICENA, EXPRESSA OU IMPLCITA, POR EMBARGO OU OUTROS MEIOS, A QUALQUER DIREITO DE PROPRIEDADE INTELECTUAL CONCEDIDA POR ESTE DOCUMENTO. A MENOS QUE ESTIPULADO NOS TERMOS E CONDIES DE VENDA DA INTEL PARA OS PRODUTOS MENCIONADOS, A INTEL NO ASSUME NENHUA RESPONSABILIDADE E SE ISENTA DE QUALQUER GARANTIA EXPRESSA OU IMPLCITA, RELACIONADAS COM A VENDA E/OU O USO DE PRODUTOS INTEL, INCLUINDO A RESPONSABILIDADE OU GARANTIAS RELATIVAS ADEQUAO PARA UM DETERMINADO FIM, COMERCIALIZAO OU INFRAO DE QUALQUER COPYRIGHT DE PATENTE OU OUTRO DIREITO DE PROPRIEDADE INTELECTUAL.

2012, Intel Corporation. Todos os direitos reservados. Intel, o Intel logo, VTune, Cilk e Xeon so marcar registradas da Intel Corporation nos Estados Unidos e em outros pases. *Outros nomes e marcas podem ser considerados propriedade de terceiros.

10

*Outros nomes e marcas podem ser considerados propriedade de terceiros.

Potrebbero piacerti anche