This is a post in our Simple Science Descriptions series of pieces written with the Up-Goer Five Text Editor restricting writers to the ten hundred most used words in English. It's harder than you might think! Send your entries (preferably under 350 words) to jeanyang [at] mit [dot] edu.
My work is about how to make computers use space well. All computers have a lot of space for work that takes a long time to get to. Computers also have other space that is fast to get to, but there isn't much of it. Most of the stuff people do with computers doesn't fit in the fast space, so the computer has to decide what to keep in the fast space and what to put in the slow space. This is hard to do because the computer just follows orders and doesn't know what the person using the computer really wants. So it has to guess. Even worse, the person using the computer often doesn't exactly know what they want, so it's really left to the computer to guess!
In new computers, this is harder because a new computer is really several computers in one, and the fast space for one computer will not be quite so fast for the rest of the computers. This means that its not enough to decide just what to keep in the fast space, but the computer should also decide where to put things. It is even harder because it turns out that it is often a good idea to take space from one computer and give it to another. But you want to make sure you don't take too much from one computer and slow it down too much. Once you've done that, you need to make sure all of the computers agree about where things go just in case they happen to work on the same stuff.
All of these different concerns make it a very hard problem, and the best we can hope for is to get close to the best answer. My job is to build computers that let us do this at all, and then come up with ways to get closer to the best answer. I also try to do this in ways that make sense for some deep reason, instead of ways that seem to work but we don't understand and may not work always.
- Nathan Beckmann, Ph.D. student in Computer Science