My trip to
After long hours of waiting and running around trains with my huge suitcase, I finally arrived at my new home. It was , I took a cab to Public Safety who drove me to my dorm; at , six hours later than expected, I was in my room.
Lo and behold, there was wireless in the room. After hooking up my computer, and taking my stuff out of the suitcase, I just fell asleep. Not too exciting, but after 12 hours of travel and no food in more than 24 hours, thats the best I could do.
First meeting with Margaret
My second day at
I spend the night watching Family Guy and browsing the net.
To work, now
Friday was my first real work day. Margaret
and I met for some brainstorming. The rest of the day I spent reading papers, thinking
about the project and the data structures I would initially use. I learned that on Fridays
the EE department has cookies and soda, so on my very first Friday in
At night, I walked around campus a bit, read Neuromancer, watched TV and generally procrastinated.
Saturday was quite boring but pleasant
mostly sleep and procrastination. Sunday I went to the gym and around the town.
Margaret was gone to a conference in
Fun with a Bulgarian
At the cookie get together on Friday I learned there was a Bulgarian girl grad student at the CS department, so I found her e-mail, and suggested we meet. On Tuesday she and I went to dinner. It turned out that she likes sushi as much as I do, so we ended up in this tiny Sushi restaurant in the town. Food was good, but quite expensive. We topped the night with some tasty ice cream.
It was nice meeting Sonya not only because she is from my home country but also because she is in the Computer Science department and we had a lot to talk about. Hopefully I will see her soon.
Other random stuff Ive done
Well, Ive been trying to go to the gym and learn my GRE words, and read a book. These together with work and fetching food pretty much take up my entire time. Oh, yeah . I made pasta one of the nights. That was tasty!
And of course, I have been following the
More meetings with Margaret
On Thursday morning I had my first officially scheduled meeting with Margaret. I had read a paper the night before, and Margaret and I talked about it. We were thinking about the different issues that might come up in bidding schemes and economic models in general. On Thursday, again, Margaret and another professor from the EE department went to lunch with me. We didn't talk work, but rather chatted about everyday things.
On the following Monday, the other undergrad student, Gila, from the DMP came to work. It was nice meeting her and knowing that I will have someone in the cubicle next to mine. On Tuesday Gila, Margaret and I had a joint meeting. Margaret asked how my work is going and we agreed that at our one-on-one meeting on Thursday I will show her my code.
I have seriously started working on code this week. The first couple of days it was hard because I was starting from scratch and still didn't have things clear in my head. I was a bit frustrated and felt like I didn't know where I was going with it all, but now things are getting better. I spend a lot of time thinking about exactly what I want to do and then I coded it. After years of work in front of the computer I've learned that it does me no good if I am a good programmer if I haven't thought things over well enough before I begin writing.
I like how Margaret gives me freedom, I don't have set deadlines and she definitely doesn't tell me what to do, so it is more of a creative process on my side. I guess that's what research is all about. In addition to coding, I've been reading quite a few papers, and trying to get relevant ideas out.
As I mentioned earlier, I am to show my work so far on Thursday. Margaret is expecting a demo. What I have so far is a simulator that initializes the network and a number of devices, each with its own characteristics.
Well, let's see ... what's fun this week ...
1) Italy is going to the next round of the
My demo on Thursday went great. It wasn't too exciting to watch the program run because all the output goes to a file, but Margaret was happy that everything ran without a glitch. We spend most of our meeting brainstorming about where to do next and talking about smaller things I had to change in my program. There are certain parts of the simulator that need to be tweaked and further developed, but I feel a lot better knowing that at least the basics are already in code.
We decided that one scenario to look at would be a situation in which more than one sellers are competing for the same client. I decided on several decision schemes we can use and then compare the results. One way to pick a seller would be based on the quality rating, the higher the better. Another option would be picking the seller who asks the lowest price. A slightly smarter decision would be to combine rating and pricing into some function. I plan to explore these options and other and to see what results I will obtain.
Another important thing that came up in our weekly meeting was creating a program that can generate random traces of events. I will be working on this next, parallel to the work on the simulator and the sample scenario.
I took a long weekend because of 4th of July
and went to
On Thursday, back at
This week I wrote two programs for automatic generation of configuration files. The first program generates a .config file with information about the devices participating in the network. After specifying how many devices we will be working with and what maximum characteristic they can have, the program randomly distributes characteristics. For example, for each device we randomly decide how many and what type of resources it can have. The second program would generate a random trace of events. Therefore after I had done these two programs I was able to quickly create .config files in order to run my Simulator.
In terms of the Simulator, I worked on implementing the different decision schemes. I was contemplating on what would be the best way to arrange a number of devices according to one characteristic. For example, for the first scheme ("price only") I had to order sellers from the cheapest to the most expensive one. At first I was thinking of writing my own function to do that, but then I thought I'd look for a smarter way to do it. I remember looking at Comparators in Java some time ago, but I had never actually used them. And since this internship is for learning, that was my chance to learn. I looked up information online and then did a simple example. It turned out to be easier than expected. I went on to write my own classes extending the Comparator class which would do all the work of sorting object based on one or more of their properties.
I felt good about it, because it enhanced my work, it make my code cleaner, and had thought me something new.
During the week I hung out with people from the dorm. I also went to see a movie with my Bulgarian friend from the CS department and a friend of hers.
After meeting with Margaret and letting her know that I had implemented my decision schemes, I told her that I felt a big problem I would have during testing is that "e-bay" ratings of devices are generated randomly. She agreed with me that I had to come up with a better and deterministic way of determining the rating of a device. The rating issue led me to thinking about the unreliability of the system. Currently all transactions were successful so all ratings would have been 10 (the maximum). Therefore I had to introduce unreliability in the system before I could work on the ratings.
Margaret and I thought that putting failure events as part of the trace would work well for now. After I did that I could play around with the ratings. I thought that a way to rate a device would be to take into account the total number of transactions in the system, the number of transaction that the specific device has completed successfully, as well as the current energy status of the node. Putting those into a function would give me a good idea the rating of a device.
The other very exciting work-related thing that happened this weekend was the CRA-W/CDC Workshop on Computer Architecture. Margaret was one of the organizers of the workshop and thought that Gila and I should go and mingle with people. The workshop was intended for graduate students and it concerned topics such as current and future research, as well as ideas on how to write a grant proposal, apply for a job, and choose between academia and industry. Even though I couldn't relate to a lot of things because I am an undergrad, it was nice talking to people and hearing about different universities.
The most exciting thing was meeting a researcher from the Intel Corporation who also lectures at MIT. He encouraged me to apply there. Later, Margaret said he was quite pleased to meet me.
It was a productive week!
During the weekend I went to
Speaking of books, I've been reading The Code Book and I am almost done with it. It's been truly fascinating and informative. I've gotten to the last chapter which is on quantum cryptography, I am sure that would be a great ending - the future of cryptography.
I worked on the failure events in my system. I designed it in such a way that I could specify what percent of the events of a specific node have to be failures. The bulk of my week was spent trying out different schemes for rating the devices. Some things that I considered including in the rating scheme were energy left, connectivity to other nodes, number of successful requests, number of failures, total down time, etc. Finally I decided to stick with something simple, clear, and sense-making. I used to ratios - number of received requests over number of accepted and number of successfully completed over number of accepted. This would give me a good idea of how good a node is about accepting requests, and how reliable it is once a request is accepted.
Looking back at it now, it seems like a trivial task but I really spend quite a bit of time experimenting with different schemes and seeing what results I get. I also started thinking of ways to evaluate what I have so far. Some of the parameters I identified were length of experiment, size of the network - in terms of number of nodes, and xy coordinates, the failure rates of nodes. Metric are thought about included number of successfully completed deals between nodes, the total number of bankrupts in the system, the number of transaction that were interrupted by a failure, etc.
My boyfriend came to visit at the end of the
week. I was happy to see him and excited to show him around
I have been struggling this week. I have a lot of the pieces to my project in place, but the results I am getting don't make much sense. The scheme seem to be performing similarly event though one only uses price to judge a node, while another only uses a node's rating. I spent a couple of days trying different scenarios, different trace files and methods for evaluation my decision schemes. Once I had had enough of this, I thought that instead of trying to change my results to the desires ones I should look more carefully into the program and try to understand why the results would always be so similar. On Thursday I met with Margaret and after talking for a while we decided that I need to increase the density of the network. I believe that part of the reason the schemes were performing the same is that the network was so sparse that most times a decision needed to be made there were so few choices that it made no difference what scheme we employed.
More hanging out with promising young scientist living at my dorm :-D
I've been able to come to conclusions about why certain things in the simulator don't perform as expected. I also worked on some new experiments. I feel I am getting to the point where I need to make final changed to the code, run experiments, and start analyzing results. One new idea that popped up this week was the introduction of a baseline scheme. In order to be able to better compare decision schemes it makes sense to introduce a base line. In this case that would be a scheme which always picks the seller with the lowest node ID.
Some things I have observed so far by running experiments include the following:
On Thursday I went to a barbecue organized by James . He is one of Margaret's grad students and was kind enough to invite me. I got the chance to hand out with a bunch of grad students - no complains there :) The same night I also partied with my undergrad friends at the dorm. This was their last night together since everyone is leaving either Friday or Saturday. Speaking of which, I was a bit crushed when people left. I really feel like I made some great friends here, and wish I could have them around longer. It was so nice to have like-minded science people to spend the nights with. I will miss them!
The plan for this week is:
So, I have been pretty good at following the plan I outlined above. I did work on some more code towards the beginning of the week. The first significant thing I did was change my fixed price scheme, to a dynamic one. Now the resource price on a node changes depending on the energy budget of the node. Therefore, the more battery gets drained out, the higher the price of that seller gets. The second big deal this week was a bug fix in my adaptive scheme. When those two things were completed, my results changed dramatically and the adaptive scheme started constantly outperforming both the baseline and price-only algorithms. Hooray!
This week has been entirely devoted to running final experiments and writing my final paper. It has been tough but exciting because this is the first time I am writing a real research paper on work Ive done by myself. I realized how important paper outlines are, I think this one saved my life. I couldnt have written anything like this if I had not first thought it through, over nad over and over again.
I am including the paper as my final report here on this website. I suspect that I will be working on it past the end of my internship so for up to date information on my work and I you should come to www.mtholyoke.edu/~makazand
much fun, mostly sadness for having to leave
Maria Kazandjieva © 2006 % firstname.lastname@example.org