Simultaneous multithreading (SMT) represents a fundamental shift in processor capability. SMT's ability to execute multiple threads simultaneously within a single CPU offers tremendous potential performance benefits. However, the structure and behavior of software affects the extent to which this potential can be achieved. Consequently, just like the earlier arrival of multiprocessors, the advent of SMT processors prompts a needed re-evaluation of software that will run on them. This evaluation is complicated, since SMT adopts architectural features and operating costs of both its predecessors (uniprocessors and multiprocessors). The crucial task for researchers is to determine which software structures and policies − multiprocessor, uniprocessor, or neither − are most appropriate for SMT. This paper evaluates how SMT's changes to the underlying hardware affects server software, and in particular, SMT’s effects on memory allocation and synchronization. Using detailed s...
Luke McDowell, Susan J. Eggers, Steven D. Gribble