Showing posts with label study. Show all posts
Showing posts with label study. Show all posts

Tuesday, April 7, 2009

optimize application for ibm cell processor

That goes the title of my final year project. Finally today, I submitted everything, three copies of my final report plus a CD containing the source code! It was a long two semesters project, yet it's interesting because I had a chance to explore a new processor architecture which was released in 2005. It is called the IBM Cell Broadband Engine Architecture (IBM Cell BE, or Cell processor for short), which was jointly developed by Sony, Toshiba, and IBM. The development process itself was started in March 2001 and upon its release, the Cell processor is used to power up Sony PlayStation 3 machine.

This processor is developed for multimedia and game applications as well as other numerically intensive workloads. It provides support both for highly parallel codes, which have high computation and memory requirements, and for scalar codes, for which fast response time and a full-featured programming environment. The Cell BE architecture provides both flexibility and high performance by utilizing a 64-bit multithreaded Power Processor Element (PPE) with two levels of globally coherent cache and eight Synergistic Processor Elements (SPEs), each consisting of a processor designed for streaming workloads, a local memory, and a globally coherent DMA engine.


an example of the rendering of a high dynamic range imaging (HDRI) tone-mapped image

So, this project itself attempted to optimize a non-trivial but interesting application, which is OpenEXR, a high dynamic-range (HDR) image library, on the Cell platform. The library is optimized to use all the available resources of the Cell processor. In order to achieve this some optimization methods (such as function inlining, branch predication, and loop unrolling) and vectorization with SIMD instructions are done as well as parallelization of execution with multiple Synergistic Processor Elements (SPEs) in order to fully utilize the SPEs in the IBM Cell BE. This project has managed to successfully achieved speedup factor of 1.94 and 1.26 respectively for pixel data writing and reading process and if the time for data initialization is assumed to be negligible, the speedup factor achieved for both processes are 3.25 and 1.88 respectively.


the result of my FYP is captured in this one graph, hehe

So basically that's for the technical thingy. I felt that in the past two months, I've done much more than what I've done from September last year to February this year hahaha. All things that I've done in the last semester seem to be a waste since most of them didn't really go into my final deliverable. However, there are many interesting experience that I get from this FYP. Here's a list of things which I did for the first time (in my life!) during this fyp period: fell asleep in the lab till the following morning, drank four cups of coffee in one day, spent most of my day in the lab, and didn't talk (chatting doesn't count :P) to anyone for one day. On average, I spent 12 hours a day in front of the computer and sleep for only 5 hours a day, hahaha what a life. Here are some photos that remind me of all the time I spent doing this FYP...


the entrance to my lab..


see all the rubbish accumulated in front of my lab


my workstation in the lab


back to my room


delicious nastar from my mom which accompanied me for a week :P


I'm a coffee addict!


first draft..


got a playstation 3 machine, and installed linux in it haha


final submission!

So, I still have to prepare for the presentation in front of two examiners, it will be on 20 April. Some assignments are waiting to be "touched" :P, and finally exams, will be my last 3 exams in NUS, gotta enjoy hahaha..

Wednesday, April 1, 2009

final year project's presentation

Monday 20, APR 2009
Afternoon Parallel Sessions, 2pm to 5pm

Session Name/Venue: Computer Architecture - 1, SR5 (COM1/2-01)
S/N: 33
Proj. ID: H062190
Title: Optimize Application for IBM Cell Processor
Supervisor: tulika
Co-Supervisor: -
Student: Johannes Ardiant Harlie
Time Slot for Presentation: 4.15 - 5.00pm
Evaluator 1: thiagu
Evaluator 2: wongwf

Saturday, January 3, 2009

getting ready for my last semester, yay!

So in 9 days, my last semester in NUS will start. The feelings? Excited, nervous, tired and bored, sad that the a-supposedly-one-month-holiday will soon come to an end, and an enthusiasm to see the fruit of what I have been through in the last 3.5 years. I am very thankful for my result in the previous semester. My CAP stays the same (yay!), and only 0.01 below my biggest "rival" LoL. I got A for EE2009, I was really surprised, I think that module is the thoughest that I had last semester because of all the maths and the most-malevolent Fourier series (I have never mastered all Fourier related stuffs from my first encounter with it in MA1505). I got B+ for the other two modules, not really surprising because in one of that module, I didn't really do well in the final exam, and for the other one, I didn't really do well in the CAs. But, I'm thankful and grateful for all the guidance that God has given me last semester. Although I missed the first month of school because of delayed return from my Student Exchange Programme (SEP), I still managed to cope with everything well.


Self portrait with a "victory" thumb hahahaha

Okay, so for this semester, I'm planning to take 3 modules (plus my ongoing FYP). I have planned the modules that I will take this semester from my first year. One module that I intended to take (CS4275, Programming Real-time System) is no longer offered anymore! So I need to find another elective from A7 (Embedded System) area. I chose CS4271 (Critical Systems and Their Verification) and I'll be taking this module with a friend of mine in the same major. So that's for the first module. My second module will be CS2301 (Business And Technical Communication), a boring module which made me delaying taking it until my final semester :P. Now, I haven't settled my third one. My first plan was to take a module to complete my minor in Business Administration. I can only take 2 modules from Management area, they are MNO3301 and MNO3303. To my surprised, both of these modules have no exam! It's all CA based with group projects! I need to find someone whom I know who take either one of those modules. I have a number of bad experience having a project with people that I didn't know before. I have asked many of my friends who know anyone majoring in Management, but to no avail. So I'll follow one suggestion from a friend: I'll just bid for it, come to the first class, and if I found that I know no one, I'll just drop it :P and make a "backup" plan. I have 2 modules as a back up, first is CS3241 (Computer Graphic) and the other one is CS4222 (Wireless Computing & Sensor Networks). This is my first time ever in NUS doing this kind of thing..




The e-mail was about a meeting plan between my supervisor and all of her final year students. Wow this will be my first meeting with my supervisor. I was so excited and I need to prepare a lot of stuffs. She was away last semester for a 6-month sabbatical so most of the time, I did the FYP all by myself. I was quite worried about this FYP. I need to hear directly from my supervisor, how does she think about my progress so far, I'm really looking forward for this meeting!

So, I hope in this semester, God will always guide me as he has done so in the past 7 semesters. Yeah, and I need to be focused this semester. Here I come, my last semester in NUS~~!