Today I decided to try out some of the examples. Since I'm more familiar with Windows I've started out on that.
The installation is Parallel Studio XE 2016.4.062 over Microsoft Visual Studio 2013.
The first example chosen is the Auto Vectorization example.
The trouble starts almost immediately when I'm told to do the following:
1. Start Visual Studio and open the solution file matrix_vector_multiplication_c.sln
Since this isn't the name of the solution file the instructions following make no sense at all.
On the next page of the tutorial I'm supposed to set a baseline for testing. But again the instructions are senseless.
1. Select Project > Properties. The project property pages window appears. 2. Select Configuration Properties > C/C++ > Optimization . 3. For Optimization, select Minimum Size(/O1) from the dropdown list.
There is no C/C++ > Optimization selection below Configuration Properties, so the instructions can't be followed.
This completely defeats the training exercise. I certainly hope some of the others work, otherwise I'm not going to learn much.
Succeeded in following the LEO (offload) tutorial under mic_examples with few issues. There were small layout differences but the tutorials were written for MSVS 2010 so that's to be expected. Then I went back to the first one and was able to find the missing items in the menus. I have no idea where they went the first time, but I'm glad I found them.
Tonight I decided to have a crack at the same samples under CentOS to see how different it would be using Eclipse as a build environment, and immediately ran into several problems.
I have installed Parallel Studio XE 2018 Update 1 Professional but the only samples included are those for Advisor, Inspector and Vtune Amplifier. All the rest are totally missing. Also, any attempt to unpack them from a GUI environment fails because they were installed as root user, a decision made by the installer program and not the end user.
Honestly, I'm becoming tired of struggling against this stuff. It becomes apparent why there's such low interest in the Xeon Phi.
Back at it again under Windows 7. This time I'm doing the threading example, and again the instructions are out of sync with the actual code.
In the build_with_openmp.cpp example I'm supposed to edit the draw_task function, which doesn't exist. In addition the comments in source state:
todo: uncomment following routine for the Intel(R) Cilk(TM) Plus implementation
Which isn't even relevant for this file. This tutorial is utter nonsense.
The build_with_tbb.cpp example is similarly rubbish. The three headers I'm supposed to uncomment aren't even in the source code and had to be added. And why all this messing about editing files anyhow? They're separate implementations so shouldn't need editing at all.
Sloppy, sloppy, sloppy work Intel.
Serial 6.356 sec
OpenMP 0.812 sec
Tbb 0.468 sec
Cilk+ 0.500 sec
OK, I get the point of the exercise, there's a lot of gain in parallelizing code.
convolution example throws over 100 errors, the most serious of which seems to be "Could not find ar.exe"
I don't have Intel graphics on this machine so the installer probably didn't include the bits needed to utilize it.
I was expecting, at worst, a runtime error.
NQueens example - can't find libmmdd.lib and cikrts.lib
OK, I give up. This compiler package is broken.
A little research shows me this has been broken since 2013 as well.
Since I have over $30,000 invested in Xeon Phi hardware I am not happy. Quality Control needs a good kick in the arse.
I can't believe the official reply to the above report either. "Oh, just use the batchfile." No, he's not working in the CLI dumbkopf.
And nor am I, some of us evolved past that 25 years ago.
Back to CentOS for another attempt. Downloaded Parallel Studio XE 2018 Update 2 and this time I was able to not only use the GUI installer but it allowed the option of installing in the Home directory, thus avoiding the permissions problem.
I also found the examples online at
and was able to pop them in where they had been installed in the Windows version, giving an identical installation.
Deleted and reinstalled Eclipse, merged the latest CDT package and added the ICC support. Ready for the moon!
Well, not quite. There are no Eclipse project files in the package. Grrrr. Is this stuff built by dinosaurs or idiots? I can't tell.
OK, let's try it from the command line.
[coinstash@landing bin]$ ./compilervars.sh intel64 [coinstash@landing bin]$ icc -v bash: icc: command not found... [coinstash@landing bin]$ icpc -v bash: icpc: command not found...
Right. So the state of affairs is that we're working on a broken operating system with broken tools.
Looks like I'll have to build my own OS and compilers again. I hate that.
Umm, you need to "source" those scripts, since they are adding state to the environment in the current shell. If you execute them (as you did) they'll set all the necessary state in a new shell which will then immediately exit!
Yeah, the subtleties of Linux. Funny, I've been using it since my first CD copy of Slackware in 1993 - including an eight year stint working daily on BeOS and Haiku development, which uses Bash - and had never heard of that. I guess that's why I prefer to stay out of the shell.
Thanks for the tip, it's a step in the right direction. The user docs I was following certainly didn't know about it.