2016-06-01 60 views
-2

我想通過添加「#pragma omp parallel for」來並行運行循環,但是這並沒有提供任何建議來說明我可以如何平行循環?如何在OpenMP中並行這個for循環?

#pragma omp parallel for 
    for (p = split; *p != 0; p++) if (*p == ' ') *p = '0'; 
+1

請添加您用於構建的環境。這看起來像編譯或定義不正確。 – namar0x0309

+0

你發垃圾郵件的任何原因Java標記? – Olaf

回答

5

對於OpenMP來並行化循環,循環迭代次數必須預先確定。在這種特殊情況下,你必須首先要確定字符串長度:

size_t len = strlen(split); 
#pragma omp for 
for (size_t p = 0 ; p < len; ++p) if (split[p] == ' ') split[p] = '0'; 

這是很值得懷疑,你將獲得由並行的任何性能優勢,在這個例子中,雖然。