skip to main content
10.1145/1640134.1640149acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Hosting an object heap on manycore hardware: an exploration

Published:26 October 2009Publication History

ABSTRACT

In order to construct a test-bed for investigating new programming paradigms for future "manycore" systems (i.e. those with at least a thousand cores), we are building a Smalltalk virtual machine that attempts to efficiently use a collection of 56-on-chip caches of 64KB each to host a multi-megabyte object heap. In addition to the cost of inter-core communication, two hardware characteristics influenced our design: the absence of hardware-provided cache-coherence, and the inability to move a single object from one core's cache to another's without changing its address. Our design relies on an object table, and the exploitation of a user-managed caching regime for read-mostly objects. At almost every stage of our process, we obtained measurements in order to guide the evolution of our system.

The architecture and performance characteristics of a manycore platform confound old intuitions by deviating from both traditional multicore systems and from distributed systems. The implementor confronts a wide variety of design choices, such as when to share address space, when to share memory as opposed to sending a message, and how to eke out the most performance from a memory system that is far more tightly integrated than a distributed system yet far less centralized than in a several-core system. Our system is far from complete, let alone optimal, but our experiences have helped us develop new intuitions needed to rise to the manycore software challenge.

References

  1. IBM, "The IBM® Blue Gene®/P Solution," 2009; http://www-03.ibm.com/systems/deepcomputing/bluegene/.Google ScholarGoogle Scholar
  2. IBM, "IBM Cell Broadband Engine technology," 2009; http://www-03.ibm.com/technology/cell/index.html.Google ScholarGoogle Scholar
  3. Tilera Corp., "Tilera," 2009; http://www.tilera.com.Google ScholarGoogle Scholar
  4. Squeak.org, "Squeak," 2009; http://squeak.org/.Google ScholarGoogle Scholar
  5. J. Pallas and D. Ungar, "Multiprocessor Smalltalk: a case study of a multiprocessor-based programming environment," PLDI, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. I. Pallas, "Multiprocessor Smalltalk: implementation, performance, and analysis," Computer Science, Stanford University, Stanford, CA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. P. Thacker and L. C. Stewart, "Firefly: A multiprocessor workstation," ASPLOS II, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. M. Ungar and D. A. Patterson, "Berkeley Smalltalk: Who knows where the time goes?," Smalltalk-80: History, Words of Advice, G. Krasner, ed., Addison-Wesley, 1983, pp. 189-206.Google ScholarGoogle Scholar
  9. D. Ungar, "Generation Scavenging: A non-disruptive high performance storage reclamation algorithm," Software Engineering Symposium on Practical Software Development Environments, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. M. Ungar, The Design and Evaluation of a High Performance Smalltalk System, MIT Press, 1987, p. 250. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. MIT Artificial Intelligence Laboratory, "The Jellybean Machine," 1998; http://cva.stanford.edu/projects/j-machine/.Google ScholarGoogle Scholar
  12. W. Horvat, Concurrent Smalltalk on the Message-Driven Processor, MIT Computer Science and Artificial Intelligence Lab, 1991; http://dspace.mit.edu/handle/1721.1/7090.Google ScholarGoogle Scholar
  13. I. Williams, "The Mushroom Machine - An Architecture for Symbolic Processing," IEE Colloquium on VLSI and Architectures for Symbolic Processing, 1989.Google ScholarGoogle Scholar
  14. M. Wolczko and I. Williams, "The influence of the object-oriented language model on a supporting architecture," 26th Hawaii Conference on System Science, 1994.Google ScholarGoogle Scholar
  15. I. Williams and M. Wolczko, "An Object-Based Memory Architecture," Fourth International Workshop on Persistent Object Systems, 1991.Google ScholarGoogle Scholar
  16. J. Stokes, "MIT startup raises multicore bar with new 64-core CPU," 2007.Google ScholarGoogle Scholar
  17. Tilera Corp., Multicore Development Environment - Product Brief, T. Corp., 2008; http://tilera.com/pdf/ProductBrief_MDE_Web_v2.pdf.Google ScholarGoogle Scholar
  18. D. Ingalls, et al., "Back to the future: The story of Squeak, A practical Smalltalk written in itself," OOPSLA, 1997; http://www.vpri.org/pdf/backto_TR-1997-001.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Reenskaug, "The Model-View-Controller (MVC). Its Past and Present," JAOO, 2003; http://heim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf.Google ScholarGoogle Scholar
  20. T. Reenskaug, MODELS - VIEWS - CONTROLLERS, 1979; http://folk.uio.no/trygver/1979/mvc-2/1979-12-MVC.pdf.Google ScholarGoogle Scholar
  21. T. Reenskaug, "MVC Xerox PARC 1978-79," Trygve/MVC.Google ScholarGoogle Scholar
  22. Tilera Corp., TileraPro64 Processor - Product Brief, T. Corp., 2008; http://tilera.com/pdf/ProductBrief_TILEPro64_Web_v2.pdfGoogle ScholarGoogle Scholar

Index Terms

  1. Hosting an object heap on manycore hardware: an exploration

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader
                    About Cookies On This Site

                    We use cookies to ensure that we give you the best experience on our website.

                    Learn more

                    Got it!