|
A System for Structured High-Performance Multithreaded Programming in Windows NT
John Thornley, K. Mani Chandy, and Hiroshi Ishii
California Institute of Technology
Abstract
With the advent of inexpensive multiprocessor PCs, multithreading is poised to play an
important role in computationally intensive business and personal computing applications,
as well as in science and engineering. However, the difficulty of multithreaded
programming remains a major obstacle. Windows NT support for threads is well suited
to systems programming, but is too unstructured when multithreading is used for the
purpose of speeding up program execution. In this paper, we describe a system for
structured multithreaded programming. Thread creation operations are multithreaded
variants of blocks and loops, and synchronization objects are based on Boolean flags and
integer counters. With this system, most multithreaded program development can be
performed using traditional sequential methods and tools. The system is integrated with
Windows NT and Microsoft Developer Studio Visual C++. We are developing a
variety of applications in collaboration with other researchers, to demonstrate the power
of structured multithreaded programming on commodity multiprocessors running
Windows NT. In one benchmark application (aircraft route optimization), we achieved
better performance on a quad-processor Pentium Pro system than the best results reported
on expensive supercomputers.
|