русский
Germany.ruForen → Архив Досок→ Programmierung

Про многопоточность

17.02.22 17:20
Re: Про многопоточность
 
wasja-de постоялец
in Antwort alex445 17.02.22 12:32, Zuletzt geändert 17.02.22 17:27 (wasja-de)
А все эти штуки не помогают быстрее синус вычислять?


не, не помогают, как кордиком много лет считали, так и до сих пор считают (совсем на заре программирования еще в ряд Тейлора разлагали, но это был совсем ужас), вообще - синус очень редко встречающаяся процедура, в очень многих реальных задачах можно алгоритм так модифицировать, что вызывать синус надо в миллионы раз реже, чем умножение и сложение. В общем также все обстоит и с любой другой операцией кроме плюса, минуса и умножения.


Просто акценты сместились с экономии на железе на экономию на... уже не на софте, а на людях. Раньше компьютеры были дорогие и слабые, а требования к ПО и его архитектурная сложность (не алгоритмическая) - ниже. Зарплаты прогеров по сравнению с этим были относительно невелики. Можно было посадить отдел, который бы только тем и занимался, что такты экономил и байтики руками двигал. Теперь в большинстве случаев проще железа докупить, чем позволить программистам такую вахканалию.


Я предполагаю, что не только это, а больше - маркетинг.


Раньше компьютеры были не распространены, так как они только появлялись, хотя в США уже в 80-х когда я посещал обычные простые американские семьи, у каждого был дома компьютер, другое дело, что его только как пишущую машинку и игротеку использовали.


Сейчас компьютеры вытеснили все возможные и не возможные остальные направления, и их почти всегда используют для трансформации информации: например из веба на экран, из чата одного пользователя к другому. Для этого сильных мощностей не нужно, только для игрунов и немного для меломанов.


Закон Мура (не того, что в форуме, он крякнет, чтоб в его честь что-то бы назвали) ведь так толком и не отменился, и топовый суперкомпьютер мира за каждые два года так и удваивает свою производительность, и, очевидно, на нем не майнятся, а что-то полезное считают.


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


Читал, что эти новые процы яблочные потому такие производительные и толстые, что они в них сопроцессоров для разных операций напихали. Для общего назначения они по-прежнему дерьмо, но в спецзадачах всех рвут.

Вы сравните их флопы с любой топовой графичесой картой. Вот для сравнения, на М1 от яблока сейчас можно теоретически снять 2.6 терафлопса на 32 битах, а на купленной мной в 2013 АМДшной карте (заметим, это почти 10 лет назад!!!) за пару сотен евро я довольно надежно по 6-7 терафлопс снимал при пиковой около 12 терафлопсов. Яблоко всегда любило маркетинг, а 2 ТФлопса - это же круто, можно втридорого впарить тому, кто на эти яблоки подсел и только сейчас услышал новое модное словечко.


И, кстати, про такие сопроцессоры, или ГПУ. На них действительно очень не тривиально программировать. Особенно если до этого писал на фреймворках и не сильно понимаешь хотя бы как писать программы для обычного процессора с его многоуровневой памятью. Я кстати очень советую все-таки заценить тот пример, что я выше приводил по поводу синуса - как хороший показательный случай, когда криво использованная память убивает производительность. И ведь с этим ничего не поделаешь. На компьютерах, что большинство участников форума сейчас это пишут-читают, время прочтения одного числа со случайным адресом из общей памяти в тысячи раз больше времени на умножение двух чисел внутри процессорной АЛУшки.

 

Sprung zu