Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:intel_students_cup:icc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
etc:common_activities:intel_students_cup:icc [2007/11/05 12:02] jcmvbkbcetc:common_activities:intel_students_cup:icc [2008/01/03 02:32] (current) – external edit 127.0.0.1
Line 7: Line 7:
  
 ===== Векторизация ===== ===== Векторизация =====
-Включается ключом -x... или -ax... В примере -- -xP. Перед этим робовал -axT, но выяснил, что автоопределение типа процессора работает странно. С -axT Core Duo T2300 использовал работал по коду сопроцессора, а не по SSE.+Включается ключом -x... или -ax... В примере -- -xP. Перед этим робовал -axT, но выяснил, что автоопределение типа процессора работает странно. С -axT Core Duo T2300 работал по коду сопроцессора, а не по SSE.
  
 В совокупности с ippsSin время 5.808/кадр. В совокупности с ippsSin время 5.808/кадр.
Line 96: Line 96:
  
 Существенной разницы не заметил. Существенной разницы не заметил.
 +
 +===== OpenMP =====
 +В коде интересная ловушка: #pragma omp parallel for **ordered**. Насколько я понял из спецификации OpenMP, ordered в цикле позволяет помещать внутри него секции ordered, которые будут выполняться всегда в одном и том же порядке. Однако, в нашем коде нет таких секций. Убрал ordered. Скорость возросла как и ожидалось, почти вдвое, при сохранении точности. Странно, что gcc слово ordered не смутило.
 +
 +В совокупности с ippSin и векторизацией -- 2.843/кадр.
 +
 +<file>
 +diff -ruN src-org/sunset.cpp src-icc/sunset.cpp
 +--- src-org/sunset.cpp  2007-09-16 12:04:44.000000000 +0400
 ++++ src-icc/sunset.cpp  2007-11-05 13:44:08.000000000 +0300
 +@@ -656,7 +657,7 @@
 +         flOmegaTime[i] = flTime * flOmega[i];
 +
 + #if defined (_OPENMP)
 +-    #pragma omp parallel for ordered \
 ++    #pragma omp parallel for \
 +         private(k, i, l, t, iPointIndex, iColorIndex, j) \
 +         private(T2, FI2, CT2, ST2, chStatus0, flR) \
 +         private(CFI2, SFI2, flDeltaFi2, flDeltaT2, flSunPoint) \
 +</file>
 +
etc/common_activities/intel_students_cup/icc.1194253363.txt.gz · Last modified: 2008/01/03 02:32 (external edit)