Performance modeling with compilers
Compile-time analysis can be a very powerful tool for optimizing code on any architecture. In combination with run-time performance analysis, the compiler became the most effective tuning tool.

by Max Alt, Intel Solution Services, Intel Corp.

With maturing compiler technologies, compile-time analysis can be a very powerful tool for optimizing code on any architecture. In combination with run-time performance analysis, the compiler became the most effective tuning tool. The methods described in this paper can be applied to any parallel architecture with multiple microprocessor execution units.

In the era of parallel and platform computing, we rely less on single execution unit performance, assuming that the compiler maximized each component. It now becomes more important to evaluate performance of the platform as a whole, distributing the processing requests and embracing techniques of compiler usage in maximizing single execution unit performance.

Knowing coding techniques, writing good code and having a good compiler takes care of two latter issues, however, once the code is running, a developer always raises questions. What computing capacity does the code implementation have? What hardware features would increase that capacity? And how would the code's runtime performance be impacted if the hardware were different?

There are compile-time optimization techniques, which allow a developer to estimate and improve performance without running the program (perhaps with slight guidance from runtime tools), there are also techniques which allow developers to estimate performance on similar architectures without using simulators. This paper discusses the philosophy behind key performance parameters of the Intel® Itanium® architecture and their functions which factor in the performance modeling formulas.

A slightly different angle on performance modeling and analysis of parallel architectures. The paper explores a compile-time based approach for predicting performance of compute intensive code blocks on Intel Itanium architecture. The author uses simulator runs to validate the correctness and feasibility of proposed techniques. Keeping that in mind, there is a possibility of using discrete simulator runs for refining and guiding the result interpretation from compile-time based performance modeling approximation approaches.

Subscribers who liked this article also read:
Runtime environment security models
by Selim Aissi, Intel R&D, Intel Corp. The tremendous new potential...
Deploying Oracle9i Real Application Clusters on Intel® architecture-based clusters
Information storage and retrieval lies at the heart of almost all core...
Boosting Cryptography Performance with Intel® Libraries
by Muneesh Nagpal, server applications engineer, Core Software Divisio...

If you're interested in this topic, these articles may be helpful:

Utilizing thread pools in performance-critical applications
by Blake Thompson, application engineer, Intel Corp. When using thr...
Online Trial: Rational Performance Tester
Now you can try out Rational Performance Tester online without having ...
Fundamentals of Web site acceleration: performance starts at the Web server
Port80 Software Inc. What best practices can developers use in Web ...
Intel® VTune™ Performance Analyzer Version 7.2 for Windows
Streamline your code in just a few clicks, collect, analyze and displa...
High-performance MySQL: optimization, backups, replication, load balancing & more
by Jeremy Zawodny and Derek J. Balling, O'Reilly Media Inc. As use...

Related Jobs:

Sr. Software Engineer #RX1000022561 - CA - Sunnyvale - Yahoo! Inc.
Sr. Software Engineer, Web Search Runtime and Relevance Job No. R...
IT Specialist (Operating Systems) IBM *Roster* #59477197 - MD - Prince Georges County - USAJOBS
MAJOR DUTIES: Top As an Information Technology Management Speci...
Sr. Software Engineer #RX1000023977 - CA - Sunnyvale - Yahoo! Inc.
Sr. Software Engineer - Yahoo! Media Monetization Eng. Job No. RX...
Senior Presentation Layer Developer #1511 - TX - Austin - aQuantive, Inc.
Senior Presentation Layer Developer Job ID: 1511 Business Unit: A...
Principal Performance/Benchmarking Engineer #5789-DGS - MA - Natick - The MathWorks
Principal Performance/Benchmarking Engineer Job #: 5789-DG...
Java Developer #23335 - NY - New York - Morgan Stanley
Java Developer Date Posted: 7/27/2007 Functional Area: Inform...
Systems Administrator #1623 - TX - Houston - Affiliated Computer Services, Inc.
Affiliated Computer Services, Inc., ACS, is a global FORTUNE 500 compa...
.NET Developer w/ SQL #20179 - WA - Seattle - iGate Mastech
ยท Required Skills: SQL Server 2005, T-SQL, C#, ASP.NET, XML,...
Software Engineer #mit-00004412 - MA - Cambridge - Massachusetts Institute Of Technology
Title: Software Engineer Req Number: mit-00004412 Department: Comp...
AI Programmer - Senior #16520 - CA - Woodland Hills - Activision, Inc.
AI Programmer - Senior Apply Online Descriptio...