1
我想並行化函數S並鎖定每個節點,但我一直在獲取核心轉儲。我試圖在圖的每個節點中使用一個鎖。如果我在我的節點上使用單個鎖,它將起作用。在openMP中使用lock轉儲的核心
for (l = 0; l < n; l++)
omp_init_lock(&(lock[l]));
#pragma omp parallel for num_threads(16)default(none) private(v)shared(n,Xof,lock)
for(v = 0; v < n; v++) {
omp_set_lock(&(lock[v]));
if(Xof[v] == NYC)
{
S(v);
}
omp_unset_lock(&(lock[v]));
}
你是如何申報鎖定的? 是否有其他地方你正在訪問可能導致數據競爭的共享狀態? – user2548418 2015-02-10 01:35:20
omp_lock_t lock [n]; (l = 0; l
dibid
2015-02-10 07:12:14
問題是,當我使用一個單一的鎖,我沒有得到任何核心轉儲 – dibid 2015-02-10 07:12:38