ACADEMIA
Linux Itanium Community Joins GCC Developers to Target Itanium Performance
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 Itanium-based 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).