|
|
|
|
|
<div align='center'>
|
|
|
|
|
|
![](img/cti_logo.jpg)
|
|
|
</div>
|
|
|
|
|
|
|
|
|
![](img/cti_logo.jpg)
|
|
|
# News #
|
... | ... | @@ -21,9 +21,9 @@ |
|
|
# General Information #
|
|
|
## Context ##
|
|
|
|
|
|
<div align='justify'>
|
|
|
|
|
|
Full program characterization is difficult and not always relevant. For example, typical High Performance Computing (HPC) programs generally contain tens of thousands of code lines, if not millions. A better way to perform application characterization is to consider each hot-spot in a separate and more efficient environment. Using profiling tools such as Gprof or Vtune allows an engineer to discern between often executed code and less used segments. Once the initial profiling step separates the hot-spots i.e. often executed code segments, the engineer focuses on tweaking, optimizing, or even debugging the target code.
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<br/>
|
|
|
A codelet is a small program composed of:
|
... | ... | @@ -32,13 +32,13 @@ A codelet is a small program composed of: |
|
|
1. A wrapper, which loads the original application data, the general memory, and call the code fragment.
|
|
|
|
|
|
|
|
|
<div align='justify'>
|
|
|
|
|
|
Codelets, by limiting the amount of code considered, reduce compilation, iterative testing, and even profiling time. However, handling each codelet separately reduces the effectiveness and a means to handle each in a unified way is necessary.
|
|
|
</div>
|
|
|
|
|
|
|
|
|
## CTI Tool ##
|
|
|
|
|
|
<p align='center'>
|
|
|
|
|
|
<span>
|
|
|
<a href='img/screenshot_cts2.png'>![](img/screenshot_cts2_mini.png)</a>
|
|
|
</span>
|
... | ... | @@ -52,28 +52,28 @@ Codelets, by limiting the amount of code considered, reduce compilation, iterati |
|
|
<a href='img/screenshot_cts.png'>![](img/screenshot_cts_mini.png)</a>
|
|
|
</span>
|
|
|
<br /><i>Please click to enlarge</i>
|
|
|
</p>
|
|
|
|
|
|
<p align='justify'>
|
|
|
|
|
|
|
|
|
CTI stands for Codelet Tuning Infrastructure. The purpose of CTI is three-fold: share data (codelets), automate menial tasks, and perform data mining techniques.
|
|
|
</p>
|
|
|
<p align='justify'>
|
|
|
|
|
|
|
|
|
Sharing data is done via files or extracted data and stored in a database. Menial tasks such as scripting, creating back-ups, formatting the data, and performing analysis via the integrated tools are automated. Data mining techniques are automated by using the internal format in CTI and using the existing viewers.
|
|
|
</p>
|
|
|
<p align='justify'>
|
|
|
|
|
|
|
|
|
With a filled codelet base, the tools are systematically tested on many different applications via the extracted codelets. Moreover, an application engineer could present a codelet and retrieve a similar codelet from the database. The extracted codelet could contain information on optimization hints that had previously provided a benefit for another application engineer.
|
|
|
</p>
|
|
|
<p align='justify'>
|
|
|
|
|
|
|
|
|
CTI can be used by command-line, and provides a web user interface. It has been sucessfully tested on Ubuntu (10.10 and above), Mac OS X 10.5, OpenSUSE 11.2, Debian (6 and above) and CentOS 6.
|
|
|
</p>
|
|
|
<p align='justify'>
|
|
|
|
|
|
|
|
|
CTI supports many characterization tools such as MAQAO (http://www.maqao.org/), DECAN, Codelet Finder (http://www.caps-entreprise.com/), Likwid (http://code.google.com/p/likwid/), etc. Moreover, the tool is built on a plugin-based system, making it flexible and configurable. The user can easily integrate his own tool, or even change the main CTI's behaviour.
|
|
|
</div>
|
|
|
|
|
|
<p align='center'>
|
|
|
|
|
|
|
|
|
![](img/CTI_overview.png)
|
|
|
<br /><i>CTI overview</i>
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
----
|
... | ... | |