We've just released the simulation infrastructure for the Memory Scheduling Championship (MSC), to be held at ISCA this year.
The central piece in the infrastructure is USIMM, the Utah SImulated Memory Module. It reads in application traces, models the progression of application instructions through the reorder buffers of a multi-core processor, and manages the memory controller read/write queues. Every memory cycle, USIMM checks various DRAM timing parameters to figure out the set of memory commands that can be issued in that cycle. It then hands control to a scheduler function that picks a command from this candidate set. An MSC contestant will only have to modify the scheduler function, i.e., restrict all of your changes to scheduler.c and scheduler.h. This clean interface makes it very easy to produce basic schedulers. Each of my students produced a simple scheduler in the matter of hours; these have been included in the code distribution as examples to help get one started.
In the coming weeks, we'll release a number of traces that will be used for the competition. The initial distribution includes five short single-thread traces from PARSEC that people can use for initial testing.
The competition will be judged in three different tracks: performance, energy-delay-product (EDP), and performance-fairness-product (PFP). The final results will be based on the most current version of USIMM, as of June 1st 2012.
We request that contestants focus on scheduling algorithms that are easily implementable, i.e., doable within a few processor cycles and within a 68 KB storage budget. A program committee will evaluate the implementability of your algorithm, among other things.
We'll post updates and bug fixes in the comments section of this blog post as well as to the firstname.lastname@example.org mailing list (sign up here). Users are welcome to use the blog or mailing list to post their own suggestions, questions, or bug reports. Email email@example.com if you have a question for just the code developers.
Code Updated on 04/17/2012:
Code download: http://www.cs.utah.edu/~rajeev/usimm-v1.3.tar.gz
Changes in Version 1.1: http://www.cs.utah.edu/~rajeev/pubs/usimm-appA.pdf
Changes in Version 1.2: http://www.cs.utah.edu/~rajeev/pubs/usimm-appB.pdf
Changes in Version 1.3: http://www.cs.utah.edu/~rajeev/pubs/usimm-appC.pdf
USIMM Tech Report: http://www.cs.utah.edu/~rajeev/pubs/usimm.pdf
The contest website: http://www.cs.utah.edu/~rajeev/jwac12/
Users mailing list sign-up: http://mailman.cs.utah.edu/mailman/listinfo/usimm-users