Posts by rjs5
21)
Message boards :
Number crunching :
Optimized app ?
(Message 640)
Posted 4 Nov 2015 by rjs5 Post: The perf tool reports show that GCC spends a majority of time in the power and exponential functions. The icc version seems to be about 2x to 3x faster than the gcc versions when using the same (I think) standard libm libraries. 1. I think the school sponsored project could use the icc compiler as an educational institution. 2. I am amazed that I was able to build something that will run. I will walk anyone who wants through the processing of duplicating it. I did not try the cruncher version. I would probably forward comments to Sefef/Chruncher rather than propagate yet another version. 3. I compiled with -O3. I think the icc default is sse2. I am not sure the full applications will see the same performance improvement. 4. I have only built the one Linux version. 5. It should have no problems on AMD CPU and like another comment, I will look at CLANG. |
22)
Message boards :
Number crunching :
Optimized app ?
(Message 632)
Posted 3 Nov 2015 by rjs5 Post: Denis performance seems to be strongly related to the compiler version and the way the compiler handles the math library. I built Denis in a Ubuntu 14.04 virtualbox with two compilers. gcc v4.8.4 and Intel icc v16. I ran the current Denis 64-bit application, the recompiled gcc and icc versions. The user time was 8.872s, 7.888s and 2.996s respectively on the VM running on my i7-5930K CPU. The perf tool reports show that GCC spends a majority of time in the power and exponential functions. The icc version seems to be about 2x to 3x faster than the gcc versions when using the same (I think) standard libm libraries. the gcc version seems to spend about 75% of its execution time in the power and exponential libm functions. The icc version seems to be able to eliminate most of that time. time ./CRLP2011EPI_105_x86_64-pc-linux-gnu in real 0m 10.958s user 0m 8.872s sys 0m 0.016s rjs@rjs-VirtualBox:~/boinc/denis/denis-boinc-baseapp$ time ./denis.icc in real 0m 5.583s user 0m 2.996s sys 0m 0.028s rjs@rjs-VirtualBox:~/boinc/denis/denis-boinc-baseapp$ time ./denis.g++ in real 0m 10.465s user 0m 7.888s sys 0m 0.020s export BDIR=/home/rjs/boinc/source/boinc export CC=icc export CC=g++ OPT=" -g -O3 " $CC $OPT app.cpp -I$BDIR -I$BDIR/api -I$BDIR/lib -lboinc -lboinc_api -o denis.$CC rjs@rjs-VirtualBox:~/boinc/denis/denis-boinc-baseapp$ icc -v icc version 16.0.0 (gcc version 4.8.0 compatibility) rjs@rjs-VirtualBox:~/boinc/denis/denis-boinc-baseapp$ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04' gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) Perf from the icc run "denis.icc in" 41.38% denis.icc denis.icc [.] _Z12computeRatesdPdS_S_S_ 37.36% denis.icc denis.icc [.] __libm_exp_e7 9.07% denis.icc denis.icc [.] __libm_pow_e7 4.91% denis.icc denis.icc [.] main 3.71% denis.icc denis.icc [.] __libm_log_e7 1.99% denis.icc denis.icc [.] exp 0.28% denis.icc denis.icc [.] boinc_time_to_checkpoint@plt Perf from the g++ run "denis.g++ in" 31.43% denis.g++ libm-2.19.so [.] __ieee754_pow_sse2 30.57% denis.g++ libm-2.19.so [.] __ieee754_exp_sse2 15.96% denis.g++ libm-2.19.so [.] __exp1 9.97% denis.g++ denis.g++ [.] _Z12computeRatesdPdS_S_S_ 3.62% denis.g++ libm-2.19.so [.] __ieee754_log_sse2 3.21% denis.g++ libm-2.19.so [.] __GI___exp 2.18% denis.g++ libm-2.19.so [.] __pow 1.34% denis.g++ denis.g++ [.] _Z10solveModeliPdS_S_S_6CONFIGRS_i 0.35% denis.g++ libm-2.19.so [.] @plt ldd denis.icc linux-vdso.so.1 => (0x00007fff7ffd6000) libboinc.so.7 => /usr/lib/libboinc.so.7 (0x00007f4c7a288000) libboinc_api.so.7 => /usr/lib/libboinc_api.so.7 (0x00007f4c7a068000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c79d62000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4c79a5e000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4c79848000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c79483000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4c7927f000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4c79061000) /lib64/ld-linux-x86-64.so.2 (0x00007f4c7a4fd000) ldd denis.g++ linux-vdso.so.1 => (0x00007ffc6f3bd000) libboinc.so.7 => /usr/lib/libboinc.so.7 (0x00007fd8b6b09000) libboinc_api.so.7 => /usr/lib/libboinc_api.so.7 (0x00007fd8b68e9000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd8b65e5000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd8b62df000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd8b60c9000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd8b5d04000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd8b5ae6000) /lib64/ld-linux-x86-64.so.2 (0x00007fd8b6d7e000) |
Previous 20