Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version)

09/04/2021
by   Artem Pelenitsyn, et al.
0

As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that groundedness enables compiler optimizations, and proves the compiler correct. We also perform a corpus analysis to uncover how these type-related properties manifest in practice.

READ FULL TEXT
research
12/26/2021

Automated Code Optimization with E-Graphs

This thesis proposes an advanced, generic and high-level code rewriting ...
research
10/15/2020

World Age in Julia: Optimizing Method Dispatch in the Presence of Eval (Extended Version)

Dynamic programming languages face semantic and performance challenges i...
research
04/06/2022

P4BID: Information Flow Control in P4

Modern programmable network switches can implement custom applications u...
research
02/05/2020

Patterns for Name Analysis and Type Analysis with JastAdd

In the last two decades, tools have been implemented to more formally sp...
research
08/03/1999

After Compilers and Operating Systems : The Third Advance in Application Support

After compilers and operating systems, TSIAs are the third advance in ap...
research
09/26/2020

Applying Type Oriented Programming to the PGAS Memory Model

The Partitioned Global Address Space memory model has been popularised b...
research
12/22/2020

Introducing CPL

CPL here stands for a computer programming language conceived and develo...

Please sign up or login with your details

Forgot password? Click here to reset