The stated design goal for X10 is to improve development productivity for parallel applications. When it comes to constructing advanced cloud applications, X10 must provide facilities to systematically express essential non-functional concerns, including persistence, transactions, distribution, and security. In a cloud-based application, non-functional concerns may constitute intrinsic functionality, but implementing them in X10 can be non-trivial. To streamline the implementation of non-functional concerns, the Java development ecosystem features standardized, customizable, and reusable abstractions called frameworks. Java frameworks are a result of a concerted, cooperative, and multi-year effort of multiple stakeholders in the Java technology, which has been tested and proven effective by billions of lines of production code. This project will explore how Java frameworks can be automatically adapted for use by X10 programmers. The proposed approach will help avoid duplicating the effort expended on creating Java frameworks to provide equivalent facilities for X10. By enabling X10 programmers to leverage the collective expertise of the developers and users of Java frameworks, this project aims at improving programmer productivity.
This project aims to research and improve data clustering algorithms, which will be developed as application program class libraries using X10. Class libraries developed in X10 are to be divided into two types, one is for classical clustering algorithms, and the other is for clustering algorithms improved by ourselves. Each class library can be discriminated and refined according to the data object to be processed, such as spatial or time-series data, stream data and graph data, etc. To verify the practicability, scalability, robustness and performance of equivalent algorithms from different class libraries, data from different fields, such as