The beginning of the week was spent setting up my workstation, which included
installing Linux, Cilk, and Cilk++. Initially, I encountered some problems with installing the Linux OS.
I had the wrong version, it wouldn't install, and ultimately the graphics card on my computer wasn't working. It took a full day (
and three computers) just to get set up. From there, I began to research the order
maintenance algorithm that I would be coding. If you would like more information
on this algorithm, you can find the article by Dietz and Sleator here.
In summary, there are two algorithms: a simple amortized time algorithm and a real-time algorithm.
Later, I will begin to work on the second, real-time algorithm, but my current
focus is on the amortized time algorithm. The amortized time algorithm requires a list, in this case a linked list,
of numbered items. Three functions (insert, delete, and order) are implemented to maintain this list.
By the end of the week, I had C code that implemented the algorithm and was working out some bugs in my Cilk installation
so that I might begin adapting the code to run in parallel. When I first installed Cilk, it seems that only some of the files
installed correctly. Everything looked normal in the file system, but whenever I tried to compile my code, the command was unknown.
I initially thought it might be a path problem and dedicated some time to editing that. Ultimately, I gave up on that and just
tried reinstalling Cilk from a different package, and it worked without problems. I wrote a brief test program, including some locks, to
get a feel for how Cilk worked and to make sure that my installation was fully functioning. This program simply broke a parent thread
into two child threads, ran some addition and subtraction, and merged the threads. It worked after some minor debugging.
Consequently, I began modifying my serialized C code to prepare it for Cilk. Initially, I began writing my own locks as well.
This week, I am very much the new person in the lab. Many people started a couple weeks ago, and everyone already knows each other;
however, everyone has been very nice. The lab, about 10 students each working on individual projects under different professors,
goes to lunch every day in the Washington University student center. We eat in the "fun room", where there are numerous TVs and video games.
It's a great time to get to know everyone because it's so laid back.
|