169 похожих чатов

Привет. Подскажите, пожалуйста: какие фундаментальные алгоритмы плохо параллелятся на VLIW

в принципе?

7 ответов

22 просмотра

Любые плохо параллелящиеся алгоритмы. Короче видишь зависимости по данным между циклами - считай на широком слове будет параллелить их сложнее, чем на коротком. В остальном - эти сложности плата за потенциальную возможность получить в том числе и большую производительность, другими словами - всё может быть также просто, с той лишь разницей, что на широком слове, вся работа по оптимизации и распараллеливанию ложится на ваши плечи и компилятор, тогда как на каком нибудь x86 - часть работы берут на себя разработчики процессора.

Пётр-Байкалов Автор вопроса
Александр
Любые плохо параллелящиеся алгоритмы. Короче видиш...

>Любые плохо параллелящиеся алгоритмы. Вижу большую разницу между распараллеливанием на ядра и статическим распараллеливанием. Я считаю, что отнюдь не всякий алгоритм, который можно распараллелить на ядра, можно распараллелить на VLIW. Про зависимости я понимаю, разумеется, но мне хотелось бы какой-то конкретный пример.

Пётр Байкалов
>Любые плохо параллелящиеся алгоритмы. Вижу больш...

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

for(int i = 1, s = 1; i<=N*(N+1); ++i) { if(i == s*(s+1)) { ++s; continue; } arr[i-1] *= 2; } И где тут рантайм сработает?

SNEJANA ONE LOVE
for(int i = 1, s = 1; i<=N*(N+1); ++i) { if(i ==...

Я не специалист, но ходят слухи, что фу такое писать.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта