CFV: Project Trinity

Karthik Ganesan karthik.ganesan at
Fri Apr 21 18:28:24 UTC 2017


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
(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

[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)

More information about the discuss mailing list