Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Parallel Studio XE 2016 on Linux Mint: Unsupported?

Andreas_D_1
Beginner
2,556 Views

Dear board users,

I am trying to install Parallel Studio XE 2016 on a Linux Mint 17.3 machine.

I have seen that the installation process does not support LinuxMint, not even Ubuntu if I remember well. My first question is: Why? Linux Mint certainly is not a fringe system and may inherit the user base of Ubuntu as Ubuntu is getting more commercial and disrespects privacy at some points.

When will Linux Mint be supported? Even Ubuntu is based upon Debian, and Debian seems to be supported.

Second question:

I somehow moved through the installation process (we only need intel64 architecture) but compilervers.sh did not work. As I've used icpc 2013 on an older system before, I have copied and adapted older module files we had to mirror those settings with the new folders. I've put everything in ~/.bashrc. No, I can get icpc to respond:

icpc version 16.0.0 (gcc version 3.2.0 compatibility)

and I am able to compile a "helloworld" in C.

Why the "compatibility mode" with a gcc that I don't have (I do have g++ 4.8)? What does "compatibility mode" mean in this scenario?

I would not bother too much but it seems that I can't compile boost because of that.

Could you please point me to a precise list of all the dependencies and how to configure them myself if I can't use neither the installer nor compilervars.sh?

Thank you -

Andreas

 

0 Kudos
28 Replies
Andreas_D_1
Beginner
1,973 Views

It would be fantastic if someone please could answer so I might continue my work..

0 Kudos
mecej4
Honored Contributor III
1,973 Views

Andreas, here are my comments on your questions, from the perspective of an end user such as yourself.

One look at https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg  (viewed at 100% resolution, scrolled to the right), will answer the question as to why Parallel Studio does not officially support <fill-in-your-distro-name> -- there are so many of them, and the number of purchasers of Parallel Studio for Linux probably is probably less than those for Windows.

The list of officially supported distributions is to be seen at https://software.intel.com/en-us/supported-linux-distributions .

I use only OpenSuse Linux (I have used Redhat, Fedora and Debian in the past), which is not supported. Over the last decade, whenever I installed Intel compiler products on OpenSuse, I have ignored the "OS not supported" warning and have never had any compatibility problems.

Support becomes very difficult to provide when the user has installed the Intel compiler package on a Linux version that is not available on a test machine, and even more so if the user has "customized" the installation based on third party advice. How can one provide official support for software in an unknown state on an unfamiliar OS, given that being able to reproduce the problem is often an essential step to diagnosing failure?

