Somebody Turned Off That Cloud: The PSN Is Still Down with No End in Sight
Day 6, the PSN (Playstation Network) is still down and no end in sight! Millions of customers are locked out of the Cloud (so to speak). Sony admits that this massive interruption of all that "some of us hold dear" is the result of hackers.
Because customers do online gaming, Netflix, Web browsing, Chat, Blue-Ray movie watching, community stuff, etc. — All using PSN — I'm very much tempted to soapbox the evils of being too dependent on the Cloud (of the see-there-I-told-you-so variety).
However, my interest in the Playstation 3 is not just as gaming station but as a parallel computer. The PS3 just happens to host one of the nicest multicore setups out there for under $500 — namely, the Cell processor.
Actually, desktop computers still haven't caught up to the capability of the Cell. The CBE is a heterogeneneous multicore chip. It is a heterogeneous architecture because it consists of two different types of processors; Power Processor Element (PPE) and a Synergistic Processor Element (SPE). The CBE has 1 PPE and 8 PPEs, 1 high speed memory controller, 1 high bandwidth element interconnect bus, and high speed memory and I/O interfaces all integrated on-chip. This makes it kind-of-a hybird 9 core processor. Figure 1 shows an overview of the CBE processor.
Most of the common CMPs have homogeneous (i.e., same instruction set) processor. The processors on the CBE have two different instruction sets. Although each of the processor elements has been optimized for certain types of operations, both types of elements can be used for general purpose computing.
The first element in the Cell processor is a 64-bit Power PC processor. This element complies fully with the 64-bit Power PC architecture and can execute either 32-bit or 64-bit operating systems and applications.
The second type of processor element is the SPE (Synergistic Processor Element). The SPEs have been optimized for running SIMD applications. Although there are several commercial scientific uses of the CBE, its most common use is as the processor for Sony's Playstation 3.
The Playstation 3 is a flexible device and use to come with the ready to install Linux. Currently, there is Fedora and Yellow Dog distributions of Linux for the CBE. The low cost of the Playstation 3 (PS3) brings heterogeneous multicore application development into reach of virtually any software developer.
The PPE element and the can be programmed using the standard GNU gcc compiler. There is a CBE SDK available for download from IBM that includes tools necessary to compile the SPE code. Basically, the SPE code is compiled separately and then linked with the PPE code to form a single execution unit. The PPE and SPEs act cooperatively with both bringing specialties to the table. Typically The SPEs use the PPE to run the operating system code and in most applications the main or top-level thread. The PPE uses the SPE's as the applications high performance work horse. The SPE's have good support for SIMD operations, compute intensive applications and vector type operations. SPEs are directly accessible. The PPE is a CMT, it is a dual thread processor.
So in the right configuration, we can have logical processors available in a CBE configuration. The heterogeneous architecture also makes for some interesting design choices. While standard POSIX threads (pthreads) and process management can be used with the PPE element, the SPE has to be programmed using the thread library that's available as part of the CBE SDK. The good news is the SPE thread calls are designed to be compatible with pthreads and require no learning curve for developers that are familiar with the pthread library.
The PPE accesses memory differently than the SPEs. Although there is only a single memory flow controller, the CBE avoids the normal single bus bottleneck potentials because the SPE each have their own local memory. Figure 2 shows the memory configurations for the PPE and the SPE.
The SPE configuration is where most of the savings come in. The SPE has a three level memory access. It uses its local store, registers files and DMA transfers to main memory. This three-tier memory architecture allows programmers to schedule simultaneous data and code transfers. The CBE processor can support up to 128 simultaneous transfers between the SPE local stores and main storage. Although the SPE is optimized for SIMD type operations, the PPE has support for parallel Vector/SIMD operations as well.
The CBE is a good example of a multicore that must be directly addressed in order to get the maximum performance from it. The standard Linux system calls can see the dual threads of the PPE but is not fully aware of the SPE. The developer must explicitly develop and compile code that works with the SPEs and then that code must be linked with the code from the PPE. At that point, Linux will know how to handle the 8 SPE processors. The heterogeneous architecture of the CBE also provides exciting design choices for the developer that is willing to dig a little deeper into the possibilities.
An SPE consists of a synergistic processor unit (SPU) designed to accelerate a wide range of workloads providing an efficient data-parallel architecture and the synergistic memory flow controller (MFC) providing coherent data transfers to and from system memory. The SPU does not access main memory directly, but rather must issue DMA commands to MFC. The communication between the SPU and the PPU is through the interconnect bus (EIB).
Since each SPE has its own memory management unit (MMU), this means that it can execute independently from the PPE. But that independence has limits. The SPUs are primarily for optimized for data manipulation and calculation. Initially Sony promoted the PS3 using the fact that Linux could be installed on it, which is the initial reason why Tracey and I purchased several and added them to our Pantheon cluster — Lots of parallel processing power for the buck. After thousands of users (Universities, researchers, small companies, etc.) purchased PS3s to take advantage of the Cell Processor under Linux, Sony decides to take Linux capability away from the users by fiat with a decree something like: "The next time you log in to PSN, Linux capability will be removed. If you need to keep Linux, then do not log into PSN".
While it's not certain whether this latest attack is the result of angry hackers who feel jilted, several of PSN's previous problems were the result of angry jilted hackers. All we can hope is that Sony finds a way to quickly (well, it's too late for quickly), perhaps effectively resolve this issue with the PSN and it's community.
The power of the Cell multicore processor and the PSN are tangible examples of the impending Cloud although Sony does not market it as such. Nevertheless, the PSN is slowly being positioned as a gaming/entertainment component of the Cloud. For one, I cannot get my Socom4 groove on until somebody turns the Cloud back on. Yep, Sony admits to turning the Cloud off (or at least their portion of the Cloud). So after this weekend's purchase of Socom4, we're all dressed up with no Cloud to go to.