Chandra Krintz, UC Santa Barbara (IBM Team Contact: Steve Fink)
We will integrate X10 into AppScale – an open-source emulation of the PaaS (Platform-as-a-Service) cloud APIs of Google App Engine. This will include integrating X10 (a) as a front-end development language (an alternative to Python and Java) that facilitates easy development of parallel and distributed applications as user-facing computations that work well in the cloud; (b) as a Tasks API language which will facilitate type-safe, parallel programming of web applications and services for efficient and scalable background computing; (c) as a language users employ for writing their own mappers and reducers, as well as the language for implementation of MapReduce in the AppScale Backend; and (d) as the implementation language for the parallel and concurrent activities within AppScale itself (for MapReduce, request handling, data processing, and other services within the AppScale control center). We also will extend the AppScale debugging and testing system with support for X10; and we will extend scheduling support in AppScale to handle execution of X10 tasks in parallel in support of the front end web service (in addition to scheduling other tasks, MapReduce jobs, internal components, database replicas, and front-end instances). As part of these pursuits, we will investigate application-specific compiler and runtime optimizations for performance, efficiency, and scaling, scheduling and load balancing techniques across both single and multiple machines.
Neptune: A Domain Specific Language for Deploying HPC Software on Cloud Platforms. Chris Bunch, Navraj Chohan, Chandra Krintz, and Khawaja Shams. ScienceCloud’11, June 2011.
Admela Jukan, University of Braunschweig, Germany (X10 team contact: Vijay Saraswat)
In this project, we will incorporate X10, a new parallel programming language, into our SAGE environment to enable multiple media streams to be composed for visualization on multiple displays without networking bottlenecks in a cluster-based visualization infrastructure of the HPDMnet lab.
X10 offers exciting opportunities for analyzing massive graph-structured data. We are implementing parallel massive graph analysis tools on the STINGER data structure, a block-based data structure well suited for PGAS models. STINGER supports analysis of both static and dynamic graphs, targeting beyond-Facebook-scale analysis both in size and rate of change. X10's global control view over potentially distributed graph data helps graph algorithms remain more recognizable than in other PGA and message-passing models, and X10's general purpose language permits more analysis kernels than does map reduce
Prof. Nagaraja is engaged in research into P2P botnets made famous yet again by post-wikileaks network attacks. His group seeks to understand the fundamental limits of the P2P technologies used as botnet foundations and design effective botnet countermeasures. The IBM X10 award will continue to fund research in this direction. The understanding of efficiency, robustness and resilience to attacks of various decentralised botnet architectures along with development of novel techniques that will deal with the sea of uncertainty that comes from building a system out of unreliable and sometimes untrustworthy components will be game changing initiatives in dealing with the problem of botnet defense. A significant component of this work is large-scale statistical traffic analysis dealing with terabytes of traffic on a daily basis. The IBM X10 award will fund a specific part of his group's research agenda on developing concurrent techniques for performing such analysis on ISP scale traffic. Specifically, on spatial and temporal communication pattern analysis and understanding botnet structure. The development of such highly concurrent large scale systems will play a key role in engendering cooperative cooperative detection of botnets in the near future.
In this project, we aim to design efficient dynamic programming algorithms (DP) in X10 on modern multi-core processors and distributed systems. At the same time, we will compare these algorithms in X10 to the same algorithms in other languages, in order to quantify the performance differences between X10 and other languages. In detail, we will first use X10 and use existing languages such as C++, Pthread and MPI to design efficient implementations of parallel DP algorithms. All implementations are aimed to efficiently utilize all levels of parallelism on modern multi-core processors and distributed systems, including instruction pipelines, SIMD capability, multiple cores, memory-level parallelism, multiple nodes, etc. Second, we will compare the implementations in X10 to the implementations in other languages, in order to quantify the differences between X10 and other languages in terms of performance. Third, we will try to propose and design some programming tools for bioinformatics in X10, such as efficient task scheduling between multiple cores and multiple nodes.
In this project we propose a new MapReduce framework implemented in X10, which can be a general solution to accelerate MapReduce algorithms and provide both efficient hardware architecture and an interface to the OS. This framework is constructed by multi-node heterogeneous cluster, where each node is a reconfigurable heterogeneous multi-core system, including multi-core CPU, FPGA and GPU. The “mapper” and “reducer” can be implemented by these computing systems, and they are configurable. The proposed MapReduce framework can act as a common platform for research in the parallel computing area.
Streaming programming has been productively applied in the signal processing, graphics and multimedia domains. X10 provides a flexible programming model for stream programs to exploit multi-grained parallelism and locality. In this project, we propose a compiler technology for planning and executing the stream programs (SPL) on X10. We first plan to build a compiler framework to translate stream programs to X10. Then we plan to design a schedule method to exploit the multi-grained parallelism and locality for stream programs based on the X10 execution model.
We aim to use the X10 language to develop parallel programs in the financial computing area, based on the mathematical models and the numerical computing algorithms for financial derivatives pricing and financial risk measurement. The mathematical models include both typical, frequently-used ones and those developed by ourselves (such as the BSDE-binomial tree model and BSDE-theta scheme model). We plan to construct a problem solving environment and develop scientific computing applications for financial risk measurement in X10. Moreover, in the experimental training for the third- or four- year students, we will teach parallel programming in X10.