P.S. (added in response to #4) : I am not speaking for Intel, and Intel may or may not agree with my statements. Please wait for an Intel representative to respond or consider using Intel Premier Support if you have access to it.

0 Kudos
Andreas_D_1
Beginner
1,973 Views

Dear mecej4,

Thanks a lot for answering!

I must say that I did let the installer do its job - seemed to work. But then, I needed to set some environment variables, and because I had no list which ones to set I had a last resort to try to copy settings from 2013 version of the same compiler. Is that not reasonable? Where did I go wrong?

Only now that the compiler tells me of a "compatibility mode" that I did not command, I'm getting trouble but I'm still asking simple questions, like: Waht is that compatibility mode? My Linux Mint is out of the box, not "tailored" - please try it for yourself.

It must be also obvious that a billion dollar company like Intel can not close its eyes before the fact that there ARE other Linux flavors - OSes are dying, new ones are born. Intel also changes a lot of settings all the time - why should the rest of the world be punished for doing the same?

So: As Intel does not want to update the installer notr the compilervars.sh script - please provide at least a full list of the prerequisites of Intel XE 2016 compiler. I can't look into the source code. Do I really need to use strace to find out what the compiler tries to accomplish? Am I dreaming?

g++ works like a charm - it's a bit of a shame that if I pay much more money, I get no support at all. as it seems.

Even worse: We bought Intel processors worth some hundred thousand dollars and have our customers install Intel clusters - and that is all you have to say?

I get MUCH more support if I buy five cars - which would be the corresponding sum.

I would really appreciate if you could at least point me to someone able and willing to help.

Thank you!

 

 

0 Kudos
pbkenned1
Employee
1,973 Views

Hello,

Sorry for the late reply, we are shorthanded over the holidays.

>>>I am trying to install Parallel Studio XE 2016 on a Linux Mint 17.3 machine.

What edition?  Fourteen are listed here.

>>>When will Linux Mint be supported? Even Ubuntu is based upon Debian, and Debian seems to be supported.

The PSXE 2016 update 1 C++ Release Notes list the system requirements.

Both Ubuntu and Debian are supported.  Linux Mint is not currently on our roadmap.  Our product team constantly monitors the various Linux distributions, and once request for support reaches a critical mass, we'll seriously consider adding support. 

Your request is the first I've seen for Linux Mint support in this Forum.  I'll let the product team know.  Others may have requested via other channels, but not to my knowledge.  In any event, I can file a feature request for support to get this officially on record.

However, if Linux Mint 17.3 is based on a supported version of Ubuntu, then we would expect correct functionality, as mecej4 said.  But we can't claim support without exhaustive testing and certification.  It's an enormous effort and expense to qualify a new distribution, and we don't have a army to do the job. 

>>>Why the "compatibility mode" with a gcc that I don't have (I do have g++ 4.8)? What does "compatibility mode" mean in this scenario?

In this context, compatibility means source code compatibility with that particular version of gcc, in particular, with the headers and gcc language extensions supplied by that version. 

If you open a terminal window and enter 'gcc --version', what is the output?  If you don't have gcc-3.2 installed, then something is amiss and I can investigate on Ubuntu or whatever distribution comes closest to Linux Mint 17.3. 

Patrick

0 Kudos
pbkenned1
Employee
1,973 Views

>>> I can file a feature request for support to get this officially on record.

Internal tracking ID:  DPD200380351

Patrick

0 Kudos
pbkenned1
Employee
1,973 Views

The developer to whom I assigned the feature request for Linux Mint support has forwarded the request to our product team manager.  If there are others who would like to see this happen, please reply to this thread and we'll tally the demand.

>>>Second question:...icpc version 16.0.0 (gcc version 3.2.0 compatibility)

Our compiler determines the gcc compatibility by which gcc is in path.  It basically does “gcc –v” to figure out the compatibility string.

[pbkenned]$ gcc -v
Using built-in specs.
...
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)


[pbkenned]$ icc -v
icc version 16.0.1 (gcc version 4.4.7 compatibility)
[pbkenned]$
 

Patrick

0 Kudos
mecej4
Honored Contributor III
1,973 Views

I find it odd that a current distribution of Linux only has a GCC version that was put out in 2002.

0 Kudos
pbkenned1
Employee
1,973 Views

So odd that it can't be the case that gcc 3.2 is the stock system compiler.  I'd assume at least gcc 4.9 or later, if the distro is based off a recent Ubuntu.  Ubuntu 15.01 is supported for the 16.0.1 Intel compilers, and has gcc 4.9 as the stock compiler.

Looks like a system configuration error, perhaps due to:

>>>As I've used icpc 2013 on an older system before, I have copied and adapted older module files we had to mirror those settings with the new folders.

Without a reply from the thread originator, we can only speculate.

Patrick

0 Kudos
Andreas_D_1
Beginner
1,973 Views

Hello there,

I wish you all a Happy New Year,

Thanks for all the costructive answers!

I was wondering myself about the gcc / g++ version because

 # gcc -v
Using built-in specs.
COLLECT_GCC=gcc
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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

and

boss boost_1_48_0 # 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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

Linux Mint 17 is based upon Ubuntu 14.04

I am not aware that I'd misconfigure something because everything I'm using is "out of the box", including Mint.

Because the Intel installer had no idea about the operating system, I had to adapt environment settings manually:

export GXX_ROOT=/usr/lib/gcc/x86_64-linux-gnu/4.8/
export GXX_INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.8/include/
export LC_ALL=C
export LANGUAGE=C
export LC_LANGUAGE=C
export LC_MESSAGES=C

# Intel compiler variables:
# ande 20151013

CPATH=/opt/intel/compilers_and_libraries_2016.0.109/mkl/include:/opt/intel/compilers_and_libraries_2016.0.109/tbb/include

INCLUDE=/opt/intel/compilers_and_libraries_2016.0.109/mkl/include

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/compilers_and_libraries_2016.0.109/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/tbb/lib/intel64/gcc4.4

LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.0.109/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/tbb/lib/intel64/gcc4.4

MANPATH=$MANPATH:/opt/intel/compilers_and_libraries_2016.0.109/man/en_US

