Current students


Section: Computer Science and Engineering

Major Research topic:
Compilation Techniques for Dynamic and Static Precision / Performance Tradeoff

An overarching theme across the history of computer science has been the
development of numeric formats and algorithms appropriate for performing a
computation within certain precision and performance bounds.

Even though in most cases it is desirable to produce results with a small error
margin, in other computing applications temporal and spatial efficiency are
more important than the error in the output.
Indeed, in order to privilege performance metric over computational precision,
several techniques have been developed over the years.
The research branch of computer science that deals with such techniques
is named Approximate Computing, and it proposes several techniques which span
from the computer hardware level to the software level.

In the current state-of-the-art, all decisions regarding the use of approximate
computing techniques are performed manually.
However, automatic computing systems scaled up to a point where keeping track
of the propagation of each error is unfeasible without dedicated tools.
For this reason, there is a growing interest in off-loading the decisional
process regarding whether to perform computational approximations or not to an
automatic software component.
Such software component takes the form of a specialized compiler which
contains additional analysis and transformation passes that evaluate and
perform the precision/performance tradeoff.

One example of a research area where research on automated tools for
performing approximate computing has been steadily increasing is Precision
More in detail, Precision Tuning is an approximate computing technique that
involves the reduction of the data type size.
Various frameworks for performing precision tuning automatically have been
developed, such as [1] or [2].
Another such example is the case of modeling software.
Existing compilers of declarative system modeling languages employ mathematical
representations that -- while computationally exact -- do not allow certain
optimizations that are very important for simulating complex models in a
reasonable time-frame ([3]).

The goal of my research is to advance the state-of-the-art in the field of
optimizing compilers, by introducing novel techniques that exploit
precision/performance tradeoffs, and by evaluating the effects of such
methodologies in real-world applications.

[1] Rubio-González, Cindy et al., "Precimonious: Tuning Assistant for
Floating-point Precision", in Proc. Int'l Conf. on High Performance Computing,
Networking, Storage and Analysis (Denver, Colorado, 2013), pp. 27:1--27:12.
[2] Kum, Ki-Il et al., "AUTOSCALER for C: an optimizing floating-point to
integer C program converter for fixed-point digital signal processors", IEEE
Trans. on Circuits and Systems II: Analog and Digital Signal Processing 47,
9 (2000), pp. 840-848.
[3] Agosta, Giovanni, et al. "Towards a high-performance modelica compiler."
Proceedings of the 13th International Modelica Conference, Regensburg, Germany,
March 4–6, 2019. No. 157. Linköping University Electronic Press, 2019.