J Nelson Amaral, PhD

Professor, Faculty of Science - Computing Science


Professor, Faculty of Science - Computing Science




  • B.Sc., Electrical Engineering, PUCRS (Brazil), 1987
  • M.Sc., Electrical Engineering, ITA (Brazil), 1989
  • Ph.D., Electrical and Computer Engineering, The University of Texas at Austin, 1994

Chair Positions

  • Co-chair IBM-CAS


  • University of Alberta Faculty of Science Excellence in Teaching Award (2015)
  • Distinguished Engineer, Association for Computing Machinery (2014)
  • Distinguished Speaker, Association for Computing Machinery (2012-2014)
  • Interdepartmental Science Students' Society Award for Excellence in Teaching (2014)
  • IBM Center for Advanced Studies (CAS) Research Faculty Fellow of the Year (2012)



Software Systems


Compiler Optimization and High Performance Computing.


A substantial part of the gain in processing power of modern computers can be attributed to advanced compilers. By applying clever transformations to code, a compiler can enable better utilization of the resources available in a machine. A single code transformation T applied by a compiler can easily speed up some programs by a factor of two or three. However, when applied in combination with other code transformations, the same transformation T might yield modest improvements, or even result in a slow down.

My research interest is focused on code transformations that are applied at an intermediate representation of the program: a representation that is common to several programming languages and to several processor instruction sets. Thus, such transformations can benefit a large number of systems. Because of the interference between transformations described above, I am interested on implementing new code transformations on state-of-the art production compilers.

In order to explore instruction-level parallelism, some of the code transformations that I study are specific to a certain processor architecture, and thus require more effort to be translated to other processors.

I am also interested in the application of learning technology to the compilation process. My group is investigating the use of both supervised and unsupervised learning to improved the performance delivered by, and the efficiency of, modern commercial compilers. We are also investigating ways to improve the implementation and evaluation of feedback-directed optimization (FDO).