A system for structured high-performance multithreaded programming in Windows NT

  • Authors:
  • John Thornley;K. Mani Chandy;Hiroshi Ishii

  • Affiliations:
  • Computer Science Department, California Institute of Technology, Pasadena, CA;Computer Science Department, California Institute of Technology, Pasadena, CA;Computer Science Department, California Institute of Technology, Pasadena, CA

  • Venue:
  • WINSYM'98 Proceedings of the 2nd conference on USENIX Windows NT Symposium - Volume 2
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

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.