|
2.4, Аноним (4), 11:12, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
В Gentoo добавил, кроме всего прочего, в CFLAGS="... -fopenacc -fopenmp ..." Все собирается и работает без проблем.
Увеличение производительности не тестировал.
| |
|
3.6, Аноним (1), 11:19, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Увеличение производительности не тестировал.
Было ли это увеличение, скорее там уменьшение.
У меня для фортрана так с надеждой на лучшее (а гфортран очень тормозной код генерирует в целом) FCFLAGS="${COMMON_FLAGS} -fopenmp -fprefetch-loop-arrays -fexternal-blas -fblas-matmul-limit=15"
Наверно какие-то применения на суперкомпах можно найти, но вот есть ли преимущества обычного софта?
| |
|
4.8, Аноним (8), 11:43, 15/11/2024 [^] [^^] [^^^] [ответить]
| +9 +/– |
Если в софте возможности OpenMP никак не использованы, то и пользы от добавления этих флагов никакой.
| |
|
|
6.43, Вымя (?), 00:42, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Я так понял что анон глобально добавил флаг при сборке всех пакетов.
| |
|
7.68, Аноним (-), 16:34, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
У меня Gentoo. Глобально стоит:
USE="... opencl openmp ..." включает поддержку в скрипте .configure который может добавлять опции компиляции в Makefile.
CFLAGS="... -fopenacc -fopenmp ..." включает поддержку кода компилятором
В portage примерно 31 пакет поддерживает сборку с opencl и около 90 собираются с openmp и 0 пакетов используют openacc. Из них у меня в системе используется в общем чуть больше 20 пакетов.
А что есть проблемы с установкой этих опций глобально? Именно openmp в Gentoo относится к глобальным опциям.
Лет 5-7 уже использую эти опции и проблем не заметил. Могу CFLAGS сделать только для определенных пакетов, но это нежелательно.
| |
7.69, Аноним (-), 16:56, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Добавить флаг это одно, а увеличение производительности это другое.
Работу Opencl в radeontop я так и не увидел.
Работу OpenMP никогда не тестировал.
По поводу openacc не известно есть ли у меня в системе пакеты его использующие.
smp ntpl pthread точно работают, архиваторы, видеокодировщики запускают свои фотки на ядрах CPU, загружают их на 100% (в htop видно) и в разы ускоряют работу программы.
| |
|
|
|
|
3.18, Аноним (18), 15:56, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Если софт использует OpenMP, то он без этих флагов не скомпилируется, как я понимаю. Нужные пакеты сами добавляли, а для остальных бесполезно.
| |
|
4.77, svpcom (ok), 23:09, 16/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
весь openmp работает через #pragma. То есть если компилятор это не поддерживает, то просто будет код выполняться последовательно
| |
|
|
4.33, Аноним (33), 18:24, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
У меня две дискретки AMD стоят, раньше и opencl включал, вдруг поможет производительности для пары пакетов.
Или есть какие нюансы?
| |
|
5.63, Аноним (-), 16:00, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
По производительности OpenAcc почти такой же как CUDA, чуть меньше правда, но код выглядит более красиво и понятно. По моему мнению его проще и понять и использовать. Связка OpenMP + MPI + OpenACC вообще дает отличный результат, если вы конечно понимаете нюансы что лучше делать на видеокарте, что на процессоре и как это все выполнять параллельно и как это все вместе синхронизировать (если необходимо).
| |
|
6.72, Аноним (72), 18:05, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
MPI надо отдельно на узлах кластера настраивать.
OpenACC не нашёл прог которые его используют.
OpenCL на mesa и свободных драйверах видеокарт AMD не у меня работает. Если кто знает как настроить помогите. Я вижу проблему в отсутствии поддержки Clover OpenCL в mesa: https://mesamatrix.net/
| |
|
7.86, gentoo (?), 13:16, 17/11/2024 [^] [^^] [^^^] [ответить] | +/– | Вопрос применения очень запутанный Примененение видеокарт gpu для разгрузки про... большой текст свёрнут, показать | |
|
|
|
4.62, Аноним (-), 15:56, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну так это видеокарта, а не процессор. Вообще тоже отличная штуковина.
| |
|
|
2.9, Аноним (9), 11:47, 15/11/2024 [^] [^^] [^^^] [ответить] | +5 +/– | Для консьюмерских приложений, вроде нет ничего современного Проблема в архите... большой текст свёрнут, показать | |
|
3.29, 123 (??), 17:48, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> По-факту, никто не парится. Все эти высокопросизводительные многопоточные вычисления просто пихают в виртуалки, чтобы вышестоящая инфра разобралась со всем этим и выдала равномерную память UMA
ха ха, она взяла и разобралась (нет), запихивание в виртуалки лишь иллюзия того, что в вышестоящем слое нет тех же самых проблем, и если тебя лично это беспокоит, то всех кто отвечают за верхний слой - не особо, бизнес крутится лавешка мутится, не мамонты не вымрут
| |
3.67, Аноним (-), 16:20, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> То есть по идее можно все переписать на новые версии OpenMP, но кто бы это делал...
Ну если код не секретный, то ИИ, разве нет?
| |
|
2.12, Анонимов (?), 12:09, 15/11/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Не особо.
Раньше можно было выйграть пару циклов в расчетном по для суперкластеров в связке OpenMP+MPI (HybridPP), но в последние лет 10 особо голову сношать себе не хочет и используют чистый MPI.
| |
2.13, Neon (??), 14:08, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Для некоторых задач, типа решения систем диф.уравнений, работа с матрицами и т.д. дает значительное ускорение. Обычно такие задачи специализированные и самописные. Обычному софту openmp мало помогает, плохо автоматически он параллелиться.
| |
|
3.58, Аноним (1), 12:58, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вроде не так и часто. Но тут суть в том, что на суперкомпах запускают ровно те же mkl и fftw и применений могло бы быть и побольше. Вроде даже даже у opencv tbb в итоге, видимо, совсем неудобно.
| |
|
2.59, Аноним (59), 13:03, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Существуют ли какие-то применения openmp на практике?
Используется в некоторых местах в ImageMagick. Не знаю, насколько он помогает. Еще есть в libsoxr, но там его использование больше вредит производительности.
| |
2.61, Аноним (-), 15:54, 16/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну когда я был студентом и изучал OpenGL, то делал тестовое задание для компании Samsung. Да, оно реально работает. Меня правда не взяли из-за проблем с документами.
| |
|
1.5, Аноним (5), 11:15, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Извините, ничего производительнее, чем просто std::thread, мои эксперименты не нашли. Ни TBB, ни OpenMP.
| |
|
2.7, Анониматор (?), 11:26, 15/11/2024 [^] [^^] [^^^] [ответить]
| +5 +/– |
Вряд ли оно имеет целью увеличение производительности. Скорее просто стандарт, чтоб программисту было легче пересаживаться с одного языка на другой
| |
2.10, Аноним (8), 11:47, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
std::thread, само по себе, никак не задействует DSP, если он емеется, и/или GPU.
| |
|
3.15, Аноним (17), 14:51, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Во-первых, необязательно.
Во-вторых, именно поэтому я pthread не упомянул. Это платформозависмое API, которое бесполезно почти. Обёртки вокруг него и winapi - zero cost, нет особых причин юзать платформозависимое API.
| |
|
2.14, Neon (??), 14:10, 15/11/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну так openmp делает тоже самое, только автоматически для некоторых задач. Выше физических ограничений платформы не прыгнешь
| |
|
3.16, Аноним (17), 14:52, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
>только автоматически
С OpenAI o1 не путайте. Кодить всё равно приходится. Причём то же самое, просто в другом виде.
| |
|
2.56, Аноним (56), 12:14, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
пук в лужу, ей-богу. стд трид. Почитал бы статью, глядишь и программировать бы начал
| |
2.64, Аноним (-), 16:05, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну так дело же не в самой производительности, а в удобстве использования. То что оно выполняет свои задачи распараллеливания кода - факт. А с чего вы взяли что оно должно быть самым производительным? Разве они такое заявляли?
| |
|
1.19, Аноним (19), 16:07, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
Все эти потоки и многопроцессорность не что иное как путь в никуда. Инженерам нужно увеличивать производительность в однопотоке, а не костылить. А то вон уже есть процы со 192 потоками, а скроллинг в хроме всё равно со статтерами и микрофризами.
| |
|
2.21, anonymous (??), 16:33, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Скроллинг со статтерами (кандидат на новый мем? вместо "как конпелять кде под фрибзд")? Из за натыканых везде особенно в ядре "сохранялок энергии". Как нубуки стали пиарить, с тех пор всё в этой коричневой "энергосохраняющей" субстанции.
| |
|
3.23, Аноним (19), 16:52, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да ты повідключай все энергосберегайки, так комп будет жрать как 4 пни во времена прескотов. И не факт что избавишься от статтеров, потому что они завязаны на 1 поток, на который разрабы куй ложили в угоду многопоточности. Даже в эппл не смогли побороть эту бяку, хотя вообще в отдельный поток вынесли отрисовку.
| |
|
4.70, anonymous (??), 17:28, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Десятки лет уже невозможно это отключить, оно напихано везде, в надежде спровоцировать отключение блоков процессоров да и остального железа вплоть до PCI и памяти чтобы пальцетыкальщикам аккумуляторщикам было комфортнее. И невозможно спрогнозировать когда оно сработает. Надо в каменный век возвращаться срочно - своё железо делать. Иначе программирование превратится в сельское хозяйство - "инде взопрели озимые, вышел старик понюхал портянку и аж заколдобился". То ли будет урожай то ли нет и надо другое сажать. То ли будет статтер если фазза луны и проприетарная фирмварь решит надо отключить то ли нет. А от тебя ничего не зависит как и от колхозника.
| |
|
|
2.27, Аноним (27), 17:43, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Все эти потоки и многопроцессорность не что иное как путь в никуда. Инженерам нужно увеличивать производительность в однопотоке, а не костылить.
Удивительно, как такие комментарии набирают кучу плюсиков. 🤦 Это многое говорит об уровне компетенции большей части здешних комментаторов.
Да, уважаемый эксперт, нужно в один поток. А заодно вырубить
оптимизации на уровне компилятора, а на уровне CPU - предсказание ветвей, спекулятивное выполнение и остальной прогресс за последние 40 лет. Ну, чтобы инженеры булки не расслабляли, а оптимизациями занимались. Вот тогда в хроме скроллинг будет ого-го!
| |
2.42, Аноним (42), 00:41, 16/11/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Простейший пример:
Открытие/Закрытие файла, работа с медленным устройством, многозадачность.
В один поток как-то "ухабисто".
| |
|
3.44, Аноним (44), 01:55, 16/11/2024 [^] [^^] [^^^] [ответить]
| –7 +/– |
> Простейший пример:
> Открытие/Закрытие файла, работа с медленным устройством, многозадачность.
> В один поток как-то "ухабисто".
Да забей, персонаж не понимает, что несет.
| |
|
4.45, Аноним (45), 02:17, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Он вообще-то правильно обозначил проблему, пусть и слегка в шутливой форме. Многопоточность это действительно гигакостыль, который порождает усложнение, а следовательно невероятное количество ошибок и уязвимостей ещё на уровне проектирования SoC, не говоря про программирование.
| |
|
5.48, Аноним (44), 03:20, 16/11/2024 [^] [^^] [^^^] [ответить]
| –5 +/– |
> Многопоточность это действительно гигакостыль, который порождает усложнение, а следовательно невероятное количество ошибок и уязвимостей ещё на уровне проектирования SoC, не говоря про программирование.
Похоже, что люди делают усложнения ради усложнений, так ведь? Другого объяснения сего парадокса опеннетный эксперт не видит? Ну вот не додумались, дурачки, до такого простого решения всех проблем - не использовать многопоточность.
А если серьезно я представляю, как тот персонаж взвыл, если бы его хром с лагающим скроллбаром стал вдруг работать в один поток и один процесс. Откуда ж вы, эксперты такие, лезете...
| |
|
|
3.46, Аноним (45), 02:28, 16/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Открытие/Закрытие файла, работа с медленным устройством, многозадачность.
Для работы с I/O не надо over 9000 ядер и потоков. Выше проблему подняли правильно, потому что все гонятся за циферками в multiple threads, забывая о том, что по производительности на ядро системы практически топчутся на месте последние лет 15.
| |
|
4.54, Аноним (41), 05:36, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> обозначил проблему, пусть и слегка в шутливой форме
> забывая о том, что по производительности на ядро системы практически топчутся на месте последние лет 15.
А как ты себе представляешь серьёзный разговор на эту тему? Я только так: "мальчик, 20 лет назад перестал работать закон масштабирования Деннарда - частоты упёрлись в потолок и сразу появились многоядерные процессоры, тут не о чем забывать".
| |
|
|
2.65, Аноним (-), 16:12, 16/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Я вам напомню историю - все эти многопроцессорности и многопоточности были придуманы в России, только наработки сбежали вместе с Пионтковским. Он стал большой шишкой в Интел и вышли новые процессоры. Об этом есть полно информации в инете. И ещё, а как это связано с вашей проблемой скролинга и фризов браузера? У меня вот таких проблем нет. Причем даже на старом оборудовании.
| |
|
3.71, anonymous (??), 17:38, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Фантазии какие то. Просто технологически стало возможно несколько процессоров на 1 кристалл впихнуть и даже кэши. А так как процессор плоский а задержка сигнала зависит от квадрата расстояния (из-за особенностей физических свойств проводников в кристалле, там сильно погонная ёмкость и сопротивление влиять начинает на тех частотах) то чем физически ближе расположишь блоки тем быстрее будет работать при всех равных. Вот и стали проектировать исходя из того что всё что часто обменивается данными должно быть рядом в кластерах. И получилось - реальная скорость резко взросла. Всё бросили на многоядерность.
| |
3.74, Аноним (-), 18:40, 16/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> все эти многопроцессорности и многопоточности были придуманы в России, только наработки сбежали вместе с Пионтковским
Боян, котрому 200 лет. Россия сама тырила европейские технологии. Украв, копировала у себя некачествеено.
| |
|
|
1.25, Аноним (25), 17:30, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Параллельное программирование это когда два программиста работают над одной задачей. Multy Processing - множественная обработка.
| |
|
2.31, 123 (??), 17:53, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Parallel Processing, Parallel Execution то же может применяться
| |
2.36, Аноним (36), 19:21, 15/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы не поняли, это когда параллельно на программирование, но кипишь идёт.
| |
|
1.34, Аноним (-), 19:09, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А - зачем это "массовому среднему" программисту и пользователю ПК?
Сколько решают Невье-Стокса и пишут грамотно софт, который хорошо параллелится? Ну - просто - фиг с ним с этим OpenMP! - какой процент программеров нормально и ОСОЗНАННО с потоками в POSIX-thread может работать?
| |
|
2.47, Аноним (45), 02:33, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Большинство десктоп-ориентированных задач выполняются в а-ля event loop'е.
Но где-то на задворках, в глубоком ынтерпрайзе, может и нужно для каки-то специфических вычислений.
| |
|
3.55, Аноним (55), 10:34, 16/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пишу из задворков глубокого интырпрайза. Сколько раз пытались применить OpenMP, столько раз оказалось не нужным.
| |
|
2.52, Аноним (52), 03:59, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
При чём тут урматы? Треды - это абсолютно естественная модель, которая элементарно воспринимается нормальным человеком: два процессора выполняют команды параллельно. Все остальные модели требуют какого-то недюжинного напряжения воображения, и всё равно в итоге почти всегда сводятся к тредам.
Единственная более естественная модель - это чистый fork() и запуск нескольких программ одновременно, но большинство естественных задач так не решить.
| |
|
3.73, Аноним (-), 18:13, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Треды - это абсолютно естественная модель, которая элементарно воспринимается нормальным человеком: два процессора выполняют команды параллельно.
Как чистосишник скажу. Возьмём к примеру 4-х ядерный процессор и запустим на нём программу, которая выполняется в 4 потока. Мы точно не будем знать, выполняются ли эти 4 потока на 4-х физических процессорах одновременно. Может статься так, что процессор выполнит первый и второй поток на одном физическом ядре, третий и четвёртый потоки на третьем и чётвёртом физическом ядре соответственно. Более того, никто не сможет гарантировать того, что процессор вздумает выполнить 4 потока на одном физическом ядре.
| |
|
|
|