Introduction to Cell Programming Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology2 Cell programming link Image contains VI, Kate, Kedit, eclipse, but no emacs???Running the VMWare workshop image 3 Recommend you try newer versions first: www.vmware.com/products/playerStarting the simulator GUI 4Set everything to Fast 5Starting the simulator 6Running simple Hello Worlds 7Running synergistic Hello Worlds 89 Fill out this today! Read this!!!!CellBuzz Cluster link on sti.cc.gatech.edu!Using CellBuzz • ssh to cell-user.cc.gt.atl.ga.us • Use passwd to change your password • cell-user is not a Cell machine; do not try to run your Cell programs on it! • Request interactive session: qsub –I!• Can sftp your executables to CellBuzz from the Fedora Core image!• See CellBuzz users guide about submitting batch jobs!10hello_ppu 11 Makefile hello_ppu.chello_spu 12 Makefile hello_spu.chello_be1 – sync version 13Synergistic PPE and SPE • Applications use software constructs called SPE contexts to manage and control SPEs • Linux schedules SPE contexts from all running applications onto the physical SPE resources in the system for execution according to the scheduling priorities and policies associated with the runable SPE contexts • libspe provides the means for communication and data transfer between PPE threads and SPEs 14 Slide from IBM Presentation, “Hands-on – The Hello World! Program”Start SPE thread from a PPE program 4 basic steps must be done by the PPE program: • Create an SPE context • Load an SPE executable object into the SPE context local store • Run the SPE context – This transfers control to the operating system, which requests the actual scheduling of the context onto a physical SPE in the system • Destroy the SPE context 15 Slide from IBM Presentation, “Hands-on – The Hello World! Program”hello_be1 – sync version – spu code 16 Makefile hello_spu.c (for the hello_be1 example)hello_be1 – sync version – ppu code (1) 17 hello_be1.c Makefilehello_be1 – sync version – ppu code (2) 18hello_be1 – sync version – ppu code (3) 19hello_be1 – async version – spu code 20 Makefile hello_spu.c (for the hello_be1 example) (same as for sync version)hello_be1 – async version – ppu code (1) 21 hello_be1.c Makefilehello_be1 – async version – ppu code (2) 22hello_be1 – async version – ppu code (3) 23hello_be1 – async version – ppu code (4) 24simple-multispu/simple – spu code 25 simple_spu.c Makefilesimple-multispu/simple – ppu code (1) 26 simple.c Makefilesimple-multispu/simple – ppu code (2) 27simple-multispu/simple – ppu code (3) 28simple-multispu/simple – ppu code (4) 29simple-multispu/simple - let’s run it!
View Full Document