我正在尝试使用pthread的数据并行方法来实现Eratosthenes问题的筛子,但是我不能弄清楚当发现"2“是一个质数时,thread-1是如何广播给所有其他线程的,当所有其他线程标记为2的倍数时,它们应该再次等待下一个质数。如何实现线程的多重等待?
发布于 2010-09-27 17:04:27
在查看实际的程序构造之前,您首先需要获得正确的算法。我认为你在这里找到一个函数是有问题的,因为你没有一个合适的并行筛子的算法。
对于初学者来说,并行算法中的一个关键标准是线程之间的工作分配。如果所有线程都执行完全相同的操作,则根本不会有任何加速。但这里完全不清楚工作分布是什么。
我甚至不确定你的线程是否应该等待。这是低效的;最好的设计是所有线程都在执行工作的设计。
https://stackoverflow.com/questions/3798271
复制相似问题