Size: a a a

2018 July 10

NK

ID:256133151 in Go Get A Job
зачем же ж в эратосфене последовательная обработка?...
источник

NK

ID:256133151 in Go Get A Job
Евгений Лисицкий
https://play.golang.org/p/9U22NfrXeq
Пример кажется надуманным (честно  сам его таким считал), но там можно увидеть идею пайплайна - то есть последовательной обработки потока данных разными горутинами.
спасибо, посмотрю
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
ID:256133151
зачем же ж в эратосфене последовательная обработка?...
проверка неделимости на ранее найденные простые числа
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
можно сделать циклом, конечно
источник

S

ShelterSkelter in Go Get A Job
Обсуждение из разряда Моне VS Пикассо "а нах тыт тут такой мазок сделал?" 😀
источник

NK

ID:256133151 in Go Get A Job
Евгений Лисицкий
проверка неделимости на ранее найденные простые числа
это уже не решето эратосфена
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
ID:256133151
это уже не решето эратосфена
строго говоря да,  
это скоее функциональный код Дэвида Тёрнера часто принимаемый за решето Эратосфена,
подход не с обходом массива, а с фильтрацией кандидатов
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
но такой вариант  лучше ложится на го
источник

NK

ID:256133151 in Go Get A Job
Евгений Лисицкий
https://play.golang.org/p/9U22NfrXeq
Пример кажется надуманным (честно  сам его таким считал), но там можно увидеть идею пайплайна - то есть последовательной обработки потока данных разными горутинами.
На мой взгляд не то что бы неоптимальный вариант, а вообще ад.
источник

NK

ID:256133151 in Go Get A Job
обычное однопоточное решето Эратосфена будет раз в тыщу круче.
источник

NK

ID:256133151 in Go Get A Job
видимо да, автор хотел показать принцип.. чего-то. Непонятный алгоритм (
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
зато это можно разложить хоть на 100 ядер
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
кстати, однопоточная математика как правило всегда быстрее... пока не упрется в единственное ядро
источник

NK

ID:256133151 in Go Get A Job
Евгений Лисицкий
кстати, однопоточная математика как правило всегда быстрее... пока не упрется в единственное ядро
да нет, это мой косяк был. У решета Эратосфена же каждый последующий шаг должен работать на основе результатов предыдущих.
источник

NK

ID:256133151 in Go Get A Job
Евгений Лисицкий
зато это можно разложить хоть на 100 ядер
Поэтому его нельзя "разложить"
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
в этом варианте каждый новый фильтр можно запускать в отдельной горутине и вешать на отдельное ядро. То есть начинаем на одном, и с каждым новым найденным числом производительность не уменьшается (пока все ядра не займем)
источник

m

many-faced in Go Get A Job
Евгений Лисицкий
в этом варианте каждый новый фильтр можно запускать в отдельной горутине и вешать на отдельное ядро. То есть начинаем на одном, и с каждым новым найденным числом производительность не уменьшается (пока все ядра не займем)
да, но поскольку в каждый новый фильтр мы передаём одни и те же каналы, то они не могут работать параллельно же
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
не очень понял
у вас идет поток чисел, какие-то отсеиваются сразу, какие-то доходят дальше,
Те, что долшли дальше могут обрабатываться независимо от тех, что в начале.
Идельной загрузки конечно не будет - т.к. думаю, много будет отсеиваться на начальных этапах
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
Кстати, можно же начальные фильтры параллелить - с учетом того
источник

ЕЛ

Евгений Лисицкий in Go Get A Job
(но это уже немного другой алгоритм)
источник