A Possibly Coherent Future Power Hybrid System
March 7, 2016 Timothy Prickett Morgan
From the looks of things, we can expect to see new Power Systems machines based on the Power8+ processors from IBM in the next several months. With new iron on the way and the server, storage, and networking markets all undergoing tumultuous change, now is a good time to examine the place of the IBM i platform in the modern datacenter and how it might be better integrated with the other systems that coexist with it.
Having to say such a sentence was never part of the original System/38 and AS/400 plan, of course. And perhaps the midrange IT world would be a far simpler–and probably far more expensive–place if the diversity of processors and operating systems had not erupted like a Pre-Cambrian explosion in the 1980s.
It was not a forgone conclusion that the X86 processor would come to dominate the desktop and make the jump to the datacenter to take over, any more than it is a foregone conclusion that the ARM processor will follow suit and jump from our smartphones to the datacenter. Intel has had to invest decades and hundreds of billions of dollars (that’s with a B) to take over the datacenter, and you have to honor its prowess and tenacity. PowerPC chips were the heirs to the Motorola 68000s, which ruled some PCs (particularly the early ones made by Apple) and which were among the most popular chips used in embedded controllers including the first waves of I/O offload processors in the AS/400 line. (In fact, as I have contended for many years, I believe that the initial AS/400 chips created by IBM were based on a licensed and heavily modified Motorola 68K architecture.) The IBM, Motorola, and Apple partnership that brought the PowerPC chip to the world could have blunted the X86 attack if the three partners had shown more commitment and worked together instead of at cross purposes.
That is all ancient history, of course, but history runs in spirals and loops and here we are again at a point in history when various kinds of offload engines are being coupled with processors or even etched on the same die as their processors to create a more efficient compute complex. This reminds me of what an AS/400 CISC processor and its collection of network, terminal, disk, tape, and memory controllers all did nearly three decades ago.
The idea that the CPU is too expensive to be doing the grunt work holds true, and it bucks the trend at Intel, which wants to pull workloads off the networking and I/O devices and put them on the Xeon or Atom processor so Intel can get a bigger piece of the chip action in the datacenter and make the most of the tens of billions of transistors it can cram onto a single die. This is all good for Intel, as is obvious, and can be good for the customer, too.
The question here in 2016 is: What can IBM do to build a Power Systems line that better suits IBM i customers as they exist today and as they might to become in the next few years? The thing is this: If the Power8+ chips are truly on their way for an announcement perhaps at the OpenPower Summit in early April or at the annual COMMON user group meeting in early May, then it is too late for any changes we might propose now to be put into action? That Power8+ horse will have already left the barn. It takes something on the order of a year or a year and a half to design a new system, line up its supply chain and manufacturing, get it qualified to run particular system software stacks, and into the hands of reseller partners and support techies so they can be trained on what it is and how to sell and take care of it.
This old-school process is entirely too long, we think. Which is why you see all of the hyperscalers running homogeneous systems and creating their own software stacks, from the operating system kernels all the way out to the uber-controllers that run massive fleets of machines that span datacenters around the world.
With all of that in mind, I offer some suggestions and observations as we enter the Power8+ era in the middle of 2016 and look ahead to the Power9 era at the end of 2017 or perhaps in early 2019. This week we will talk about ideas in general and next week we will design the system. Feel free to participate.
More Power To You
The first thing I want to point out is that while IBM has hunkered down and focused on its Power Systems and System z machines as the platforms for the future, the fact of the matter is that most IBM i shops have Windows Server running on X86 servers in their datacenters, and some have Linux machines and still others have AIX or Linux running on Power. While IBM i shops display staunch support for the platform, for most companies outside the IBM i fold, the future is probably Linux and if Microsoft gets real creative and lucky, maybe Windows, too, and it is likely to be an X86 platform with maybe a smattering of Power and ARM. This presents an opportunity and a conundrum for Big Blue.
Once IBM sold off the System x division to Lenovo Group last year, Big Blue no longer had a machine like the Flex System modular system that could reflect the diverse iron in use at IBM i shops. Big Blue is not really peddling Lenovo machines and is hopeful that it can get customers to move workloads to Linux on Power. This is, for the most part, wishful thinking. While plenty of infrastructure jobs that run on Windows Server have their analogs in the Linux realm, the worlds are very, very different and skillsets are not easily or readily transferable.
There is a reason why IBM i persists, and why Windows and Linux will in their turn, too, and that is precisely because skills are not easily transferable even though we think they are. Making RPG more like Java does not make Java any easier to learn, and it surely doesn’t make it any more likely that Java programmers will learn old-style RPG coding, although it does possibly mean that some Java programmers can recode legacy RPG apps in new-style free form RPG. If you can afford to pay such a person, or even find one. Which we don’t think in most cases will happen because as we pointed out last week, newbie Java programmers get paid as much or more than seasoned RPG veterans. This transference all sounds good in theory, mind you, and it is good that the IBM i platform has supported Java for two decades and continually adds fresh programming blood with the adoption of PHP, Perl, Python, Ruby, and Node.js. What we can honestly say is that these new runtimes and operating systems allow the Power Systems platform to remain relevant, but that is not the same thing as saying a web startup is going to pick IBM i as a means of creating a scale-out Node.js application. I would be thrilled to see such a thing, but it just ain’t gonna happen. I know those web scale customers, too.
If IBM wants to move workloads onto Power Systems, it could run Windows and Linux in emulation mode on Power chips and bring workloads onto the box that way, but the performance penalties would be high and IBM’s cost of Power chip production is high relative to that of Intel, so it would be hard to justify all of this effort. This could be mitigated by special electronics to assist in the emulation of the X86 instruction set as well as to run special microcode to help with the emulation (Apple did this when it ported from PowerPC to X86), but IBM seems uninclined to try to convince Microsoft and the Linux distributors to license their wares to run in emulation mode on Power. It would have happened by now if it was politically or economically possible; it is definitely technically possible and maybe even desirable.
So the question, then, is how do we create a machine that doesn’t turn the IBM i platform into a silo that is isolated from the rest of the infrastructure in the datacenter where IBM i is the dominant application and transaction processing system? How do we get IBM i back to being the center of things. We have had the answer all along. What we need to do is return to our AS/400 roots and design a new system, one that has the idea of integration as its hallmark once again.
Back To Square One
Way back in the day, when it became clear that NetWare, Windows, OS/2, Linux, and other file serving platforms were not going to be knocked out by OS/400, IBM integrated X86 processors on special I/O cards and hooked them into the AS/400 processor complex. The coupling between the AS/400 and X86 processors–which was first done in 1994, a year ahead of the jump from AS/400 CISC to PowerPC RISC processors–was not particularly tight, and the compute power on the File Serving I/O Processor and its follow-ons was not spectacular. So the FSIOP never saw as much action as it could have. But we have come a long way in terms of integrating special coprocessors with the Power chips in the past few years, and in fact the Power8+ will be significant mostly because it includes the NVLink ports to tightly couple the Power8+ chips to GPU accelerator cards from Nvidia as well as an enhanced version of IBM’s Coherent Accelerator Processor Interface (CAPI), which is used to link accelerators based on field programmable gate arrays (FPGAs) to the Power8+ processor complex so they can share the same main memory in a coherent fashion. There are CAPI interfaces for network and storage cards, too, and the idea is that CAPI makes these devices a peer to the CPU cores and allows them native access to data stored in the main memory of the Power8+ chip. (CAPI is supported on the Power8 chips too, but it is better on Power8+ processors and will be even more useful with the Power9 processors.)
What does not have either NVLink or CAPI ports, of course, are Xeon processors from Intel. But there is probably a way to hack one onto a Xeon chip using an FPGA to implement the electronics and then hooking into the QuickPath Interconnect (QPI) ports in the Xeon processor. Alternatively, IBM could work with Advanced Micro Devices to get CAPI ports on the future “Zen” Opteron processors, due next year, but we think IBM wants CAPI to be only for Power chips because that gives Big Blue some differentiation for its own processors.
Still, if IBM thought more broadly, it could create a hybrid compute complex mixing Power, Xeon, GPU, and FPGA compute elements as well as InfiniBand and Ethernet interconnects that were all tightly coupled and sharing the same memory space. Using CAPI and NVLink to lash together a hybrid system could result in a very powerful machine with very diverse capabilities, but first and foremost, it could bring Power and Xeon workloads together under the same skin, something that customers would desire if it was done properly. With KVM as the uniting hypervisor and OpenStack as the uniting controller framework, IBM could create what would amount to as a true successor to the AS/400 platform. The system would use a mix of Power8 and Xeon processing elements, but we are not suggesting that IBM get back into the generic, high volume, low profit X86 server business that it sold off to Lenovo. We are suggesting that IBM perhaps threw the baby out with the bath water when it was looking for a way to cut its losses. (IBM’s System x division was not as much of a money loser as it appeared, but the company was convinced it could not have sustained the meager profits it had, and so it left.)
I am suggesting that a Power Systems platform with integrated and nearly invisible Windows and Linux serving on Xeon processor cards that plug into a Power Systems machine through PCI Express cards and that share the main memory and file systems and virtualization that is native on the Power Systems iron is a powerful idea. The trick is to not make customers pick whole new system architectures to accomplish this, as was required by past hybrid platforms like the BladeCenter blade servers or the Flex System modular systems. These machines did not take integration far enough and they required customers to learn a whole new management paradigm that was unique to Big Blue. With the proposed hybrid system I am pondering here, the glue is OpenStack and KVM, and those skills transfer to and from other markets and platforms. (Unlike knowledge of Linux or Windows, which are very different from each other.)
The important thing about such a proposed hybrid system is that it would abstract away as much of the underlying platforms as is possible–in fact, you might want it to look and feel like the SoftLayer cloud or the Amazon Web Services cloud metaphorically. This is what Microsoft is doing with its Azure Stack private cloud, which has the same look and feel as the real Azure public cloud but it runs in the corporate datacenter and on common X86 iron instead of Microsoft’s homegrown Open Compute machinery. All of the IBM i features running on this hybrid iron could be exposed as services, and ditto for Windows and Linux instances. The idea is to pitch this as a machine that can run IBM i, AIX, and Linux workloads on Power and Windows and Linux on X86 and customers do not have to care about the details. The processing nodes all share memory and storage and a file system substrate and virtual networking, and it looks and feels like a datacenter in a box with lots of flexibility.
Yes, IBM had the right name with Flex System and it should have never sold that part of the product line. We will just have to come up with a better name and a better product. This week I presented the idea, and next week, I will sketch out the details a bit more about how this might be built. In the meantime, don’t be shy about sending me any ideas you might have on this hybrid, coherent system I am proposing.