- Title: Multilayer Code Synthesis For Correctness and Performance
- Total amount : $399,953
REU Supplemental award (Aug,2009) : $16,000
- Period : 08/01/08 - 07/31/14
- Priciple investigator: Qing Yi
- co-investigators: none
- Students supported: Brandon Nesterenko (Ph.D, 2015-), Jiange Zhang(Ph.D, 2014-), Jichi Guo(Ph.D, 2009-2015), M. Faizur Rahman (Ph.D, 2009-2015),
Akshatha Bhat (MS, 2010-2012), M. Ziaul Haque (MS, 2010-2012), Anitha Ancha(MS,2009-2010), Dang Nguyen(BS, 2009-2010) Emilio Mercado(BS, 2010-2011), Ali Scissons(BS,2010-2011),
Brandon Nesterenko (BS 2012-2013), Adam Barker (BS 2014-2016), Nathan Harmon (BS 2016-2017), and Aaron Wilson (BS 2016-2017).
Project Summary :
Correctness and performance are two of the most fundamental concerns in software development.
In particular, the increasing complexity of modern computing environment has made it extremely
difficult for software applications to be both correct and efficient. Software programs are
frequently found to be flawed, and existing technology has fallen behind in providing the
necessary programming language and tool support to ensure high quality software development.
This research develops programming language as well as compiler analysis and optimization
techniques to support the automated translation of software from high-level design to
low-level efficient implementations. This research develops a multilayer code synthesis
framework that systematically produces high-quality software by effectively combining
software verification techniques with program analysis and compiler optimization in a
three-phase translation process. First, starting from the software design phase, the
framework automatically translates formal software semantic specifications into
object-oriented or procedural implementations based on strategies selected by programmers.
Then, based on knowledge from the software-design phase, a sequence of domain-specific
optimizations is applied to the implementation to improve algorithm efficiency. Finally,
architecture-specific optimizations are applied to performance-critical routines, and the
optimized routines are empirically tuned as the application is ported to different machines.
Different design and programming languages may be used in each translation phase, and
software verification technology will be used to ensure the correctness of each translation.
The research focuses on scientific computing and system software applications, where both
correctness and performance are of critical concern. The integrated research is expected
to significantly improve both the trustworthiness and performance of existing software
development.
|
Selected Publications
- Compiler-Assisted Overlapping of Communication and Computation in MPI Applications
Jichi Guo, Qing Yi, Jiayuan Meng, Junchao Zhang, and Pavan Balaji.
In IEEE Cluster 2016, Sep 12-16, 2016. Taipei, Taiwan.
- Automatically Optimizing Stencil Computations on Many-core NUMA Architectures
Pei-Hung Lin, Qing Yi, Daniel Quinlan, Chunhua Liao and Yongqing Yan.
In The 29th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2016). Page 116-130. Sep 28-30, 2016. Rochester, NY, USA.
- Automatic Algorithm Selection in Computational Software Using Machine Learning
Matthew C. Simpson, Qing Yi, and Jugal Kalita.
In The 15th IEEE International Conference on Machine Learning and Applications (IEEE ICMLA'16). Page 355-360. Dec 18-20, 2016. ISBN: 9781509061686. Anaheim, California, USA.
- Characterizing and Optimizing the Performance of Multithreaded Programs Under Interference
Yong Zhao, Jia Rao, and Qing Yi.
In the 25th International Conference on Parallel Architectures and Compilation Techniques (PACT ’16), September 11-15, 2016, Haifa, Israel
- Interactive Composition Of Compiler Optimizations
Brandon Nesterenko, Wenwen Wang, and Qing Yi.
In The 28th International Workshop on Languages and Compilers for Parallel Computing (LCPC'15). Sep 9-11, 2015. Raleigh, NC, USA.
- Just-in-time Component-wise Power and Thermal Modeling
Shah Mohammad Faizur Rahman, Qing Yi and Houman Homayoun.
In ACM International Conference on Computing Frontiers (CF'15).
May 18-21, 2015. Ischia, Italy.
- Automatic Detection of Information Leakage Vulnerabilities in Browser Extensions
Rui Zhao, Chuan Yue and Qing Yi.
In the 24th International World Wide Web Conference (WWW'15). May 18-22, 2015. Florence, Italy.
- Specializing Compiler Optimizations Through Programmable Composition For Dense Matrix Computations
Qing Yi, Qian Wang, and Huimin Cui.
In The 47th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'14).
Dec 13-17, 2014. Cambridge, UK.
- Analytically Modeling Application Execution for Software-Hardware Co-Design
Jichi Guo, Jiayuan Meng, Qing Yi, Vitali Morozov, and Kalyan Kumaran.
In 28th IEEE International Parallel & Distributed Processing Symposium (IPDPS'14).
May 19-23, 2014. PHOENIX, Arizona, USA.
- AUGEM:Automatically Generate High Performance Dense Linear Algebra Kernels on x86 CPUs
Qian Wang, Xianyi Zhang, Yunquan Zhang, and Qing Yi.
In the International Conference for High Performance Computing, Networking, Storage and Analysis (SC'13). Denver, CO. Nov, 2013.
- Enhancing Performance Portability of MPI Applications Through Annotation-Based Transformations
Md. Ziaul Haque, Qing Yi, James Dinan, and Pavan Balaji.
In the 42nd International Conference on Parallel Processing (ICPP'13). Lyon, France. Oct, 2013.
- Layout-oblivious compiler optimization for matrix computations
Huimin Cui, Qing Yi, Jingling Xue, and Xiaobing Feng.
ACM Transactions on Architecture and Code Optimization. Vol 9, No 4, pages 35:1-20. Jan, 2013.
- Enhancing the Role of Inlining in Effective Interprocedural Parallelization
Jichi Guo, Mike Stiles, Qing Yi, and Kleanthis Psarris
In International Conference On Parallel Processing (ICPP'11), Sep, 2011. Taipei, Taiwan.
- Collective Specification and Verification of Behavioral Models and Object-oriented Implementations
Qing Yi, Jianwei Niu, and Anitha R. Marneni
ICSOFT'11: International Conference On Software And Data Technologies.
Seville, Spain. July 18-21, 2011.
-
Automated Programmable Control and Parameterization of Compiler Optimizations
Qing Yi
CGO'11: IEEE/ACM International Symposium on Code Generation and Optimization.
Chamonix, France, Apr, 2011.
-
Automated Empirical Tuning of Scientific Codes For Performance and Power Consumption
Shah Faizur Rahman, Jichi Guo, and Qing Yi
HIPEAC'11: High-Performance and Embedded Architectures and Compilers.
Heraklion, Greece. Jan, 2011.
-
Automated Timer Generation for Empirical Tuning
Josh Magee, Qing Yi, and R. Clint Whaley
SMART'10: The 4th Workshop on Statistical and Machine learning approaches to ARchitecture and compilaTion,
Pisa, Italy. Jan, 2010.
-
Automated Transformation for Performance-Critical Kernels
Qing Yi and Clint Whaley
LCSD'07: ACM SIGPLAN Symposium on Library-Centric Software Design.
Montreal, Canada. Oct, 2007.
|