Jupiter: A Modular and Extensible JVM
Patrick W. Doyle, Tarek S. Abdelrahman, Edward S. Rogers, Node-specific MemorySources · 2001
This paper describes our work-in-progress on the design and implementation of Jupiter: a modular and extensible Java Virtual Machine (JVM) infrastructure. Jupiter serves as a vehicle for our research on JVM architectures that deliver scalable high performance for scientific applications on large numbers of processors. Our goal is to run Jupiter on our 128-processor cluster of PC workstations that supports shared memory in software. Jupiter is constructed out of many discrete modules with small, simple interfaces, much like Unix shells build complex command pipelines out of discrete programs. This structure allows rapid prototyping of our research ideas by confining changes in JVM design to a small number of modules. The structure is also e#cient despite its flexibility, resulting in no loss in performance. We describe the basic architecture of Jupiter and give an example of how its components may be used to compose object creation subsystems with di#erent locality policies. 1