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