Thursday, May 01, 2014

Power8: Linux news / Power8: Novidades Linux

This article is written in Englsih and Portuguese (original version here)
Este artigo está escrito em Inglês e Português (versão original aqui)

English version
The Informix world should be focused on the IIUG annual conference taking place in Miami. But the world doesn't stop spinning and possible important news for Informix come from other locations and origins.
Last week IBM announced it's new version of the Power CPU. That's the new Power8, an impressive beast with 12 cores, 8 threads per core etc. But why am I touching this subject on an Informix blog? Because besides this latest evolution that naturally brings much more capacity, IBM have been doing some interesting actions regarding the Power architecture... Sometime ago, IBM opened up the design of this technology and created the OpenPower foundation. This allows other companies to produce chips and be involved in the future of the platform. This companies include heavy hardware users like Google, mobile market giants like Samsung, software (Linux) partners like Canonical (Ubuntu) and chip makers like Nvidia. This effort seems able to generate some interesting results. Among them we have Google showing a Power8 based motherboard on IBM's Impact 2014 conference. There are already partners building Power machines. And some features of the new processor were influenced by this:

  • CAPI - Coherent Accelerator Processor Interface
    It's a feature designed to allow better and tight integration between the CPU and specialized processor units (accelerators) like FPGAs, GPUs etc
  • PowerKVM
    KVM is a kernel based virtualization layer. The Power systems were already able to run Linux LPARs but they need to have IBM's PowerVM underneath (the IBM Hypervisor). Now it's possible to have just the hardware, then PowerKVM and Linux VMs on top. All in an OpenStack compliant system
  • Little Endian Linux
    Endianess has to do with the way long words/words etc. are organized in memory. There are two flavors depending on whether the higher byte/word (most significant) is stored before or after the lower part (least significant). For us, simple users this seems an irrelevant techie thing... and in part it's true. But it's highly important when you think about porting applications and specially data.
    RISC systems (AIX, HP-UX - PA-RISC, Solaris Sparc) etc were created Big-Endian. Linux on Intel is Little-Endian. Linux on Power was Big-Endian.
    With Power8, the OS may decide the mode. And IBM and it's partners are working on Little-Endian Linux for Power.
The last point is where I wanted to reach.... The implications of this shift are huge. If you check the link above on Google+ where a Google engineer shows the Power8 based motherboard, it says the board was created "to port our software stack to POWER (which turned out to be easier than expected, thanks in part to the liitle-endian support in P8)". But this may have more implications and I'd like to raise one: In the past we've seen one OS (HP-UX) move from one platform (PA-RISC) to another (Itanium). At that time Informix/IBM did something that never repeated itself again: We issued a note stating that customers making this move could back up their PA-RISC systems and restore on Itanium servers. Further more it said that customers could have their primary HDR server on PA-RISC and their HDR secondary servers on Itanium. I suppose we all agree this means or translates into a very smooth transition or migration path. And it was possible because the platform endianess didn't change. For pre-Power8 systems, if you wanted to move an Informix instance from Intel Linux to Power Linux you'd have to export and import. With Power8 I believe this could be possible by simply backup/restore or by means of HDR/RSS setup. Note: This is my personal thought... nothing along these lines was announced and I have no internal knowledge about any plans to do so (neither would I share them before official announcement of course). I'm just mentioning this because I think this could be a very interesting topic for Informix customers to discuss with IBM. And since some of them have joined IIUG's conference I leave it as food for thought.

Final note

One of the best things about writing this blog is that it forces me to do some (or sometimes a lot) of research about the topics I'm writing about. In particular I like to see what's happening on the competitors field. This time I ended up on an Oracle blog post about Power8. As you'd expect they don't have nice things to say about this, and that's always interesting reading (as the good things are easy to find on IBM's side). But I feel sad and sorry when there are no good arguments on "the other side". Just to highlight a few examples:
  • This sentence "IBM seems to be re-aligning POWER8 to cover lost ground since it decided to de-invest in x86 entirely, while Oracle has instead adopted the strategy of adding/building value for enterprise environments and adding functionality to enhance customer experience (our software in silicon with SPARC processors, Oracle Solaris enhancements and Engineered Systems as examples)" confuses me... Is the author referring to the "engineered systems" like Exadata which actually are made of "their software", on Intel's hardware?!
  • The author says "IBM delivered only two POWER updates in the last four years". That's more or less the truth if you consider major upgrades which is a normal cycle for hardware. But then it says "Oracle increased investment in SPARC and Oracle Solaris delivering five generations of SPARC processors in four years, and doubling performance with each release". Hmmm... so it's now 10x faster than it was in 2010. There goes Dave House's tweak on Moore's law. And if that's so, why are they loosing market share and using Intel processors on Exadata? At least IBM uses Power CPUs on our flagship "product" Watson!
    Actually Oracle released T3 (September 2010), T4 (September 2011) and T5 (March 2013). T3 and T4 were already on Sun's roadmap.
  • The author points to a roadmap where the next releases are marked for 2015, 2017 and 2019. Roughly every two years... exactly what is criticized about IBM's Power last 4 years. Point taken! :)
