Qual é o papel do Software & Solutions Group na Intel?

O Software & Solutions Group da Intel é um conjunto de divisões, cada uma provendo produtos ou serviços para desenvolvedores de software. O papel vital que temos é o de conectar desenvolvedores de software fora da Intel, com as experiências da Intel, de modo que juntos possamos fazer grandes coisas acontecer com nossas plataformas. Quase tudo o que você possa imaginar que a Intel deve estar fazendo junto com os desenvolvedores de software, vem destas divisões. Existem ótimos recursos que os desenvolvedores podem acessar – tal como produtos (Intel Software Development Products), treinamento (Intel Software College), redes de desenvolvedores (Intel Software Network) e consultoria (Intel Solution Services). Temos também muitos projetos que trabalham de perto com projetos de software específicos em corporações, projetos de software aberto, sistemas operacionais, vendedores de software, projetistas de sistemas, vendedores de hardware e vendedores de ferramentas. As áreas em que trabalhamos são igualmente diversas – abrangendo uma gama completa de plataformas de software e de computadores.

As pessoas se perguntam: “Por que a Intel produz software?” Como você responderia?

Esta pergunta é feita, mas sempre me pega de surpresa. Se não fizéssemos nada com software, todo mundo perguntaria: “Por que não?” O software é absolutamente crítico para o sucesso da Intel - nosso hardware não seria realmente útil sem ele. O interesse primário da Intel no software reside onde o software está mais perto do hardware - onde é necessário um pouco de combinação de hardware e software para alcançar o potencial pleno da plataforma. Esta é a parte que gosto, e também a parte em que a Intel tem a responsabilidade de fornecer ajuda! Trabalhando de perto com desenvolvedores de software, podemos projetar hardware que terá o suporte necessário para ser o mais útil possível. Trabalhando com vendedores de sistemas operacionais, vendedores de hardware e desenvolvedores de software, podemos ajudá-los a fazer melhor uso do nosso hardware. Ao mesmo tempo, trabalhamos para prover software para construção de aplicações, que podemos fornecer mais rapidamente ou de forma melhor que qualquer outra companhia. Compiladores, bibliotecas, ferramentas de melhoria de desempenho e ferramentas de threading, são todos exemplos de software que estão muito perto do hardware e freqüentemente estão atualizados e otimizados para suportar nossas mais recentes inovações em hardware. Na minha opinião, seria irresponsável a Intel não estar colaborando no fornecimento destes produtos e também não estar dando suporte como fazemos.

O Intel Software Solution Group fez recentemente algum investimento significativo na América Latina. Por quê?

A América Latina é um mercado diversificado, empolgante e crescente – tanto para computadores quanto para o desenvolvimento de software. Na América Latina temos grandes talentos e consumidores - e estamos interessados em ambos. Estive no Brasil algumas vezes e fiquei muito impressionado com os desenvolvedores de software que conheci. Conheci muitas pessoas inovadoras no Brasil querendo usar os computadores no seu potencial máximo. Isto os torna excelentes parceiros para o que queremos fazer.

Qual o suporte local que os desenvolvedores de software brasileiros podem esperar da Intel?

Nós temos investido mais no Brasil para podermos trabalhar com negócios e desenvolvedores de software e ver como podemos ajudar mais. A Intel Developer Forums em São Paulo, é um excelente exemplo de um modo bem sucedido de conectar-nos com desenvolvedores do Brasil. Nós sabemos que o melhor modo de ajudarmos os desenvolvedores do Brasil é através de nossos experts, e trabalhando diretamente e indiretamente com as pessoas.

Nós também estamos trabalhando muito de perto com vários revendedores brasileiros que oferecem níveis diferentes de suporte a nossos clientes mútuos. Eles e os clientes são apoiados por gerentes locais de desenvolvimento empresarial situados em São Paulo, os quais por sua vez, são atendidos por uma enorme equipe de suporte técnico localizada ao redor do mundo. Nossos engenheiros de consultoria técnica freqüentemente estão viajando pelo Brasil todo para treinar nossos clientes e demonstrar nossas ferramentas.

Em quais áreas são geralmente usados os produtos de desenvolvimento de software da Intel?

Os produtos de desenvolvimento de software da Intel (Intel Software Development Products) são muito populares entre as pessoas que tentam extrair desempenho das aplicações ou estão tentando entender tudo o que está acontecendo no sistema. Ultimamente, o multi-core tem despertado também muito interesse.

Por que os desenvolvedores deveriam escolher os compiladores da Intel?

