The Mini Project: I/O Benchmarks
In this mini-project, you are to locate, understand, and evaluate a particular I/O-bound workload. Find some real application that has serious I/O needs, learn how to run it with a realistic workload, and characterize the application's I/O needs. What we are trying to do (as a class) is to put together an
838 benchmark suite,
so please try to find something that is as relevant and interesting as possible. Also, keep in mind that later on, when people are doing their final projects, they may come to you and ask to use your benchmark, and you should be ready with the answers on how to run it and so forth. Be the expert for your application.
You are to work
on this project.
You have just over three weeks - get going!
Steps towards success
Step 1: Find the application.
This is the hardest part. How can you find a cool, I/O bound application? I wish I had some good advice, other than "be resourceful." One thing is
You must clear your application with me, before proceeding.
Step 2: Characterize the application.
How much I/O does this program do? How large are its data sets? The more you can say, the better. For example, you could use the parameters required by the Peter Chen benchmark to characterize the application, or you could even provide more detail as to its access patterns and so forth. Tools like strace or truss may be useful, as well as other tracing facilities.
Step 3: Produce a short write-up.
Three pages are demanded of you, describing what the application does, characterizing its I/O behavior, and a solid description of how to set-up and run the benchmark. Graphs and pictures are great if you have them. Remember, you are the expert!
After all is said and done, everyone will spend five minutes in class describing their application. As a class, we will try to describe the breadth and thoroughness of our benchmark suite. Perhaps a final project for some poor, interested soul, will be to put the entire suite together and fill in the holes as necessary.