- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
So, I would like to know what the compiler strategy is in creating FORTRAN executables. What is the difference between vectorizing and parallelizing? Will I generally see sharing of the two processors for code compiled this way? Why does the parallel code more fully occupy the two processors but not finish any faster?
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Vectorizing and parallelizing are different. Vectorizing is making use of the SSE instructions to perform up to four operations in a single instruction. This is independent of parallelizing.
Parallelizing is finding opportunities where work can be done in more than one thread, typically array operations in loops.
Unless you can see how the threads were actually used, you don't know if, perhaps, one thread did almost all of the work. It's also possible that your program is restricted by memory access time, which parallelzation would not help (might even hurt). The results you get suggest that might be the case.
The Intel Thread Profiler is a good tool to visualize how your program is using threads. You should also use the -opt-report switch and its keywords to get more advanced optimization reports from the parallelizier to see if there are hints as to what could be improved.