MIC_LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.0.109/mkl/lib/mic:/opt/intel/compilers_and_libraries_2016.0.109/tbb/lib/mic
MIC_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2016.0.109/tbb/lib/mic
MKL_HOME=/opt/intel/compilers_and_libraries_2016.0.109/mkl
NLSPATH=/opt/intel/compilers_and_libraries_2016.0.109/mkl/lib/intel64/locale/%l_%t/%N
NLS_PATH=/opt/intel/compilers_and_libraries_2016.0.109/debugger/intel64/locale/%l_%t/%N:/opt/intel/compilers_and_libraries_2016.0.109/ipp/lib/intel64/locale/%l_%t/%N

PATH=$PATH:/opt/intel/compilers_and_libraries_2016.0.109/linux/bin/intel64

I did this by comparing with our module files on a Intel 2013 compiler on a CentOS machine.

Thanks for any hints!

Andreas

0 Kudos
pbkenned1
Employee
1,973 Views

Hello Andreas,

Thanks for the update:

>>>I am not aware that I'd misconfigure something because everything I'm using is "out of the box", including Mint.

Very good, that should make it easier for us to understand what's needed to make the Intel compiler work on Mint 17.3.  My Ubuntu 14.04 system is quite similar, except that it's using gcc-4.9.2 (and we patched the stock kernel):

$ cat /proc/version
Linux version 3.19.2 (gcc version 4.9.2 (Ubuntu 4.9.2-0ubuntu1~14.04) ) #1 SMP Fri Dec 4 11:51:51 PST 2015
$
 

Since you have a stock system, you should have gcc & g++ installed under /usr/bin:

$ which gcc
/usr/bin/gcc
$ which g++
/usr/bin/g++
$
 

Since apparently Intel C++ can't find your gcc-4.8, you might be able to use -gcc-name or -gxx-name as a workaround, considering that you have also set GCC_ROOT and GCC_INCLUDE appropriately.

$ icpc -V
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.0.109 Build 20150815
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

$ icpc -v -gxx-name=/usr/bin/g++
icpc version 16.0.0 (gcc version 4.9.0 compatibility)
$

$ icpc -gxx-name=/usr/bin/g++ -qopenmp get_num_procs.cpp -o get_num_procs.exe
$ ./get_num_procs.exe
 Calling omp_get_num_procs() in a serial region
 omp_get_num_procs() includes hyper-threads if enabled in BIOS
 Number of logical processors = 8
$

$ g++ -fopenmp get_num_procs.cpp -o get_num_procs.exe
$ ./get_num_procs.exe

Calling omp_get_num_procs() in a serial region
 omp_get_num_procs() includes hyper-threads if enabled in BIOS
 Number of logical processors = 8
$
 

Patrick

0 Kudos
Andreas_D_1
Beginner
1,973 Views

Dear Patrick,

thanks - that was quick!

Patrick Kennedy (Intel) wrote:

Very good, that should make it easier for us to understand what's needed to make the Intel compiler work on Mint 17.3.  My Ubuntu 14.04 system is quite similar, except that it's using gcc-4.9.2 (and we patched the stock kernel):

$ cat /proc/version
Linux version 3.19.2 (gcc version 4.9.2 (Ubuntu 4.9.2-0ubuntu1~14.04) ) #1 SMP Fri Dec 4 11:51:51 PST 2015


 

Yup - I have

$ cat /proc/version
Linux version 3.16.0-38-generic (buildd@allspice) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015

Patrick Kennedy (Intel) wrote:

Since you have a stock system, you should have gcc & g++ installed under /usr/bin:

$ which gcc
/usr/bin/gcc
$ which g++
/usr/bin/g++

Yes, same here.
 

Patrick Kennedy (Intel) wrote:
Since apparently Intel C++ can't find your gcc-4.8, you might be able to use -gcc-name or -gxx-name as a workaround, considering that you have also set GCC_ROOT and GCC_INCLUDE appropriately.

GXX_INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.8/include/
GXX_ROOT=/usr/lib/gcc/x86_64-linux-gnu/4.8

OK thanks, I will give it a try with your help and report back here ASAP!

Andreas

0 Kudos
Andreas_D_1
Beginner
1,973 Views

That went a little differently here:

# icpc -V 
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.0.109 Build 20150815
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

boss boost_1_48_0 # icpc -V -gxx-name=/usr/bin/g++
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.0.109 Build 20150815
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

