Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
7679 Discussions

Compiling with ICC extremely slow and results segfaults

I recently installed the Composer XE trial to see if it fits into our toolchain and improve our distribution.

During the install I noticed the process was extremely slow. Increasing the IOWait to up to 20%, the entire install process took better than three hours. The only compatibility issue was the OS, and the installer requires 10.10 or something --I ignored it hoping not much has changed and I hadn't seen any other issues with it online. I was hopefull everything was fine though and proceeded to attempt compilation of our software.

We usually use GCC and as a first run decided to swap out GCC with ICC. Everything worked, but it appears the linking phase was linking against some GCC libraries instead of ICC. Not sure what PATH variables I should set, but something more troubling was how long it took to compile. An hour and a half --with huge IOWait times. GCC takes under 8minutes to compile our distribution.

I did have a couple other processes running, but only ICC seems to be causing IOWait issues --once killed the IOWait drops to 0% and my operating system works as normal.I really want to figure out why it takes so long to compile --obviously a correllary to the huge IOWait percentage.

Thanks, Nicholas

OS: Ubuntu 11.10 64bit
Memory: 16Gb
Processors: 4 hyper-threaded Xeon 3.2Ghz
0 Kudos
2 Replies
Hi Nicholas

Thank you for letting us know regarding this. We are really interested in looking into the code to see why this is happening. Could you please share a testcase by which we can analyze this. You could also share the code base which you are using if its possible. You could always make this thread private so that public can not have access to the code base you send us. Looking forward for your update on the same.

Thanks and Regards
I've actaully just solved the problem, although the solution is not optimal or have much basis in reality. In gathering information for you to help in sovling the problem the following (very) minimal program when compiled through time, produced, real 1m27.523s, with the others, user and sys, <0m0.200s (as expected). Clearly ICC is waiting for something, sleeping until some resource is freed. The 'program' compiled in this case was, int main(){ return 0; } (Quite minimal indeed). I checked the syslog and found a number of Hard-drive errors that pop-up ONLY when ICC is run. I've never seen them before and I regularly do disk-checks without a problem (the syslog is attached,). I'm not much of a hardware guy and really don't understand the errors. But I know that sda1 is my /tmp folder. I haven't had much problem in the past with that drive, and obviously ICC being the only application that is affected by some error on it is curious. It hits the problem EVERY time. Yet, no other application is irresponsive or affected by huge wait times on the drive. I disabled the drive and moved my /tmp to my main disk. The problem went away. I wont argue there is an issue with the drive, but my curiosity compels me to ask why would this be happening only with icc? I can send more details as this is such an abstruse case. Thanks, Nicholas