После трёх лет разработки опубликован (https://www.openmp.org/press-release/openmp-5-0-is-a-major-l.../) набор спецификаций OpenMP 5.0 (https://www.openmp.org/specifications/) (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Начальная реализация (https://gcc.gnu.org/wiki/Offloading) OpenMP 5.0 уже включена (https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html) в кодовую базу GCC, на основе которой развивается ветка GCC 9. Отдельные элементы OpenMP 5.0 также будут (https://clang.llvm.org/docs/OpenMPSupport.html) включены (https://openmp.llvm.org/) в следующий выпуск LLVM/Clang 8.0.Основные новшества OpenMP 5.0:
- Полная поддержка специализированных аппаратных ускорителей. В том числе реализованы:
- Механизмы, использующие унифицированную разделяемую память между хост-системой и устройствами сопроцессора;
- Возможность использования специфичных для определённых устройств реализаций функций;
- Улучшенное управление неявным отображением данных (data mapping);
- Возможность смены устройств-ускорителей не прерывая работу;
- Поддержка обратного выделения вычислительных ресурсов ускорителям (reverse offload);
- Поддержка неявной генерации функций;
- Возможность упрощённого копирования объектно-ориентированных структур данных.- Два новых программных интерфейса для разработки внешних инструментов отладки и анализа производительности;
- Поддержка последних версий стандартов языков C, C++ и Fortran:
C11, C++17 и Fortran 2008;- Поддержка описательных конструкций циклов (descriptive loop) , позволяющих компилятору оптимизировать операции в цикле, не привязываясь к определённой реализации. Новые конструкции циклов предоставляют компилятору больше свободы в выборе оптимальной реализации для специфичной целевой системы;
- Многоуровневые системы памяти. Предоставлены механизмы распределения памяти, позволяющие размещать данные в различных типах памяти, например, отличающихся пропускной способностью. Новые возможности управления памятью также упрощают работу с современными высокопроизводительными NUMA-системами;
- Улучшена переносимость. Директива "declare variant (https://www.openmp.org/wp-content/uploads/OpenMPRef-5.0-1118...)" и метадирективы (блок "metadirective", дающий возможность определить несколько вариантов директив, выбираемых в зависимости от контекста) позволяют разработчикам повысить эффективность портирования, адаптируя прагмы OpenMP и пользовательский код на стадии компиляции.
URL: https://www.openmp.org/press-release/openmp-5-0-is-a-major-l.../
Новость: https://www.opennet.dev/opennews/art.shtml?num=49585
Это бы всё, да в стандарт С++, а не ввиде нашлёпки...
Ждите executor'ы. Где-нибудь в С++26...
http://www.cplusplus.com/reference/future/async/Это что ли?
В С++11 добавили многопоточность, но очень скудно, и без поддержки гетерогенной памяти и гетерогенных вычислений.
А SMP-балансировщик и менеджер задач те в кумпилятор не добавить?
Нет. Вот это http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2018/p044...
Набор спецификаций для языка (в том числе) Фортран в стандарт C++?Набор спецификаций для програмирования на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD) тоже в стандарт C++?
Давайте и WinAPI включим в стандарт C++ и POSIX.
P.S. наивно думать что нашлёпка перестанет быть нашлёпкой если её упомянут в стандарте C++.
>на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками >векторизации (SIMD). Начальная реализация OpenMP 5.0 уже включена в кодовую >базу GCCЗвучит прям как нескончаемый поток шоколада. Жаль, что реальность наверняка будет прозаичнее, и работать оно будет только поверх проприетарщины от нвидии.
>>на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками >векторизации (SIMD). Начальная реализация OpenMP 5.0 уже включена в кодовую >базу GCC
> Звучит прям как нескончаемый поток шоколада. Жаль, что реальность наверняка будет прозаичнее,
> и работать оно будет только поверх проприетарщины от нвидии.Как дерьма поток звучит.
Вначале понаделали дерьмовых "вычислительных блоков" и "ускорителей", с уб лю дочной "логикой", потому что очевидно по-другому в ыбля ди не могут, которая вообще не укладывается похоже в поддержку нормальными языками, дальше их проталкивание с "включением в кодовую базу" выб ля дочных экскрементов, чтобы значит это их дерьмо можно было на что-нибудь приспособить... псевдополезное... (нормальным же образом компиляторы не смогут, да...)
Странный перевод. Параллельное программирование - это когда несколько чуваков параллельно программируют.
Не, ну вы чО? Это когда всем разработчикам параллельно на все поставленные задачи =)
> Начальная реализация OpenMP 5.0 уже включена в кодовую базу GCC, на основе которой развивается ветка GCC 9. Отдельные элементы OpenMP 5.0 также будут включены в следующий выпуск LLVM/Clang 8.0.Странно. Шланголюбы же на каждом углу кричат о том, что шланг развивается быстрее гцц. :)
Шлангуют...
MinGW-w64 достали. Юзают проклятый сорсфордж, баг репорт не отправить - там рекапча.Тот, кто прячется за рекапчей,
Не хочет ни баг репортов, ни патчей.
> рекапчаИмхо рекапча на сайте - это повод сразу закрыть страницу, даже не пытаясь как-то реагировать. Рассматривайте это как аналог "504 Nginx Installed".
Вот-вот. Я сюда по делу пришёл, а не светофорчики с мотоциклами считать!
А что плохого в том, если на сайт не пустят людей, кто не может отличить светофор от мотоцикла? )))
Значит твой багрепорт не нужен и не важен, а сам ты - спамер, либо скрипт, либо спамерский скрипт.Только спамерам западло пройти капчу.
Mingw-W64 задолбали, не фиксят баг с fesetenv и округлением. Вот так воспользуешься OpenAl, а у тебя округление в другом режиме начинает работать и ничего не сделаешь, потому что они наложили свой патч чтобы работала какая-то либа, но этот патч делает не рабочим fesetenv. Фиксить они не фиксят, баг висит уже два года. Вертел я такие компиляторы, лучше какой-нибудь другой вариант компилятора gcc под win найти.
>лучше какой-нибудь другой вариант компилятора gcc под win найтиОзвучьте другие вариаты GCC под Винду, если не трудно.
Господа специалисты к вам вопрос. Чего сегодня можно использовать для распределенных вычислений. Писать свой велосипед смыла думаю, что нет. А хотелось бы шарить память и шарить задачи и результаты получать. Прям как в Erlang.