Curso da intel dado no Rio de Janeiro sobre nova arquitetura e ferramentas

There and Back Again

Recentemente, fui ao Rio de Janeiro para assistir uma palestra da intel. Fui segunda passada e voltei sábado.

Vou contar como foi cada dia lá no Rio de Janeiro, dizendo os principais assuntos e algumas coisas importantes que me atraíram em cada dia do curso.

Segunda

Dia de arquitetura de computadores e propagandas. Nesse dia foi muita propaganda de produtos da intel e eles foram falados bem por cima.

O mais significativo foi a arquitetura do i7 mesmo, e também foi falado um pouco sobre as antigas arquiteturas. O mais significativo sobre o i7 foi sobre a memoria.

Foi modificado muitas coisas na memoria do i7, primeiro a controladora de memoria não exite mais. Isso foi tirado dos novos processadores, então todos os problemas de false-sharing e outras coisinhas somem.

Segundo, a nova arquitetura será NUMA. Isso devido a uma mudança da arquitetura que fara com que as memorias tenha afinidade com um processador, mas ainda haverá um barramento entre os processadores que permitira que eles acessem a memoria do outro processador. Isso fara com que o acesso se torne não uniforme e inclusive mais lento, dependendo do que você tente acessar. Ou seja, se for fazer programas para o i7, divida os blocos de memoria para não ser tão contíguas.

Terceiro e não muito mais importante, o i7 tem 3 níveis de cache. Isso não é uma mudança muito drástica como a mudança para NUMA, mas é bem útil.

O resto do dia foi apresentação por cima de produtos da intel.

Terça

Dia de Compiladores e Bibliotecas. Nesse dia, a intel falou sobre o seu mais populares e mais desenvolvidos produtos, o seu compilador e sua biblioteca matemática.

Foi mostrado as novas opções do compilador que podem mudar de nome nas próximas versões do compilador e algumas opções mais novas. Algumas coisas que valem a pena citar, foi a opção de vetorizar trechos específicos do código para ver se o compilador vetorizou aquela parte do seu código. Também teve a opção de log de vetorização do compilador, muito útil.

Todas as opções tradicionais do compilador para aumentar a velocidade de código na hora da compilação foram apresentadas. Coisas conhecidas como: “-fast“, “-On“, “-xHOST” e por ai vai. Vale a pena lembrar que opções como “-xW” e parecidas, que não são intuitivas, foram modificadas para ficar mais intuitivas(como por exemplo “-xSSE“).

Também foi passado sobre o as flags de precisão e velocidade de calculo de pontos flutuantes. O interessante é que para ele alterar essa parte, ele gera um código assembler diferente, com instruções ou ordem de instruções diferentes. Isso que dizer que ele não consegue uma precisão surpreendente ou uma grande velocidade com isso.

Com a MKL, foi mais comercial. Foi mostrado muitos gráficos, falados sobre a arquitetura da biblioteca, sobre funcionalidades novas e outras funcionalidades que não são muito usadas(como FFT). Não foi nada muito pratico e nem foi mostrados códigos.

Foi mostrada outras bibliotecas da intel(como a VML), mas todas elas usam a MKL, como foi mostrado na arquitetura das bibliotecas da intel.

Também foi falado sobre uma ferramenta chamada “Tracer Analizer“, uma ferramenta de debug menos conhecida da intel.

Quarta

Um dia de cluster. Foi falada sobre a ferramenta da intel, o “Intel Cluster Tools” e sobre a comunidade de cluster na América latina que é patrocinada pela intel.

O “Intel Cluster Tools” é uma implementação MPI da intel, de bibliotecas para cluster, ferramentas para debug para MPI e outras ferramentas e bibliotecas para cluster. Uma grande surpresa foi a ferramenta de debug de MPI, onde foi mostrada como usar, a interface e futuras “features“.

Foi mostrado também uma comunidade na América do sul sobre cluster patrocinada pela intel. Lá tem um “top50“, um catalogo com os 50 maiores cluster da América latina.

Foi mostrado como usar o “VTune“, para ser usado na pratica sexta-feira.

Quinta

Dia de folga. Esse dia teria a apresentação na Petrobras, com a gente não tinha permissão para participar, esse dia ficou em aberto para a gente fazer qualquer coisa.

Foi deixado o dia pra pesquisa e conhecer a universidade e os projetos.

Sexta

Finalmente, pratica. Nesse dia podemos acessar e executar o “VTune” diretamente de um verdadeiro e original i7 ;).

Usamos o VTune para instrumentar códigos que tínhamos trazido justamente para isso. Foi visto algumas particularidades do i7 e como usar a sua PTU.

A longa volta

E com isso, acaba a semana de curso. Fica ai a minha versão resumida e superficial do curso. Não to querendo fazer posts gigantescos, por isso o resumo :p.

Procurei falar por cima, mas caso tenha algo que alguem queria saber mais ao algo assim, a seção de comentários ta ai pra isso. Prometo que eu respondo prontamente ;).

EDIT:

Para quem é do LCCV, as palestras estão hospedadas aqui ou podem ser baixadas em grupo aqui.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: