Week 1

(5/16/2011 - 5/20/2011)
This week was my first week doing research in Fort Collins with Professor Strout. I got here on the 15th and started work on the 16th. I was introduced to many people in the Computer Science department on the first day here at Colorado State University. I also met the other students who would be working in the HPC lab where I would be working. We all went out to lunch together at Woody's and got to know each other. It was a intimidating getting started at first but once I knew what project I was going to be doing I felt a little more comfortable and began to work.

I worked on creating a web page in PHP for a program called ReorderMM that reorders sparce matricies according to known algorithms and outputs a new matrix file. This is done to try to improve the performance of the marticies. I started with the PHP page by adding a simple uploading form to it  and a download link then slowly added more features, making sure the simple stuff worked before going on. I got stuck on executing the c++ program from the PHP script near the end of the week but luckly the week ended at this point and I could wait the weekend for a response to my message for help.

Week 2

(5/23/2011 - 5/27/2011)
I spent part of this week working on the PHP web page some more. We figured out the problem with the exec function not working correctly. It turns out it was an issue with where the program being called was compiled and not my code. After this problem was fixed I was able to get going again with the page. I added a bunch of new features such as stats about the matrix file uploaded and little things like when to delete files on the server and security code.

On wednesday I was told to work on a Task Graph. One of the graduate students put together a little description of how to actually run the program and create my own. I spent time going through his "tutorial" with a few little hitches along the way and got it all working. Then I went on to add my own file into there with my task graph and it was fairly simple and worked!

Currently I am still working more on the web page and I also have another project called Moldyn where I am starting to create a program that takes the interactions array coming in and creates a tiling of dependencies then creates a graph using the same task graph method I used above. Most of the code is already provided such as the tiling and interactions code, I just need to integrate the Moldyn with the task graph code.

Week 3

(5/30/2011 - 6/3/2011)
This week was a very short week because of memorial day but I got a lot done. I started incorporating the Moldyn code into the Task Graph code. I had a list of steps written out of what I needed to do in order to get this done. I spent time going through these steps one by one as the week went on and made a lot of progress. There were a few more things added to my list of things to do this week such as adding the creation of a dependency graph with color coded tiles to the Task Graph program. This dependency graph is a great visualization tool for Moldyn and it also helps when it comes to debugging.

Week 4

(6/6/2011 - 6/10/2011)
I worked on the dependency graph added to my list of things to do last week. I got that working and also created an algorithm for color coding it. Each tile generated had to have a distinct color and there could be any number of tiles so this algorithm solved that issue. I also finished up all the other tasks such as creating the actual task graph for the tiles/tasks. I started working on adding in the computations for Moldyn as well but I ran into problems with that and still have some work to do. The last thing I did this week was write a report. The report was written about the algorithms and graphs I created, so that other people in the HPC group here could read it and know what I am working on.

Week 5

(6/13/2011 - 6/17/2011)
I finished a lot of work this week. During my meeting with my mentor I was given more graph work to do which I finished and I also worked some more on my paper. I had to take the task graph and color it and reorder the partitions to make it better. I did run into problems with the moldyn computation code I was working on last week though. I had issues integrating all the libraries into the task graph interface and actually using the computations. I still don't have that part working yet but I'm making a lot of progress with other parts of my project. Looking for all the code that I need for the moldyn computation in the previously existing code has been a pain but the code is very well commented which has been very helpful.

Week 6

(6/20/2011 - 6/24/2044)
This week I spent a lot of time cleaning up my code. There were still errors to fix, some very strange ones from last week and it took some time but I was able to take care of those. Cleaning up the code and making sure there weren't any memory leaks took a while but it paid off in the end. Fixing those issues helped with one of the problems with the code that I was stuck on for a while. I also wrote a lot of my report. I added more graphs and two tables. My report is starting to look more and more like an actual paper which is nice.

Week 7

(6/27/2011 - 7/1/2011)
This week went by very fast. I worked more on my main project and got a few new assignments as well. I fixed more little things in my project and ran a few tests on it. During my meeting, my mentor realized that there was an issue with the code I copied into my project and now I am currently unable to run any tests until it is resolved since it might affect the results. I started to learn how to use OpenMP so that I can create a parallelized version of the moldyn code I am working with using OpenMP. This is so that I can compare the time results of the OpenMP code to the Task Graph code. As usual, I added more to my paper and we changed the format of it so now it is much longer.

Week 8

(7/4/2011 - 7/8/2011)
I worked on fixing bugs this week. I figured out how bad the bug from week 7 was effecting the code by running tests on the code. It turned out to be a major issue. I haven't fixed this problem completely yet but I'm working on it. I also added more to my paper about the work I've been doing and added some citations for other papers. I added code to the course task graph to output a colored task graph so that it can be looked at with the fine grained task graph. It is now easy to tell which color is which tile number. Another piece of code I added is used to sort the interactions list before doing the tiling which helps make it run faster.

Week 9

(7/11/2011 - 7/15/2011)
I finally fixed the problem from week 7 this week. Rather than reading in a file of interactions, the code now takes in PDB files which specity coordinates for each atom. Once these coordinates are read, the code figures out the interactions by taking into account the near by atoms within a specified angstrom range. This creates the interactions and fixes the problem. I also spent some time writing code that does a calculation of the average parallelism for the task graph which I will be using to graph my results next week.

Week 10

(7/25/2011 - 7/29/2011)
This week was very busy. Since it was my last week working on my DREU I had to finishing everything up and finish up my report as well. I had to figure out how many tiles could fit on the L2 cache of the computer I was using before I could run any tests which took some time but it was interesting. I finally ran tests on my code and came up with some results that I graphed and used in my paper. I also gave a presentation about the work I did over the summer to the rest of the students in the HPC group here. I learned a lot from this experience about what research is like and about graduate school.