A group of international compiler experts on Intel® Itanium® processors, including representatives from HP, Intel Corporation, the Gelato Federation, and the GCC community, recently came together to consider Itanium processor-specific improvements to the GNU Compiler Collection (GCC)—a multi-platform set of compilers for C,
C++, Fortran, Objective-C, and the Java™ programming language as well as others. The workshop,
hosted by the Gelato Federation and the Federation's founding sponsor, HP, was held on January
26-27 in Geneva, Switzerland. The group discussed possible GCC optimizations with a goal of
producing faster running code for Itanium 2 processors, ideally in shorter compilation times.
GCC Tweaks Help Itanium Adoption
Improving GCC performance on Itanium is important in the acceleration of the processor's
adoption in the broader computing community beyond high-performance computing. The Itaniumbased
platform is unique because it relies far more on the compiler in comparison to other
platforms, and GCC is the standard compiler on GNU/Linux distributions. Many have dismissed
Itanium-based platforms as viable determined only on GCC-compiled application performance.
Until this point, GCC has not been fined-tuned specifically for Itanium and its high-performance
features. Thus, improving GCC performance on Itanium will mean automatically improving
thousands of applications and libraries provided by Linux distributions for the Itanium.
On selecting improvements to address, Professor Wen-mei Hwu of the University of Illinois at
Urbana-Champaign explains, "We were very judicious in selecting our initial projects. We
systematically discussed several potential improvements to GCC and based our proposals on a
combination of estimated benefit, effort to implement, and likelihood of GCC community
acceptance. In addition, benefits were determined using other compilers that have already
implemented the optimizations under consideration."
The group agreed to tackle the three top recommendations: superblock scheduling, rotating register
support, and memory disambiguation with additional plans for targeting future modifications. As
part of an improved optimization set, superblock scheduling has an estimated gain between 5% and
10%; rotating register support has an estimated gain between 2% and 30%; and memory
disambiguation has an estimated gain up to 10%. Beyond the boost in performance for Itanium,
these modifications are also expected to benefit other platforms.
According to Al Stone, senior software engineer at HP and co-organizer of the workshop, "This
meeting was a great success to move the goals of the organization forward. The face-to-face
discussions enabled attendees to quickly pinpoint and prioritize optimizations to implement, to
build collaborative relationships, and to develop a strategic plan of action."
More details about the workshop can be found at:
http://www.gelato.org/community/workshop/gcc/index.php .
Coordination Key
Since accepting improvements into the GCC development cycle is under the control of the GCC
community, working with the GCC developers and keeping them informed of work progress is key
to the acceptance of these proposed improvements. Attending the workshop was Gerald Pfeifer, a
GCC developer and project manager at Novell, who gave keen insight on building a strong
relationship with the GCC community. "You must keep an open line of communication and
collaboration between project developers and the GCC community." Pfeifer says. "GCC is used by
millions of people who have great expectations in terms of the stability and performance of these
compilers. GCC developers cannot simply accept a series of patches if they are not confident with
them."
Measures are in place to promote coordination between the Linux Itanium project developers and
the GCC representatives to insure initial efforts will be implemented and to pave the way for future
work. Close contact is maintained through an active mailing list, bi-weekly conference calls, and a
workgroup wiki. In addition, several workshop attendees—HP; Intel; and Gelato members,
University of Illinois at Urbana-Champaign and Institute for System Programming of the Russian
Academy of Sciences—have submitted papers about specific improvement efforts to the GCC
Summit June 22-24 in Ottawa, Canada. Development contributions are planned to be made
according to the GCC 4.1 release cycle schedule, and results will be shared at the Gelato
Federation Meeting May 23-25 in San Jose, California, http://www.gelato.org/community/events/sanjose .
About Gelato
The Gelato Federation is the global research community dedicated to advancing the Linux Itanium
platform through collaborative relationships targeting real-world problems and solutions. Gelato
members are suppliers and users of Linux Itanium technology with a shared goal of producing
open-source solutions for academic, government, and industrial HPC research. The Gelato portal,
http://www.gelato.org , serves as the primary channel for Federation business and collaborations.
Information about Gelato members' software and solutions are available through the portal, and the
community is welcome to participate and contribute.
If you'd like more information on this topic, please contact Nan Holda via email at nan@gelato.org
or by phone at 217-265-0947.
http://www.gelato.org