CFV: Project Trinity

Christian Thalinger cthalinger at
Fri Apr 21 21:54:14 UTC 2017

> On Apr 21, 2017, at 11:41 AM, Karthik Ganesan <karthik.ganesan at> wrote:
> Hi Christian,
> Thanks for your interest. This question was brought up previously in the discussion email thread for this project:
> Project Sumatra was aimed at translation of Java byte code to execute on
> GPU, which was an ambitious goal and a challenging task to take up. In this
> project, we aim to come up with APIs targeting the most common Analytics
> operations that can be readily offloaded to accelerators transparently. Most
> of the information needed for offload to the accelerator is expected to be
> readily provided by the API semantics and there by, simplifying the need to
> do tedious byte code analysis.

I disagree.  The first paragraph on the Sumatra project page says:

"This primary goal of this project is to enable Java applications to take advantage of graphics processing units (GPUs) and accelerated processing units (APUs)--whether they are discrete devices or integrated with a CPU--to improve performance.”

while you state:

"This Project would explore enhanced execution of bulk
aggregate calculations over Streams through offloading
calculations to hardware accelerators.”

It’s the same thing.  I just don’t see the need to spin up yet-another OpenJDK project that aims at the same goal.

> Thanks,
> Karthik
> On 4/21/2017 3:18 PM, Christian Thalinger wrote:
>> Why can’t we use Project Sumatra[1] for this?
>> [1]
>>> On Apr 21, 2017, at 8:28 AM, Karthik Ganesan <karthik.ganesan at> wrote:
>>> Hi,
>>> I would like to propose the creation of a new Project:
>>> Project Trinity with myself as the Lead and the Core
>>> Libraries Group as the Sponsoring Group.
>>> This Project would explore enhanced execution of bulk
>>> aggregate calculations over Streams through offloading
>>> calculations to hardware accelerators.
>>> Streams allow developers to express calculations such
>>> that data parallelism can be efficiently exploited. Such
>>> calculations are prime candidates for leveraging enhanced
>>> data-oriented instructions on CPUs (such as SIMD
>>> instructions) or offloading to hardware accelerators
>>> (such as the SPARC Data Accelerator co-processor, further
>>> referred to as DAX [1]).
>>> To identify a path to improving performance and power
>>> efficiency, Project Trinity will explore how libraries
>>> like Streams can be enhanced to leverage data processing
>>> hardware features to execute Streams more efficiently [2].
>>> Directions for exploration include:
>>> - Building a streams-like library optimized for offload to
>>> -- hardware accelerators (such as DAX), or
>>> -- a GPU, or
>>> -- SIMD instructions;
>>> - Optimizations in the Graal compiler to automatically
>>> transform suitable Streams pipelines, taking advantage
>>> of data processing hardware features;
>>> - Explorations with Project Valhalla to expand the
>>> range of effective acceleration to Streams of value types.
>>> Success will be evaluated based upon:
>>> (1) speedups and resource efficiency gains achieved for a
>>> broad range of representative streams calculations under
>>> offload,
>>> (2) ease of use of the hardware acceleration capability, and
>>> (3) ensuring that there is no time or space overhead for
>>> non-accelerated calculations.
>>> The project will host at least the following mailing list:
>>> - trinity-dev for development discussions and user feedback
>>> - trinity-design for design and specification discussions
>>> About the Lead:
>>> Karthik Ganesan works for Oracle in the Performance and
>>> Applications Engineering group with more than 5 years of
>>> experience in Java/Hotspot performance projects [3].
>>> The initial Reviewers and Committers will be:
>>> * Ahmed Khawaja
>>> * Karthik Ganesan
>>> * Malcolm Kavalsky
>>> * Shrinivas Joshi
>>> Votes are due by May 4, 2017.
>>> Only current OpenJDK Members [4] are eligible to vote on this
>>> motion.  Votes must be cast in the open on the discuss list.
>>> Replying to this message is sufficient if your mail program
>>> honors the Reply-To header.
>>> For Lazy Consensus voting instructions, see [5].
>>> Karthik Ganesan
>>> [1]
>>> [2]
>>> [3] Karthik Ganesan, Yao-Min Chen and X Pan, “Scaling
>>> Java Virtual Machine on a Many-core System” at 14th
>>> International Symposium on Integrated Circuits (ISIC 2014)
>>> [4]
>>> [5]

More information about the discuss mailing list