By: Bill Buros.
Recently, the IBM SDK for Linux on Power released another beta update
of the environment for developing, debugging, and doing performance analysis of programs running on Power systems. On a regular basis, people ask about the SDK and wonder "So... what exactly can this do?"
. Being a little tired of creating more and more wiki pages, I'm hoping that the video approach might be more interesting and quickly informative (not to mention it provided a nice tangent on the few days before the Thanksgiving break).
So here's a quick example of running a simple program (stream) in a 8-core partition on a Power7 server running SLES 11 sp1. "stream" measures memory bandwidth on a server running four different variants of matrix computations - essentially manipulating three matrices loaded in memory.
The videoclip is a shockwave clip, so I'm also testing to see how well this works on the Think Power Linux Community. With the software I'm using, the other alternative was mpeg-4 output, which I wanted to avoid here. Feel free to add your comments below - good - bad - indifferent.
Here's the various caveats: The IBM SDK was installed on a fresh SLES 11 sp1 partition taking advantage of the new YUM repo
. That yum repo is VERY nice, check it out. In addition, oprofile was also installed and enabled in the SDK (a surprising manual step). The stream source can be downloaded from http://www.cs.virginia.edu/stream/FTP/Code/
. We modified the stream makefile to take advantage of the OMP pragma's in the code for openmp parallelization. The example is loosely based on an older wiki page on developerWorks which focused on "tuning stream with libhugetlbfs
Your performance results will of course vary, the example was run on a partitioned Power7 server.
Assuming this video approach works and is reasonable effective, there are some really nice tools and approaches being developed in and around the SDK which we'll elaborate on over the coming weeks. I will observe that one of the key challenges with the SDK will be in understanding how to import / leverage the far more complex code repositories and applications which customers and analysts often leverage. That process of importing codes is beyond my scope and interest level, so I'll leave that to the SDK experts to explain.