Code Comprehension Assistance for Evidence-Based performance Tuning
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 71 commits ahead, 2 commits behind codinuum:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cgi-bin
ebtutil
factutils/python/factutils
lsi
models/minami
ontologies
queries/tuning/fortran
scripts
src
treeview
.gitignore
LICENSE
README.md
README.md.orig

README.md

CCA/EBT

For improving the performance of an application, we have to examine the application's source code. CCA/EBT extracts the syntactic/semantic structures from the source code written in Fortran, and then provides outline views of the loop-nests and the call trees decorated with source code metrics.

Usage

A docker image of CCA/EBT is available from a Docker Hub repository. You can try it by way of a helper script, which requires Docker and Python (2.7). When you install Docker, you should follow the instructions provided for various platforms: Mac (OSX Yosemite 10.10.3 or above), Windows (requires Windows 10 Professional or Enterprise 64-bit), Ubuntu, Debian, CentOS, and Fedora.

Exapmles

We assume that the helper script ebt.py is located in the current working directory.

$ ./ebt.py outline DIR

Outlines Fortran programs in DIR.

$ ./ebt.py treeview start DIR

Starts tree view service on port 18000 (default). You can access the viewer by entering http://localhost:18000/ in a browser. Note that at least a loop that contains floating-point operations and array references should occur in the programs. Otherwise, no program will be shown in the viewer.

$ ./ebt.py treeview stop DIR

Stops the viewer service.

$ ./ebt.py opcount DIR

Counts the occurrences of operations and array references for each Fortran program found in DIR. The results are dumped into a directory DIR/_EBT_/YYYYMMDDThhmmss in JSON format.

Contents

Based on CCA framework, CCA/EBT provides the following:

  • a Fortran parser,
  • scripts for topic analysis, outlining, and operation counting of Fortran programs,
  • a web application that shows tree views of the outlines, and
  • ontologies for Fortran entities.

The parser export resulting facts such as ASTs and other syntactic information in XML or N-Triples. In particular, facts in N-Triples format are loaded into an RDF store Virtuoso to build a factbase, or a database of facts. Factbases are intended to be queried for code comprehension tasks.

Building the parser(s)

Requirements

Compilation

The following create ast/analyzing/bin/parsesrc.opt.

$ cd src
$ make

It is called from a shell script ast/analyzing/bin/parsesrc.

References

  1. Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, and Kazuo Minami. 2018. CCA/EBT: Code Comprehension Assistance Tool for Evidence-Based Performance Tuning. Poster to be presented at International Conference on High Performance Computing in Asia-Pacific Region (HPC Asia 2018), P18.
  2. Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, and Kazuo Minami. 2017. An Empirical Study of Computation-Intensive Loops for Identifying and Classifying Loop Kernels. In Proc 8th ACM/SPEC International Conference on Performance Engineering (ICPE 2017), 361–372.
  3. Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, and Kazuo Minami. 2015. Extracting Facts from Performance Tuning History of Scientific Applications for Predicting Effective Optimization Patterns. In Proc 12th IEEE/ACM Working Conference on Mining Software Repositories (MSR 2015), 13–23.

License

Apache License, Version 2.0