Performance Gain with Newer XLC Compiler
Anh Tuyen Tran 2700009ET3 Comments (2) Visits (10359)
Programmers put effort into optimizing their applications for performance. Still, performance gain could also be achieved by simply switching to a newer version of IBM compiler. Although improvement might vary depending on the design and intent of each application, performance difference becomes more visible for programs that handle large amount of data.
The following simple program
was designed to require a lot of data: multiplication of two matrices with
large dimensions. (It was not written to multiply the matrices faster). Due to
the size of data, the number of registers available on the CPU becomes
insufficient to hold program data effectively. Spill! The source code of the
program matMult.c can be found here .
Let’s have a look at the performance
of this program when using V90, V10.1 and V11.1 XLC compilers on AIX. We can see that the time needed to do the computation has been improved just by switching from V9 to V11.1.
$ time ./v10MatMult Elapsed Time Without I/O:
27978.91 ms. <== V10.1 XLC compiler real 0m28.10s user 0m28.03s sys 0m0.00s
$ time ./v10MatMult
Elapsed Time Without I/O: 27978.91 ms. <== V10.1 XLC compiler
The compiler command in use is:
Please note that the above result comes from a regular Power 6 machine with the following specifications.
In order to verify it with a performance machine, please find information about how to access IBM Sandbox demo at the following page.
Anh Tuyen Tran, IBM