icc with cilk not working (library won't load)

icc with cilk not working (library won't load)

BradleyKuszmaul's picture
I'm having trouble with icc using cilk. This trouble is with icc as shown below:

$ icc --version

icc (ICC) 12.0.0 20101006

Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

I wrote a simple program (fib.c), which is attached.

I compiled as

$ icc fib.c -o fib

Then I tried to run and got:

$ ./fib

./fib: error while loading shared libraries: /home/bradley/intel/composerxe-2011.0.084/compiler/lib/intel64/li\\

bcilkrts.so.5: cannot restore segment prot after reloc: Permission denied

It works OK with an older runtime:

$ LD_LIBRARY_PATH=/opt/intel/compilerpro-12.0.0.025/compiler/lib/intel64 ./fib 5

fib 5=5

and it even gets speedup.

Any ideas what I've done wrong?

AttachmentSize
Download fib.c402 bytes
6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Wise Chen (Intel)'s picture

Thanks Bradley,

I tried to reproduce your case here, but I didn't find error like what you said above. See below output:

[wchen18@dpd26 ~]$ LD_LIBRARY_PATH=/opt/spdtools/compiler/cpro/Compiler/12.0/084/composerxe-2011.0.084/compiler/lib/intel64 ./fib 5
fib 5=5
[wchen18@dpd26 ~]$

Could you check your environment again?

Thanks,
Wise

Brandon Hewitt (Intel)'s picture

Based on the error message, I suspect that SELinux* has a problem with the runtime shared object. Is it possible to try setting SELinux to permissive and see if that allows the library to load? I'm working on try to reproduce here.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: "http://software.intel.com/en-us/articles/tools" Software Product Support info: "http://www.intel.com/software/support"
Brandon Hewitt (Intel)'s picture

OK, I have a system set with SELinux on "targeted" settings, and it works.

[cilk]$ icc -V fib.c -o fib

Intel C Intel 64 Compiler XE for applications running on Intel 64, Version 12.0.0.084 Build 20101006

Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

Edison Design Group C/C++ Front End, version 4.1 (Oct 6 2010 18:42:54)

Copyright 1988-2009 Edison Design Group, Inc.

GNU ld version 2.17.50.0.6-5.el5 20061020

[cilk]$ ./fib 5

fib 5=5

I can't do "strict" on the lab machines because it does weird things with the network. If changing the SELinux setting on your system works, maybe I can work with you to get the specific system settings to try to reproduce.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: "http://software.intel.com/en-us/articles/tools" Software Product Support info: "http://www.intel.com/software/support"
BradleyKuszmaul's picture

I downloaded again, and this time it worked (on a different machine). Perhaps I got a bad binary. Or perhaps the wrong binary (or maybe something is wrong with the 64-bit-only version, or maybe it's selinux.) I don't understand why selinux is involved, however. When I install as follows, everything seems to work (on a recent fedora release). sudo skip_selinux_check=yes ./install.sh What's up with selinux and icc anyway? -Bradley

Brandon Hewitt (Intel)'s picture

There are known issues with the installation and selinux which are release noted. However, this shouldn't affect your use of icc as you initially reported the error. If you still have the system where you can get the error with icc, can you try changing your selinux settings and then rerunning icc and see if that fixes it? If it does, I suspect a problem with the Cilk Plus runtime.

Brandon Hewitt Technical Consulting Engineer Tools Knowledge Base: "http://software.intel.com/en-us/articles/tools" Software Product Support info: "http://www.intel.com/software/support"

Login to leave a comment.