Skip to content
Code Comprehension Assistance for Evidence-Based performance Tuning
OCaml Python Standard ML JavaScript Makefile CSS Other
Branch: ebt
Clone or download
Pull request Compare This branch is 76 commits ahead, 2 commits behind codinuum:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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.


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.


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

$ ./ outline DIR

Outlines Fortran programs in DIR.

$ ./ 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.

$ ./ treeview stop DIR

Stops the viewer service.

$ ./ 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.


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)



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

$ cd src
$ make

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


  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.


Apache License, Version 2.0

You can’t perform that action at this time.