2010-09-26 69 views
1

我想通过使用pthreads的数据并行方法来实现Eratosthenes筛选,但是我无法弄清楚线程1如何找到“2”是一个质数广播对所有其他线程,当所有其他线程标记为2的倍数时,他们应该再等待下一个素数。多线程如何等待线程被执行?通过数据并行方法筛选Eratosthenes

+1

你看过条件变量吗? – Starkey 2010-09-26 14:47:12

回答

0

在查看实际的程序结构之前,首先需要让算法正确。我认为你在这里找到一个函数有问题,因为你没有一个适用于平行筛选的算法。

对于初学者来说,并行算法的一个关键标准是跨线程的工作分配。如果所有线程都完全相同,则根本不会加速。但这里完全不清楚工作分配是什么。

我甚至不确定你的线程应该等待。这是无效的;最好的设计是所有线程始终都能正常工作的设计。