November/December issue of acmqueue The November/December issue of acmqueue is out now

acmqueue is free for ACM professional members. Non-members can purchase an annual subscription for $19.99 or a single issue for $6.99.

Download the app from iTunes or Google Play,
or view within your browser.

More information here

Virtual Machines

  Download PDF version of this article PDF

ITEM not available


Originally published in Queue vol. 9, no. 2
see this item in the ACM Digital Library



Bob Supnik - Simulators
Simulators are a form of "virtual machine" intended to address a simple problem: the absence of real hardware. Simulators for past systems address the loss of real hardware and preserve the usability of software after real hardware has vanished. Simulators for future systems address the variability of future hardware designs and facilitate the development of software before real hardware exists.

Poul-Henning Kamp, Robert Watson - Building Systems to Be Shared, Securely
The history of computing has been characterized by continuous transformation resulting from the dramatic increases in performance and drops in price described by Moore's law. Computing "power" has migrated from centralized mainframes/servers to distributed systems and the commodity desktop. Despite these changes, system sharing remains an important tool for computing. From the multitasking, file-sharing, and virtual machines of the desktop environment to the large-scale sharing of server-class ISP hardware in collocation centers, safely sharing hardware between mutually untrusting parties requires addressing critical concerns of accidental and malicious damage.

Mendel Rosenblum - The Reincarnation of Virtual Machines
The term "virtual machine" initially described a 1960s operating system concept: a software abstraction with the looks of a computer system's hardware (real machine). Forty years later, the term encompasses a large range of abstractions - for example, Java virtual machines that don't match an existing real machine. Despite the variations, in all definitions the virtual machine is a target for a programmer or compilation system. In other words, software is written to run on the virtual machine.


(newest first)

DevonMcC | Wed, 20 Jul 2011 15:56:29 UTC

This article asserts "In interpreted languages, a portion of the software-to-hardware mapping occurs on the fly and in realtime, leaving little time for thorough instruction-level parallelism analysis..."

Unless you're using an array language, in which case finding parallelism is often trivial.

Monty Hall | Tue, 15 Mar 2011 18:04:11 UTC

Honestly, they should integrate it into the java language as another primitve(vec4f/vec2d) with wrapper classes like int, char, long, short, etc. I'd have to think even if the native hardware doesn't support SIMD, the data type's intent is very clear such that the jvm can produce an optimized emulation vs. "element1 += blah, element2 += blah...." But I'm not holding my breath, it took over a decade for java to get the foreach construct.

Mark Anon | Sun, 27 Feb 2011 18:38:51 UTC

JNI is and has always been a Java developer's worst nightmare. If you have ever tried debugging it, you know what I mean. The Java specification really needs to move towards better abstracted support for vector and parallelism exploits.

Leave this field empty

Post a Comment:

© 2016 ACM, Inc. All Rights Reserved.