My point regarding the above post is simply that CPU battles have always been a leap frog game. IBM is currently in the lead, Intel will answer, next Sparc (2015) may have something to say and so on... And each vendor will show it's strengths and it's up to the competitors to show possible weaknesses. But if anyone wants to argument, it's better to use good arguments. And that's clearly not the case here. And it's a fact that IBM is doing things differently with the OpenPower foundation and the third party collaboration. Market and time will tell us the results.

Versão Portuguesa
O mundo Informix deverá estar focado na conferência anual do IIUG a decorrer em Miami. Mas o mundo não para de girar e podem surgir notícias importantes para o Informix vindas de qualquer origem.
Na semana passada a IBM anúnciou a nova versão do seu CPU Power. Trata-se de uma "besta" impressionante com 12 núcleos, 8 threads por núcleo etc. Mas porque estou a tocar neste assunto num blog dedicado ao Informix? Porque para além desta última evolução que como é expectável trás muito maior capacidade de processamento, a IBM tem estado a desenvolver outras atividades muito interessantes na área da arquitetura Power... Há algum tempo atrás a IBM abriu o desenho e planos desta tecnologia e criou a  fundação OpenPower. Isto permite a outras empresas produzir chips e envolverem-se na evolução futura da tecnologia. Entre estas empresas encontram-se consumidores de larga escala como a Google, gigantes da área mobile como a Samsung, parceiros de software (Linux) como a Canonical (Ubuntu) bem como fabricantes de chips especializados como a Nvidia. Este esforço parece capaz de gerar resultados interessantes. Entre os quais temos a  Google a demonstrar uma motherboard baseada em Power8 na conferência IBM's Impact 2014. Existem também já  parceiros a construir máquinas Power. Por fim, algumas das novidades do Power8 foram influenciadas por este movimento:
  • CAPI - Coherent Accelerator Processor Interface
    É uma funcionalidade desenhada para permitir a melhor integração entre o CPU e unidades especializadas de processamento (aceleradores) como FPGAs, GPUs etc.
  • PowerKVM
    KVM é uma camada de virtualização baseada no kernel. Os sistemas Power há muito que podem correr Linux nas suas LPARs, mas necessitavam ter o PowerVM da IBM por baixo (o Hypervisor da IBM). Agora é possível ter apenas o hardware, depois o PowerKVM e as VM's Linux por cima. Tudo num sistema conforme com o OpenStac
  • Little Endian Linux
    Endianess diz respeito à forma como as palavras longas ou palavras (64 ou 32 bits) são organizadas na memória. Existem dois métodos, dependendo se o byte ou palavra mais "alto" (mais significativo) é guardado antes ou depois do componente mais baixo (menos significativo). Para nós, simples utilizadores, isto parece um detalhe técnico... e em parte é verdade. Mas isto é extremamente importante quando pensamos em portar aplicações e especialmente dados entre sistemas
    Os sistemas RISC (AIX, HP-UX - PA-RISC, Solaris Sparc) etc foram todos criados como  Big-Endian. Linux em Intel é Little-Endian. Linux em Power era Big-Endian.
    Com o Power8, o OS pode decidir o modo. E a IBM e os seus parceiros têm estado a trabalhar num Linux Little-Endian para Power8