boss boost_1_48_0 # which g++
/usr/bin/g++
boss boost_1_48_0 # icpc -v -gxx-name=/usr/bin/g++
icpc version 16.0.0 (gcc version 3.2.0 compatibility)
boss boost_1_48_0 # /usr/bin/g++ -v
Using built-in specs.
COLLECT_GCC=/usr/bin/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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

icpc seems to think there is a version 3.2 :-/

And as I don't have the get_num_procs file, i couldn't replicate the last steps..

How come you have gcc 4.9? Maybe it's because I am using LUKS..? Or I didn't switch to the recommended kernel yet? To us, a kernel like we have (3.16) is very sufficient for our production.

0 Kudos
pbkenned1
Employee
1,973 Views

>>>icpc seems to think there is a version 3.2 :-/

Sorry to see this issue persists.  I should also mention that icc/icpc looks at $PATH to determine what version of gcc/g++ you have installed. 

>>>How come you have gcc 4.9?

The system came with gcc-4.8 as the baseline, but we then updated to gcc-4.9 and rebuilt the kernel with that:

$ /usr/bin/g++-4.8 --version
g++-4.8 (Ubuntu 4.8.2-19ubuntu1) 4.8.2

$ /usr/bin/g++-4.9 --version
g++-4.9 (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2

Regarding installation of newer GCCs, I find it necessary to update all of $PATH, $INCLUDE, and $LD_LIBRARY_PATH to use the newer version:

For example, if I have a newer gcc installed in /usr/local, say version 4.7, and I want to use that instead of the baseline gcc-4.4.6:

$ which g++
/usr/bin/g++
$ /usr/bin/g++ --version
g++ (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)


$ export PATH="/usr/local/gcc-4.7.2/bin:${PATH}"
$ export LD_LIBRARY_PATH="/usr/local/gcc-4.7.2/lib64:${LD_LIBRARY_PATH}"
$ export INCLUDE="/usr/local/gcc-4.7.2/include:${INCLUDE}"
$ which g++
/usr/local/gcc-4.7.2/bin/g++


$ g++ --version
g++ (GCC) 4.7.2

$ icc -v
icc version 16.0.1 (gcc version 4.7.2 compatibility)
 

I don't know if this will resolve the issue with icpc, but perhaps worth a try. 

Patrick

0 Kudos
Andreas_D_1
Beginner
1,973 Views

Patrick Kennedy (Intel) wrote:
Sorry to see this issue persists.  I should also mention that icc/icpc looks at $PATH to determine what version of gcc/g++ you have installed.

Absolutely: I'm not aware that I have more gcc's or g++es installed, but let's have a look:

# find / -name "gcc" 
/usr/lib/gcc
/usr/bin/gcc
 # find / -name "g++" 
/usr/bin/g++
/usr/share/bash-completion/completions/g++
 # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/intel/compilers_and_libraries_2016.0.109/linux/bin/intel64
 # echo $LD_LIBRARY_PATH 
:/opt/intel/compilers_and_libraries_2016.0.109/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2016.0.109/tbb/lib/intel64/gcc4.4
# echo $INCLUDE 
/opt/intel/compilers_and_libraries_2016.0.109/mkl/include

The /usr/bin/gcc is a link to gcc-4.8, same with g++

I guess $PATH looks good for it contains /usr/bin.

$INCLUDE and $LD_LIBRARY_PATH look a bit suspicious for they seem to have only references to Intel stuff.. is that right? Yes, I did "apt-get install build-essential". Can it be that gcc / g++ are not properly installed?

g++ on the other hand seems to be aware that it has something with 4.8: --with-gxx-include-dir=/usr/include/c++/4.8

Do I need to add that folder to $INCLUDE?

 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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

>>>How come you have gcc 4.9?

The system came with gcc-4.8 as the baseline, but we then updated to gcc-4.9 and rebuilt the kernel with that:

OK but we hope we don't need to install a secong gcc / g++.. right?

Regarding installation of newer GCCs, I find it necessary to update all of $PATH, $INCLUDE, and $LD_LIBRARY_PATH to use the newer version:

For example, if I have a newer gcc installed in /usr/local, say version 4.7, and I want to use that instead of the baseline gcc-4.4.6:

$ which g++
/usr/bin/g++
$ /usr/bin/g++ --version
g++ (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)

$ export PATH="/usr/local/gcc-4.7.2/bin:${PATH}"
$ export LD_LIBRARY_PATH="/usr/local/gcc-4.7.2/lib64:${LD_LIBRARY_PATH}"
$ export INCLUDE="/usr/local/gcc-4.7.2/include:${INCLUDE}"
$ which g++
/usr/local/gcc-4.7.2/bin/g++

$ g++ --version
g++ (GCC) 4.7.2

$ icc -v
icc version 16.0.1 (gcc version 4.7.2 compatibility)
 

I don't know if this will resolve the issue with icpc, but perhaps worth a try.

So you're suggesting that we install a second g++ / gcc "on top" which might fix those path troubles? We'd rather not, but if that is the only viable option..

0 Kudos
pbkenned1
Employee
1,973 Views

I'm not suggesting you install a newer version of gcc.  I see nothing wrong with your baseline gcc installation.  I'm only saying that because icc is not finding your gcc installation, let's act as if you installed a new gcc, and what you'd need to do to make that gcc work.

Try this.  Open a new terminal window.  DON"T run the Intel compiler environment script yet.  Nothing 'Intel' should be in your environment variables.

Make sure $PATH, $INCLUDE, and $LD_LIBRARY_PATH point to your gcc-4.8 binaries, includes, and libraries, and that those items are at the very beginning of the environment variables.  To do that, you should run the export commands.  /usr/bin may already be in $PATH, but it won't hurt to have a duplicate that is at the beginning of $PATH:

export PATH="/usr/bin:${PATH}"

$INCLUDE, and $LD_LIBRARY_PATH probably don't point to the gcc includes and libraries, and if so, those exports are required.

Next, source the Intel compiler environment script.  What does 'icc -v' return now?

Thanks,

Patrick

0 Kudos
TimP
Honored Contributor III
1,973 Views

If you have a recent matching pair of gcc and g++, you should be able to set paths to it as Patrick described and avoid the problems arising from mixing gcc and g++ versions underneath icc.  Or, using your package manager to install the same versions of gcc and g++ ought to fix the problem while using default paths.

0 Kudos
Andreas_D_1
Beginner
1,973 Views

Patrick and Tim,

it sounds reasonable to start from scratch. I uncommented everything I added in the ~/.bashrc (of root and my normal user)

g++ and gcc are still working, at least they show their usual configs:

 $ 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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

 $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
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' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 

.. just as before.

So I try to run compilervars.sh - at least that is what a vendor recommended when we bought the 2013 edition. I have these

# cd /opt/intel
# find . -name "compilervars*"
./compilers_and_libraries_2016.0.109/linux/bin/compilervars_global.sh
./compilers_and_libraries_2016.0.109/linux/bin/compilervars.csh
./compilers_and_libraries_2016.0.109/linux/bin/compilervars_arch.csh
./compilers_and_libraries_2016.0.109/linux/bin/compilervars.sh
./compilers_and_libraries_2016.0.109/linux/bin/compilervars_global.csh
./compilers_and_libraries_2016.0.109/linux/bin/compilervars_arch.sh
./bin/compilervars.csh
./bin/compilervars.sh
./compilers_and_libraries_2016/linux/bin/compilervars.csh
./compilers_and_libraries_2016/linux/bin/compilervars.sh

and I assume it is /opt/intel/bin/compilervars.sh because the installer seems to have set links

This is what I get:

# ./bin/compilervars.sh intel64
./bin/compilervars.sh: 36: /opt/intel/compilers_and_libraries_2016.0.109/linux/daal/bin/daalvars.sh: Bad substitution
./bin/compilervars.sh: 37: /opt/intel/compilers_and_libraries_2016.0.109/linux/daal/bin/daalvars.sh: Bad substitution

Looks like the last 2 lines are the "culprits":

set_daal_env() {
    local daal_bin=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
    local daal=${daal_bin/\/bin/}

I have no idea what "daalvars" are. I would have expected that the installer knows at least about its own dependencies...

0 Kudos
Andreas_D_1
Beginner
1,973 Views

[Double post deleted, see above]

0 Kudos
Andreas_D_1
Beginner
1,973 Views

[Third post deleted, please have a look at the one above]

0 Kudos
TimP
Honored Contributor III
1,741 Views

daalvars refers to the daal library, which is likely not of interest, regardless of whether you installed it.

It seems there have been typos or misunderstandings about compilervars. It's

source compilers_and_libraries_2016.0.109/linux/bin/compilervars.sh intel64

or

. compilers_and_libraries_2016.0.109/linux/bin/compilervars.sh intel64

where '.' is a bash abbreviation for 'source' (intervening space required)

0 Kudos
Reply