Project 69: Virtual Machines
Virtual machine technology provides significant potential advantages
for portability and reproducibility of numerical results across a
wide range of underlying host architectures. Examples of such
environments are the Java Virtual Machine and the .NET environment,
along with the corresponding Java and C# languages. Of concern to
WG 2.5 are the performance of scientific software in such environments,
as well as the tools provided to facilitate the development and
maintenance of mathematical software.
WG 2.5 provided input to and support for the Numerics Working Group of
the Java Grande Forum during the period 1998-2003. Since that time the
Working Group has continued to monitor progress of numerical software
in Java and C#.
---------------------------------------------------------------------
Oxford 1996:
===========
The people are: Hanson, Vouk, Grosse, Ford, Hemker, and Gentleman. The
description will be prepared by Ford, Gentleman, Grosse, and Hanson.
Patras 1998:
============
Java (Numerical Concerns)
-------------------------
Boisvert led a wide ranging discussion of the various groups and
organisations now discussing changes to Java (some of which have
significant implications for the numerical community). In particular
the Java Numerics WG and the Java Grande Forum are two groups who are
considering changes to the language and, if we monitor/participate in
their discussions, we could have an effect on the outcome. The
aggressive timetable of these meetings requires that our participation
be 'off-line' and interactive as many of the recommendations of these
groups are due in a matter of months. Key issues that were identified
and discussed included:
Complex Arithmetic - The need for a mechanism whereby complex
arithmetic could be efficiently implemented.
Efficient use of local Hardware - The trade-offs between
'bitwise reproduceability' and efficiency.
Arrays - Improvements to multidimensional array handling.
Transcendentals - Better definitions and specifications for
the transcendental functions.
Boisvert agreed to circulate a position paper on the key issues and
would like support and comments from the WG. Later in the meeting the
WG agreed to write a letter in support of Boisvert's activities and to
endorse his participation on the various Java committees.
Purdue 1999:
============
Report on Java Grande Forum
---------------------------
Boisvert presented an extensive overview of the numerical issues being
discussed and the mandate of the JGF. (For details see the website
http://math.nist.gov/javanumerics/ ).
Ottawa 2000:
============
Boisvert reported on Java activities and the NIST Digital Library of
Mathematical Functions. He presented a summary of recent developments
related to Java and Java Numerics in particular. See the JGF website
http://math.nist.gov/javanumerics/ for the latest information.
Resolution on Java Numerics Support
-----------------------------------
The WG passed a resolution strongly endorsing Ron Boisvert's
continuing participation in the Java Numerics meetings and activities.
The resolution (which passed unanimously) was: "WG 2.5 continues to
strongly support the efforts of the Numerics Working Group (NWG) of
the Java Grande Forum to represent the interests of the numerical
software community in the evolution of the Java language and its
environment."
Amsterdam 2001:
===============
A discussion of recent activities of Java Numerics and of the
activities of Java Grande Forum was led by Boisvert. Sun has responded
to some of the concerns raised by these groups so it was felt that we
should continue to participate in these and related activities.
Java Benchmarks
---------------
Boisvert presented a summary of recent investigations related to
accuracy and cost of numerical methods implemented in Java. Inherent
performance penalties associated with representing small objects (such
as complex numbers) were noted. One effect is the creation of numerous
temporary objects, whose garbage collection can overwhelm a
computation. It was pointed out that on a recent VM some scientific
benchmarks were achieving levels comparable to those achieved with C,
but performance penalties (by a factor of up to 50) are still found on
some VMs.
Portland 2002:
=============
Boisvert presented a detailed report on some recent activities of this
project. The activity has been focused on the meetings of the Java
Grande Forum and their attempt to clarify/improve the standard to
obtain clear function semantics. In particular requests have been
submitted to allow multi-dimensional arrays, and FMAs (fused
multiply/add). There currently is some reluctance of companies and
government to become more actively involved because of ongoing
litigation involving 'ownership' of Java.
There is some hope that future changes to Java which are of interest
to our community may be considered. Such changes include access to
machine constants and the addition of new intrinsic mathematical
functions.
Gaffney's Technical talk "Optimization from a Java interface -
Numerical methods framework" at the WG meeting can be considered to be
a report also on activities related to this project
Strobl 2003:
============
Boisvert presented a review of recent developments in this area. In
particular he noted that the Java Grande forum was winding down. The
technical issues have been identified and a resolution proposed but it
is not clear whether they will be implemented. Recent activity in the
C-Sharp community should be monitored as there seems to be an interest
in advocating the use of this language for scientific computing.
Washington 2004:
================
Boisvert presented at the meeting a review of recent developments in
this area. In particular he noted that the Java Grande forum was now
dormant. A JAVA Numerics web page http://math.nist.gov/javanumerics/
was still maintained at NIST. Ford discussed the need for JAVA
wrappers for standard libraries. Pozo's talk at the Workshop is an
example of the activities that are related to this project.
Hong Kong 2005:
===============
Ron Boisvert reported that the technical issues related to numerical
computing and Java are largely solved. What remains to address is
standardization issues. Boisvert also reported that there is a
continuing interest for using Java for numerical computing. As an
example, he showed that JAMA, a Java subset of Linpack, maintained by
NIST, is being increasingly downloaded. There were ca. 4000 downloads
in the year 2000, and ca. 14 000 downloads are expected in 2005.
Finally, Boisvert reported on performance figures of 614 MFlops for
the Java version of the NIST SciMark benchmark under Sun VM 1.5 on
Dual Opteron.
Prescott 2006:
==============
Boisvert presented a review of recent developments in this area. While
some related forums have become dormant there are still some
developments that should be monitored. Many of the significant issues
seem to be political rather than technical. Nevertheless decisions
made with respect to Java and other languages (such as C#) could have
implications for our community. Vouk pointed out that other
virtualization concepts are receiving attention and these should also
be monitored. (An example is the notion of virtual 'services'.)
Uppsala 2007:
=============
This project remains active although there was no formal
report. Several members are monitoring recent developments with
respect to Java and other languages (such as C#).
Toronto 2008:
=============
This project remains active although there was no formal report.
Raleigh 2009:
=============
It was noted that virtualization is now a big deal, HPC in cloud
computing.
This project has recently been dormant, but some members felt that it
could become relevant and should therefore remain as an active project.
Leuven 2010:
============
Ron Boisvert made a short presentation. The topic is still important.
Vouk pointed out that while virtual machines have become main stream,
there are still related issues of interest for WG 2.5.
Boulder 2011:
=============
Although there was no report, members felt that this was still an
active area of research and should remain an active project.
Santander 2012:
===============
There was no report on this project. Some felt that the project
description needed to be updated and extended to include the
relevance of Cloud Computing.
Shanghai 2013:
==============
There was no report on this project. Boisvert suggested that this
topic may be fused with project 65. Some felt that the project
description needed to be updated and extended to include the relevance
of Cloud Computing.