Este último ponto era onde queria chegar... As implicações desta mudança são imensas. Se consultar
o link acima no Google+, onde um engenheiro da Google mostra uma motherboard baseada em Power8, ele diz que a placa foi criada (tradução livre) "para portar a nossa pilha de software para o Power8 (o que se revelou mais fácil que o esperado, graças em parte ao suporte Little-Endian do P8)". Mas isto pode ter outras aplicações e gostaria de salientar uma. No passado já vimos uma migração de um sistema operativo (HP-UX) de uma plataforma (PA-RISC) para outra (Itanium). Nessa altura a Informix/IBM fez algo que nunca mais se repetiu: Emitimos uma nota informando que os clientes que seguissem este caminho, poderiam fazer um backup das suas instâncias em PA-RISC e fazer um restore dessas imagens em servidores Itanium. Ainda mais, poderiam ter os seus nós primários em PA-RISC e montar os nós secundários (HDR) em servidores Itanium. Suponho que todos concordamos que isto se traduz numa forma muito tranquila de fazer uma migração de plataforma. Isto foi possível porque o tipo de endianess dos sistemas não mudou. Para sistemas Power anteriores ao Power8, se desejássemos mover uma instância de Linux em Intel para Linux em Power teríamos de exportar e importar os dados. Com o Power8 acredito que tal fosse possível através de um simples backup/restore ou usando o mecanismo de HDR. Há que salientar que isto é apenas a minha opinião... Nada relativo a isto foi anunciado nem eu tenho qualquer conhecimento interno sobre o tema (nem o revelaria antes de um anúncio oficial). Apenas menciono este tema, pois penso que seja um tópico de discussão bastante interessante para a IBM e clientes Informix. E como alguns desses clientes e parceiros estão reunidos na conferência do IIUG parece-me apropriado deixar isto como tópico de discussão.

Nota final

Uma das melhores coisas que resultam de escrever este blog é que tal me obriga a fazer alguma (por vezes muita) pesquisa sobre os tópicos que escrevo. Em particular eu gosto de ver o que se vai passando na nossa concorrência. Desta vez acabei neste artigo de um blog da Oracle sobre o Power8. Como seria de esperar, não têm coisas simpáticas a dizer sobre o tema, e isso é sempre uma leitura interessante (já que as coisas boas são fáceis de encontrar do lado da IBM). Mas lamento e sinto-me triste quando não há bons argumentos "do outro lado"... Apenas vou salientar alguns exemplos:
  • Esta frase (tradução livre) "a IBM parece estar a realinhar o Power8 para recuperar o terreno perdido desde que decidiu desinvestir totalmente na plataforma x86, enquanto ao invés a Oracle adotou a estratégia de adcionar/construir valor para ambientes empresariais e adicionar funcionalidades para melhorar a experiência dos clientes (o nosso software com processadores SPARC, melhorias no Oracle Solaris, e "engineered systems" como exemplo)" confunde-me... O autor refere-se a "engineered systems" como o Exadata que na verdade assenta em cima de tecnologia Intel?!
  • O autor diz (tradução livre) "a IBM anunciou apenas duas atualizações aos Power nos últimos quatro anos". Isso é mais ou menos verdade, se considerar-mos atualizações significativas, e é o normal em termos de hardware. Mas depois diz "a Oracle aumentou o investimento em SPARC e Oracle Solaris, tendo introduzido cinco gerações em quatro anos, e duplicando a performance em cada mudança". Hmmm... então no espaço de quatro anos tornou-se 10x mais rápido.... Lá se vai a variante de David House sobre a lei de Moore... e se assim é porque continua a perder quota de mercado e a usar processadores Intel no Exadata? A IBM no nosso "produto" bandeira (Watson) usa a tecnologia Power! Na verdade, como é demonstrado nos próprios slides referidos no mesmo artigo, a Oracle lançou o T3 (Setembro de 2010), o T4 (Setembro de 2011) e o T5 (Março de 2013). O T3 e T4 já estavam no roadmap definido pela SUN
  • O autor aponta um roadmap onde os próximos lançamentos estaõ marcados para 2015, 2017 e 2019. Grosso modo de dois em dois anos... exatamente aquilo que é apontado à IBM como sendo pouco. Entendido!
O meu ponto, relativamente ao artigo referido, é que as batalhas de CPUs sempre foram como as corridas de rãs. Atualmente a IBM toma a liderança, a Intel irá responder, depois os SPARC (2015) podem ter algo a dizer, e assim por diante.... Cada fornecedor irá mostrar as suas mais-valias, e caberá à concorrência apontar possíveis fraquezas. Mas quem queira argumentar, deverá usar bons argumentos, bem fundamentados e estruturados. E este não é um desses casos. E de facto a IBM está a fazer coisas diferentes com a fundação OpenPower e a colaboração de terceiros. O mercado e o tempo dir-nos-ão os resultados.