Acho que a maioria dos nossos usuários diria que eles usam os compiladores da Intel porque são os melhores compiladores disponíveis. É claro que não posso discordar. Nossos usuários gostam do melhor desempenho que atingem nas aplicações quando compilam com os nossos compiladores. Eles também acham muitas funcionalidades que facilitam a criação e a manutenção, tal como código paralelo (usando OpenMP ou auto-paralelismo) ou código multi-mídia (usando intrinsics ou auto-vectorization). É fácil testar nosso compilador antes de comprá-lo, via nossas cópias de avaliação gratuitas para download.

Processadores Multi-core são um assunto quente. Como os compiladores da Intel podem ajudar os desenvolvedores a tirarem proveito da tecnologia deste tipo de processador?

Os compiladores da Intel suportam o OpenMP, que estende as linguagens C++ e Fortran para suportar o paralelismo. O OpenMP é amplamente suportado, e a Intel é um líder em suporte ao OpenMP porque temos um envolvimento com o padrão desde que o mesmo começou uma década atrás. Nós também estamos implementando novas capacidades tais como filas de tarefa que permitem ao OpenMP ir além do paralelismo para os loops. Nossos compiladores também tentam achar paralelismo mesmo sem o OpenMP, utilizando uma característica conhecida como auto-paralelismo. Juntas, estas funcionalidades ajudam os desenvolvedores a utilizar o compilador para desenvolver programas paralelos.

Existem outras funcionalidades especiais que os desenvolvedores de software podem esperar das ferramentas?

O suporte da Intel ao paralelismo vai bem além de compiladores - temos o Intel Thread Checker para achar erros ocultos de threading no código, fornecendo maior rapidez na prototipação e depuração de programas paralelos, o Intel Thread Profiler e o Intel VTune Performance Analyzer para ajuste de desempenho. Nossas bibliotecas (IPP e MKL) executam muitas funções que usam automaticamente core múltiplos, quando existentes - melhorando facilmente o desempenho. Para usuários que codificam programas para clusters, temos um excelente conjunto de ferramentas e bibliotecas para programar MPI (message passing interface – interface de passagem de mensagens). Especificamente o Intel Trace Analyzer and Collector para tuning e nossa biblioteca MPI para desenvolver software shrink-wrapped usam MPI.

Temos ainda mais inovações que serão introduzidas este ano em novos produtos, a respeito dos quais não posso falar; mas os desenvolvedores devem ficar atentos para novos anúncios ainda neste ano. Nós somos muito ativos em nossos esforços para ajudar os desenvolvedores, especialmente com programação paralela para multi-core.

Como ferramentas de software da Intel se integram com outras ferramentas de desenvolvimento de software no mercado?

Nossos clientes desfrutam da nossa forte aderência a padrões que incluem incrível compatibilidade com ambientes de desenvolvimento existentes. Nossas bibliotecas trabalham com outros compiladores, nossos compiladores trabalham com outras bibliotecas. Nossas ferramentas de análise de desempenho trabalham com outros compiladores e bibliotecas. No caso dos nossos compiladores, você verá que nosso alto nível de compatibilidade torna fácil a troca. Uma vez instalados, nossos compiladores se tornam uma escolha em seu ambiente de desenvolvimento. Na realidade, você pode misturar e pode combinar nosso compilador para construir partes de uma aplicação por causa de nosso alto nível de compatibilidade, mesmo em nível de código-objeto.

Fale sobre alguma coisa dentro da Intel Math Kernel Library que seria interressante para a comunidade de alto-desempenho?

Desempenho otimizado, uso automático de processadores de core múltiplos, grande precisão numérica e uma biblioteca enorme de capacidades para programadores que procuram resolver problemas numéricos.

Por que os compiladores da Intel e as bibliotecas suportam processadores da concorrência?

A Intel é fortemente orientada ao cliente, e desenvolvedores de software nos dizem que querem extrair o máximo de desempenho das aplicações. Os desenvolvedores de software precisam de nossos compiladores e bibliotecas para produzir código que rode em todas as plataformas. Assim fazemos. Na realidade, trabalhamos para fazer o melhor código que possa ser produzido, independentemente do processador utilizado. Isto é melhor para nossos clientes e, portanto, melhor para Intel. Os nossos concorrentes usam nossos compiladores regularmente para produzir pontos de referência para os seus produtos, justamente porque somos bons.

O que podemos esperar para um futuro próximo?

O paralelismo é legal, divertido, empolgante – e já está disponível com os processadores dual-core. Mas este é apenas o começo, e vejo muitas idéias partindo das nossas equipes da Intel, quanto ao que podemos fazer para ajudar. Também vejo muitas idéias interessantes fora da Intel sobre como aproveitar o paralelismo. Juntos, iremos ver uma explosão de novas e empolgantes atividades. Sou um entusiasta dos processadores multi-core – os desenvolvedores estão entusiasmados também, pois vêem muitas novas oportunidades. A Intel tem agora produtos excelentes para os desenvolvedores, e vejo que isto irá melhorar e ficar mais empolgante no futuro.