HOWTO install CELL Environment in Gentoo

Gentoo, HPC April 19th, 2007

The CELL BE SDK developed by IBM and Barcelona Supercomputing Center targets RedHat Fedora Core 6 host system. Using the rpm2targz and rpm, we can also install the CELL SDK in Gentoo Linux as well.

Dependency and Tools

Since I don’t want to use RPM as my package management, that is the motivation for me to use Gentoo, I need to resolve the dependencies manually, the following package are installed to meet the dependency requirement:

emerge glut libXmu libXext

gcc make perl rsync flex byacc are in the base system.

To extract rpm, we also need to install rpm2targz and rpm:

emerge rpm rpm2targz

Download the RPMs

The CELL SDK files are scattered in AlphaWorks and Bsc:

Download the CELLSDK21.iso from AlphaWorks, you might need to register before access.

Download all the x86-based file from Bsc, to make your life easier, you could use this script:

# ppu
wget -c  http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-binutils-2.17.50-8.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gcc-4.1.1-10.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gcc-c++-4.1.1-10.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gcc-fortran-4.1.1-10.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gdb-6.6-15.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gcc-debuginfo-4.1.1-10.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-gdb-debuginfo-6.6-15.i686.rpm

# spu
wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-binutils-2.17.50-8.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-gcc-4.1.1-9.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-gcc-c++-4.1.1-9.i686.rpm

hwget -c ttp://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-gdb-6.6-12.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-newlib-1.15.0-7.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-gcc-debuginfo-4.1.1-9.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/spu-gdb-debuginfo-6.6-12.i686.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-sysroot-fc6-1.noarch.rpm

wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/ppu-sysroot64-fc6-1.noarch.rpm

# sysroot
wget -c http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/sysroot_image-2.1-8.noarch.rpm

Extract the RPMs

We need to convert all RPMs to tar, then untar it in the root of directory:

sudo mount CELLSDK21.iso /mnt/loop -o loop
for x in /mnt/loop/software/*i386.rpm
do
        rpm2tar $x
done

for x in *.rpm
do
        rpm2tar $x
done
BUILDDIR=`pwd`

cd /
for x in $BUILDDIR/*.tar
do
        sudo tar xvf $x
done

It would take a few hours depending on your network bandwidth. Unfortunately, the sysroot_image-2.1-8.noarch.rpm fails to covert to tar, using rpm2cpio as the rescure:

sudo rpm2cpio sysroot_image-2.1-8.noarch.rpm | cpio -i –make-directories

Test Drive

cd /opt/ibm/systemsim-cell/run/cell/linux
../run_gui

You MUST go to the specified path where .systemsim.tcl residents. Wait for the GUI window launches, then Click Go, if nothing is wrong, the Linux kernel is launched, and the sysroot_image is mapped as the guest OS system.

Warnning: The CELL simulator is extremely computing-extensive, you could click Stop to pause the simulator when it is idle.

Cleanup

We can unmerge the rpm right now if you want to a crusty system.

emerge -c rpm =db-3.2.9-r11 beecrypt =db-1.85-r3

Glimpse of SC2006: Acceleration

HPC November 22nd, 2006

It is more cost-effective to plug one acceleration board into the desktop to achieve better float-point performance by migrating to the PC cluster or commercial supercomputer for medium-scale applications. In SC2006, there are at least four techniques:

GPGPU

GPU is dedicated ASIC for multimedia, gaming applications with optimized texture/render pipeline architecture. Generic Purpose GPU is based upon vendors’ API to boost the float-point performance. PeakStream unleashes the power of ATI GPU via ATI proprietary interface, other platforms are in development. RapidMind trade off the performance for portability by using OpenGL interface.

CELL

CELL may be the first generic purpose CPU designed for the multimedia application. There have been some commercial products available in the market besides Sony’s PS3, for example, the acceleration board from mercury.

Clearspeed

Clearspeed acceleration board had made a big buzz in the SC2005. It is quite impressive for the computing capacity and power consumption.

ClearSpeed board


FPGA based reconfigure computing

This exotic technology has been around for a few year, the main barrier for its popularity is the steep learning curve for the software developers to implement the functionalities in Hardware Description Language(HDL). Some high level programming language either lacks the expressiveness of parallelism or performance.

The main barrier for the co-processor architecture is the memory bandwidth, PCI Express is still the bottleneck for transportation of CPU and acceleration board. Maybe one day, AMD would embed the GPU to the CPU to replace the float-point unit if they could figure out the power consumption and manufacture.

Another challenge comes from the programming language and library. The new programming language designers fall into the dilemma: How could we hide the low-level detail to make it more expressive and intuitive to the programmer and exploit the low-level features to enhance the performance at the same time? We must trade off between them, but where is the turning point?