Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
Automatic Algorithm Recognition and Replacement: A New Approach to Program Optimization

Buy
Optimizing compilers have a fundamental problem. No matter how powerful their optimizations
are, they are no substitute for good application algorithms. Consider the case of
sorting. For sufficiently large data sets, a merge sort algorithm compiled with a less powerful
optimizer will always out-perform a selection sort algorithm compiled with the most
powerful optimizer. Or consider the case of solving systems of equations. For sufficiently
large data sets, a Gaussian Elimination algorithm compiled with a less powerful optimizer
will always out-perform a Cramer’s rule algorithm compiled with the most powerful optimizer.

Developers of optimizing compilers also have an opportunity to leverage an under-used
asset. There are several high-quality numerical libraries that are publicly available, such
as the BLAS and LAPACK, that provide broadly applicable algorithms for scientific and
engineering computing. Vendors of high performance computers often provide versions of
these libraries that have been highly tuned to their particular system architecture. Users of
high performance computers sometimes employ these libraries. Unfortunately, many users
are unaware of their existence, and don’t use them even when they are available.

What if compilers could recognize a poor algorithp written by a user, and replace it
with the best implementation of a better algorithm that solves the same problem? Given
reasonable implementations of both algorithms, such a replacement would result in as
significant performance improvement. This book explains an approach that makes this
possible.

The scope over which compilers perform optimizations has steadily increased in the
past three decades. Initially, they performed optimizations on a sequence of statements that
would be executed as a unit, e.g. a basic block. During the 1970’s, researchers developed
control flow analysis, data flow analysis and name association algorithms. This made it
possible for compilers to do optimizations across an entire procedure. During the 1980’s,
researchers extended these analyses across procedure boundaries (lo), as well as adding
side effect analysis (9). This made it possible for compilers to do optimizations across an
entire program.
(HTML tags aren't allowed.)

Hybrid Cloud for Architects: Build robust hybrid cloud solutions using AWS and OpenStack
Hybrid Cloud for Architects: Build robust hybrid cloud solutions using AWS and OpenStack

Build your own hybrid cloud strategy with this comprehensive learning guide.

Key Features

  • Build a hybrid cloud strategy for your organization with AWS and OpenStack
  • Leverage Hybrid Cloud to design a complex deployment pipeline
  • Learn to implement security...
Beginning HTML and CSS
Beginning HTML and CSS

Everything you need to build websites with the newest versions of HTML and CSS

If you develop websites, you know that the goal posts keep moving, especially now that your website must work on not only traditional desktops, but also on an ever-changing range of smartphones and tablets. This step-by-step book efficiently...

Programming Lego Mindstorms with Java (With CD-ROM)
Programming Lego Mindstorms with Java (With CD-ROM)
Soon after its release, the LEGO MINDSTORMS Robotics Invention System (RIS) quickly became popular not only with its initial intended audience of children aged 11 and up, but also within a community of adult LEGO robotics enthusiasts that developed and spread worldwide with significant help from the Internet. Before long, hackers had deciphered the...

Linux Assembly Language Programming (Prentice Hall Open Source Technology)
Linux Assembly Language Programming (Prentice Hall Open Source Technology)
The first Linux-centered guide to x86 assembly language!

In Linux Assembly Language Programming, Bob Neveln explains all the key features of x86 assembly language in the context of the Linux operating system and the C language. The book's step-by-step, one-concept-at-a-time coverage will help any hardware programmer move to Linux, and master...

Computer Crime, Investigation, and the Law
Computer Crime, Investigation, and the Law

One can hardly open a newspaper or read news online without seeing another story about a computer-related crime. We are awash in identity theft, online child predators, and even cyber espionage. It seems overwhelming. And people in many different professions find themselves involved with computer-crime investigations. Obviously,...

Dart in Action
Dart in Action

Summary

Dart in Action introduces Google's Dart language and provides techniques and examples showing how to use it as a viable replacement for Java and JavaScript in browser-based desktop and mobile applications. It begins with a rapid overview of Dart language and tools, including features like...

©2019 LearnIT (support@pdfchm.net) - Privacy Policy