Date(s) - 04/20/2018
8:30 am - 9:30 am
Min H. Kao room 435
Zhuo Yao, Doctor of Philosophy
Dr. Jinyuan “Stella” Sun, and Dr. Dali Wang, Major Professors
Title: “A Kernel Generation Framework for Scientific Legacy Code”
Quality assurance procedure is very important for software development. For complex and poorly designed scientific software, module developers and software testers need to put a lot of extra efforts to monitor not related modules’ impacts and to test the whole system’s constraints. In addition, widely used benchmarks do not always provide direct insights into the actual application performance of systems. In contrast, performance evaluations based on generated kernels may give a direct estimation of application performance. Therefore, in order to greatly improve the productivity of various scientific software engineering tasks such as performance tuning, debugging, and verification of simulation results, we developed an automatic compute kernel generation prototype platform for the complex legacy scientific code. The goal of the kernel generation is to provide an executable version of a code segment and representative data that mimics the execution of the code in the full program. In addition, considering that scientific research and experiment require long-term simulation procedure, we apply message passing based parallelization and I/O behavior optimization to highly improve the performance of the kernel extractor framework. Abnormal event detection is another important aspect for scientific research dealing with huge observational datasets combined with simulation results it becomes not only essential but also extremely difficult. In this dissertation, we reconfigured this framework with in-situ data transfer infrastructure to capture high-frequency events and low-frequency events by adopting signal processing data preprocess with detection approaches to the memory-based data streams. These approaches can dramatically reduce the amount of data transfer needed for concurrent data analysis (between distributed computing CPU/GPU nodes). Finally, the dissertation demonstrates the generated compute kernel can be used in performance tuning experiments and quality assurance which costs a tiny fraction of the execution time of the full program, those activities include debugging legacy code, verification of simulation results through single point and multiple points of variables tracking, collaborating with compiler vendors, and generating custom benchmark tests.