Thumbnail Image

Automatic Parallelization of Data-Driven JStar Programs

Data-driven problems have common characteristics: a large number of small objects with complex dependencies. This makes the traditional parallel programming approaches more difficult to apply as pipe-lining the task dependencies may require to rewrite or recompile the program into efficient parallel implementations. This thesis focuses on data-driven JStar programs that have rules triggered by the tuples from a bulky CSV file or from other sources of complex data, and making those programs run fast in parallel. JStar is a new declarative language for parallel programming that encourages programmers to write their applications with implicit parallelism. The thesis briefly introduces the JStar language and the implicit default parallelism of the JStar compiler. It describes the root causes of the poor performance of the naive parallel JStar programs and defines a performance tuning process to increase the speed of JStar programs as the number of cores increases and to minimize the memory usage in the Java Heap. Several graphic analysis tools were developed to allow easier analysis of bottlenecks in parallel programs. The JStar compiler and runtime were extended so that it is easy to apply a variety of optimisations to a JStar program without changing the JStar source code. This process was applied to four case studies which were benchmarked on different multi-core machines to measure the performance and scalability of JStar programs.
Type of thesis
Weng, M.-H. (2013). Automatic Parallelization of Data-Driven JStar Programs (Thesis, Master of Science (MSc)). University of Waikato, Hamilton, New Zealand. Retrieved from https://hdl.handle.net/10289/8505
University of Waikato
All items in Research Commons are provided for private study and research purposes and are protected by copyright with all rights reserved unless otherwise indicated.