Parallel software caches

  • Arno Formella
  • Jörg Keller
Systems and Applications
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1253)


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.


Shared Memory Replacement Strategy Cache Size Sequential Program Address Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abolhassan, F., Drefenstedt, R., Keller, J., Paul, W. J., Scheerer, D.: On the physical design of PRAMs. Comput. J. 36 (1993) 756–762Google Scholar
  2. 2.
    Alverson, R., Callahan, D., Cummings, D., Koblenz, B., Porterfield, A., Smith, B.: The Tera computer system. In Proc. Int.l Conf. on Supercomputing (1990) 1–6Google Scholar
  3. 3.
    Bach, P., Braun, M., Formella, A., Friedrich, J., Grün, T., Lichtenau, C.: Building the 4 Processor SB-PRAM Prototype. In Proc. Hawaii Int.l Symp. on System Sciences (1997) 14–23Google Scholar
  4. 4.
    Formella, A., Gill, C.: Ray Tracing: A Quantitative Analysis and a New Practical Algorithm. Visual Comput. 11 (1995) 465–476Google Scholar
  5. 5.
    Formella, A., Keller, J.: Generalized Fisheye Views of Graphs. Proc. Graph Drawing '95 (1995) 242–253Google Scholar
  6. 6.
    Fussell, D.S., Kedem, Z., Silberschatz, A.: A Theory of Correct Locking Protocols for Database Systems. Proc. Int.l Conf. on Very Large Database Systems (1981) 112–124Google Scholar
  7. 7.
    Gottlieb, A., Grishman, R., Kruskal, C. P., McAuliffe, K. P., Rudolph, L., Snir, M.: The NYU ultracomputer — designing an MIMD shared memory parallel computer. IEEE Trans. Comput. C-32 (1983) 175–189.Google Scholar
  8. 8.
    Handy, J.: The Cache Memory Book. Academic Press, San Diego, CA (1993)Google Scholar
  9. 9.
    Lenoski, D., Laudon, J., Gharachorloo, K., Weber, W.-D., Gupta, A., Hennessy, J., Horowitz, M., Lam, M. S. The Stanford DASH multiprocessor. Comput. 25 (1992) 63–79Google Scholar
  10. 10.
    Pfister, G.F., Brantley, W.C., George, D.A., Harvey, S.L., Kleinfelder, W.J., McAuliffe, K.P., Melton, E.A., Norton, V.A., Weiss, J: The IBM research parallel processor prototype (RP3): Introduction and architecture. In Proc. Int.l Conf. on Parallel Processing (1985) 764–771Google Scholar
  11. 11.
    Silberschatz, A., Peterson, J. L., Galvin, P. B.: Operating System Concepts, 3rd Edition. Addison-Wesley, Reading, MA (1991)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Arno Formella
    • 1
  • Jörg Keller
    • 2
  1. 1.FB 14 InformatikUniversität des SaarlandesSaarbrückenGermany
  2. 2.FB InformatikFernUniversität-GHSHagenGermany

Personalised recommendations