Deliverables
Progress Report - June 28, 2004
Project Description
I have completed four weeks of my mentorship project and I have six weeks remaining before I am finished. My task for this summer is to implement a PowerPC backend for the existing Scale compiler. This process involves learning the PowerPC ISA, becoming familiar with the Scale project, and finally implementing the backend to generate PowerPC assembly code.
My first few weeks were spent gaining access to necessary accounts, setting up the debug environment in which I am working on my PowerBook laptop, and becoming familiar with the PowerPC ISA and the Scale code. At the beginning of the fourth week I got to a point where everything was set up and I was familiar enough with the environment that I was ready to begin coding. I have generated a functional prolog and began working on parameter passing and return values from functions. One somewhat unexpected challenge I have run into so far is that the assembly code for Linux and OS X is not the same. Registers are named differently between the two operating systems, and the prolog, epilog, and assembler directives are all quite different. I intend to work around this by providing an extension to the -arch compiler switch allowing the user to specify macosx or linux.
During the remainder of my time here my primary goal is to get the PowerPC backend fully functional. In addition, my secondary goal is to do as much research as possible towards a possible topic for a senior thesis. A student here already proposed one idea for a thesis project to me, and I have begun reading papers to help me learn more about the possible project.
The most exciting thing that has happened for me so far was probably learning about the TRIPS architecture. The TRIPS project is extremely interesting to me because I just took a class last semester in which we built a processor and then spent the second half of the semester attempting to optimize it and increase the IPC by whatever means possible. My group ended up attempting an out-of-order execution processor and I learned a lot from the experience. The TRIPS meetings feel strangely familiar to my group meetings for ECE436. We discuss the optimizations that have been made and their effects on the IPC. TRIPS is an aggressive out-of-order execution processor with an EDGE rather than a RISC or CISC design. The concept is very interesting to me and I understand why companies are beginning to take interest in it. After reading about it and attending the weekly TRIPS meetings I am hoping to learn a lot more about the project.
Work Environment
My work environment is extremely friendly and I find myself very comfortable here. My floor has an unusually large number of women on it. I am told most of the UTCS department's women work on this floor of my building. I sit in a cubicle alongside the PHD students who are here for the summer. The student I am working with, Julia Gilinets, sits right across from me. Students capable of answering my questions are everywhere. The PHD students have been extremely nice about making us feel at home at work and helping us out whenever possible.
Julia and I meet with our mentor, Kathryn McKinley, for a half hour once a week to discuss our progress. I like this format because it gives us a feel for how it would be to work here as a grad student - we are treated very much like the CS graduate students. Julia and I eat alternating lunches with Kathryn. I ate with her for the first time this past Friday. This lunch gives us an opportunity to sit one-on-one with Kathryn and ask her more personal questions about graduate school, balancing work and family, etc. In addition to these meetings with Kathryn, we see her at two group meetings each week. Speedway, the UTCS compilers group, meets every Wednesday. At these meetings graduate students discuss their progress, and we either give feedback on someone's paper or we listen to someone give a practice talk. On Thursdays we attend the TRIPS meeting. Here we discuss the direction in which the TRIPS project is headed, listen to progress reports, and discuss further optimizations.
Housing and Roommate Situation
I am working on this project with another DMP student, Julia Gilinets. We both live in the Goodall Wooten dormitory. We selected this location because it was the least expensive of the options presented to us. Unfortunately, it is not a very pleasant place to live. It is not very clean, and I do not think either of us finds it very satisfactory. We do have single rooms, which is nice, but they are not well kept and the building suffers from neglect. Fortunately, we spend very little time in our rooms.
Conclusion
I am enjoying my time in the DMP program very much so far. I have found lots of things to do outside of work - I run every day and I take Ballroom Dance lessons, attend local ballroom, swing, and salsa dances, and hang out with people I have met in the CS department, the ballroom club, and my dorm quite frequently. The graduate students are very kind and eager to help us whenever possible. Kathryn has been a great mentor, and has been very accommodating as both Julia and I attempt to find research toward thesis projects to do outside of our main project.