Parallel Software Caches

We investigate the construction and application of parallel software caches in shared memory multiprocessors. To re-use intermediate results in time-consuming parallel applications, all threads store them in, and try to retrieve them from, a common data structure called parallel software cache. This is especially advantageous in irregular applications where re-use by scheduling at compile time is not possible. A parallel software cache is based on a readers/writers lock, i. e., multiple threads may read simultaneously but only one thread can alter the cache after a miss. To increase utilization, the cache has a number of slots that can be updated separately. We analyze the potential performance gains of parallel software caches and present results from two example applications.

[1]  Anoop Gupta,et al.  The Stanford Dash multiprocessor , 1992, Computer.

[2]  Jim Handy,et al.  The cache memory book , 1993 .

[3]  Ralph Grishman,et al.  The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer , 1983, IEEE Transactions on Computers.

[4]  Wolfgang J. Paul,et al.  On the Physical Design of PRAMs , 1992, Comput. J..

[5]  Arno Formella,et al.  Generalized Fisheye Views of Graphs , 1995, Graph Drawing.

[6]  Abraham Silberschatz,et al.  Operating System Concepts, 3rd Edition , 1991 .

[7]  Allan Porterfield,et al.  The Tera computer system , 1990, ICS '90.

[8]  A. Gottleib,et al.  The nyu ultracomputer- designing a mimd shared memory parallel computer , 1983 .

[9]  Allan Gottlieb,et al.  Highly parallel computing , 1989, Benjamin/Cummings Series in computer science and engineering.

[10]  Arno Formella,et al.  Building the 4 processor SB-PRAM prototype , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[11]  Wolfgang J. Paul,et al.  Realization of PRAMs: Processor Design , 1994, WDAG.

[12]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[13]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[14]  B J Smith,et al.  A pipelined, shared resource MIMD computer , 1986 .

[15]  Abraham Silberschatz,et al.  A Theory of Correct Locking Protocols for Database Systems , 1981, VLDB.

[16]  Thomas Rauber,et al.  The Programming Environment of the SB-PRAM , 1995, Parallel and Distributed Computing and Systems.

[17]  Marcin Paprzycki,et al.  Parallel computing works! , 1996, IEEE Parallel & Distributed Technology: Systems & Applications.