Сито Эратосфена методом параллельных данных - PullRequest
1 голос
/ 26 сентября 2010

Я пытаюсь реализовать задачу Sieve of Eratosthenes параллельным методом данных с использованием pthreads, но я не могу понять, как поток-1 при нахождении "2" представляет собой простое число, передаваемое всем остальным потокам и когда все остальные потоки помечают кратные 2, они должны снова ждать следующего простого числа. Как будет реализовано многократное ожидание потоков?

1 Ответ

0 голосов
/ 27 сентября 2010

Прежде чем смотреть на фактические конструкции программы, вам сначала нужно правильно настроить алгоритм. Я думаю, у вас есть проблема с поиском функции здесь, потому что у вас нет правильного алгоритма для параллельного сита.

Для начала, ключевым критерием в параллельных алгоритмах является распределение работы по потокам. Если бы все потоки делали одно и то же, никакого ускорения не было бы вообще. Но здесь совершенно неясно, каково распределение работы.

Я даже не уверен, что ваши темы должны ждать. Это неэффективно; лучшие проекты - те, где все потоки выполняют работу всегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...