The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Опубликован стандарт параллельного программирования OpenMP 5.1

13.11.2020 19:42

После двух лет разработки опубликован набор спецификаций OpenMP 5.1 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Отдельные элементы OpenMP 5.1 будут включены в следующий выпуск LLVM/Clang 12.0, а также, возможно, успеют попасть в ветку GCC 11.

Основные новшества OpenMP 5.1:

  • Улучшено использование современного C++ в OpenMP. Добавлена полная поддержка распараллеливания программ, написанных с использованием стандартов C11, C18, C++11, C++14, C++17 и C++20. Вместо выражения "pragma" предоставлена поддержка синтаксиса атрибутов, который может применяться для указания директив OpenMP и более прост для интеграции с шаблонами.
  • Расширена поддержка специализированных аппаратных ускорителей. Добавлена конструкция "interop" для обеспечения совместимости с устройствами, напрямую не поддерживающими OpenMP, и использования поддерживаемых данными устройствами интерфейсов, таких как CUDA streams, HIP и OpenCL.
  • Добавлена возможность отражения указателей функций на устройство или ускоритель. Реализована поддержка специфичных для устройств переменных окружения.
  • Расширена предоставляемая компилятору информация, на основе которой можно задействовать дополнительные оптимизации. Для передачи дополнительной информации об использовании OpenMP в программе добавлена директива "assume". Кроме того предложена директива "tile" для определения локализации данных при выполнении циклов, и директива "unroll" для частичного разматывания цикла.
  • Добавлена директива "masked" для ограничения выполнения кода только заданным подмножеством потоков.
  • Предоставлена возможность генерации ошибок и предупреждений, выводимых на стадии компиляции. Добавлена новая директива "error".
  • Улучшена поддержка языка Fortran. Реализована полная совместимость со спецификацией Fortran 2008 и предоставлена начальная поддержка Fortran 2018.
  • Упрощено определение функций, специфичных для конкретных окружений. Сразу несколько функций теперь могут быть включены в один вариант конструкции "declare", а код можно более тщательно адаптировать к определённому окружению.


  1. Главная ссылка к новости (https://www.openmp.org/press-r...)
  2. OpenNews: Опубликован стандарт параллельного программирования OpenMP 5.0
  3. OpenNews: В Clang обеспечена полноценная поддержка OpenMP
  4. OpenNews: Утверждён стандарт C++20
  5. OpenNews: Релиз набора компиляторов GCC 10
  6. OpenNews: Релиз набора компиляторов LLVM 11.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54082-openmp
Ключевые слова: openmp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (127) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, leibniz (ok), 19:55, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    До чего же отрадно видеть упоминание фортрана. Наставник в универе вёл вычмат и от ПК ему требовались только FAR и Fortran - эх, были времена... Работало у него всё чётко и ладно.
     
     
  • 2.2, Аноним (2), 19:56, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Fortran и сейчас активно используется для вычислений и в научной среде.
     
     
  • 3.4, leibniz (ok), 19:59, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Fortran *2018*

    ЗдОрово, ничего не скажешь (:

     
  • 3.5, Аноним (5), 20:01, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это точно. Например, GAMESS на фортран.
     
     
  • 4.38, Scriptor (ok), 03:10, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    + из свободного -- CP2K, например.
     
     
  • 5.124, Дущт (ok), 23:21, 17/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да почти вся квантовая химия на фортране. Исключения единичны, но есть. Вот LAMMPS почти полностью переписали с Fortran на C++.
     
  • 3.8, Аноним (8), 20:42, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    К сожалению, сейчас питона больше чем фортрана.
     
     
  • 4.37, Scriptor (ok), 03:09, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У них области применения разные.

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

     
     
  • 5.46, Аноньимъс (?), 05:27, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы заблуждаетесь.
    Никакой серьёзный анализ на Питоне не напишеш.

    А числа дробить чем угодно можно.

     
     
  • 6.69, Аноним (69), 10:17, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю, скан гигабайтовых тесктовых файлов джва часа
    grep, awk около минуты.
    А на питоне ещё и либ для биоинформатики много всяких, не понимаю как им пользуются вообще.
     
     
  • 7.88, Аноньимъ (ok), 16:32, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пользуются зажав нос.
     
  • 6.98, Scriptor (ok), 18:28, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Никакой серьёзный анализ на Питоне не напишеш.

    Определите "серьёзный анализ".

    > А числа дробить чем угодно можно.

    С разной скоростью.

     
     
  • 7.105, Аноньимъ (ok), 21:55, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Лучше наверное сказать сложный.

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

    Впрочем, иногда и загрузить подготовить данные есть большая проблема.

    Популярность питона для меня большая загадка, очевидно спустили эту каку с верху.

    Ну или такое определение, серьезный это такой который сложно проводить с помощью питона.

     
     
  • 8.117, Scriptor (ok), 16:18, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пример привести сможете Какими, например Ну, кроме GIL разве что Вы сами-т... текст свёрнут, показать
     
  • 6.107, Урри (ok), 23:27, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но ведь пишут.
    Я сам не понимаю почему, но видимо процессорное время стало настолько дешевым, что пишут.

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

     
     
  • 7.119, Scriptor (ok), 16:21, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > как мы видим - и это большая числодробилка) написано на питоне. Код даже
    > на гитхаб выложен.

    И numpy/scipy/scikit в зависимостях, ага.


     
  • 6.116, Страшный аноним (?), 11:41, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1. Python изначально применялся как язык прототипирования. На нем быстро ученые, но не особо углубленные в IT, могли что-то налабать для проверки идей. Смотрели на небольших данных - если было нормально, то для серьезных нагрузок переписывали на Fortran или С/C++.
    2. С другой стороны Python - это "клей" для склейки разных программ и либ, в том числе написанных на Fortran или С/C++. Задача Python здесь - обеспечить быстрый GUI, подготовить, очистить данные и передать им нативным либам. Поэтому правильно говорить, что на чистом Python ничего особо дельного не напишешь, но на Python  с его окружением из нативных либ, типа NumPy, ScyPy, Pandas e.t.c вполне можно наваять проект средней руки.
     
     
  • 7.118, Scriptor (ok), 16:19, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Именно.
     
  • 4.61, myhand (ok), 08:54, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Питоном, в основном, обмазывают фортрановские либы...
     
  • 3.130, Neon (??), 01:55, 16/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Старые деды ничего поновее не осилили ?)))
     
  • 2.7, Аноним (7), 20:27, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > FAR

    вантузоид что ли? все понятно

     
     
  • 3.12, YetAnotherOnanym (ok), 21:22, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    То ли дело аноним с Опеннета! Уж он-то огого! Не то, что какой-то там профессоришка.
     
     
  • 4.13, Аноним (7), 21:35, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ты вначале хотя бы чисто для прикола поступи в вуз, чтобы сформировать свое мнение об этих самых "наставниках в универе", прежде чем петь им дифирамбы и называть "профессорами".
     
     
  • 5.20, Michael Shigorin (ok), 22:29, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Странно, мне попались отличные преподаватели.  Может, дело в том, что и сам не отлынивал?
     
     
  • 6.54, Аноним (-), 06:17, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Отличные преподователи по богословию?
     
  • 6.77, myhand (ok), 13:16, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Странно, мне попались отличные преподаватели.

    Вы же, вроде, младоземельный креационист?  Семь тыщ лет, Ноев потоп, вот это вот все.

    Результат - говорит против того, что они отличные преподаватели.

     
     
  • 7.106, Аноним (106), 22:13, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    вот уж действительно очевидно, да так, что и не открестится.
     
  • 6.108, Урри (ok), 23:29, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне тоже.
    Мой препод по кристаллам меня научил лиспу и символьным вычислениям на редьюсе. Это уже потом я узнал про мейпл и иже с ним.
     
  • 5.24, анонн (ok), 23:14, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –15 +/
    > Ты вначале хотя бы чисто для прикола поступи в вуз, чтобы сформировать
    > свое мнение об этих самых "наставниках в универе", прежде чем петь им дифирамбы и называть "профессорами".

    Оу.
    В смысле, у анонима есть значительный вклад в теоретическую и практическую часть pypy-JIT?
    А может, тулзы или подходы созданные с его участием, применяли в Siemens, Systerel и AeS Group для спецификации моделей железнодорожных сигнальных систем и управления поездами? Или в исследовательских группах Fujitsu, Hitachi и Toshiba (наравне с SPIN и VDM+)?
    Круто!
    Или ... как обычно, у анонима есть только Ценнейшее Мнение?


     
     
  • 6.25, Аноним (7), 23:40, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Наставник в универе
    > ему требовались только FAR и Fortran
    > есть значительный вклад в теоретическую и практическую часть pypy-JIT
    > ему требовались только FAR и Fortran
    > применяли в Siemens, Systerel и AeS Group
    > ему требовались только FAR и Fortran

    Ничего себе, какой необыкновенный "наставник в универе"! И танцует, и поет, все на свете он умеет. И все это с одним лишь FAR.exe!

     
     
  • 7.28, funny.falcon (?), 00:08, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты думал.
     
  • 7.29, анонн (ok), 00:12, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –24 +/
    Как ты ловко передернул и съехал с темы, сыпанув минусиками в качестве убойне... большой текст свёрнут, показать
     
     
  • 8.34, Аноним (7), 01:13, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Зачем порвался Как я ловко съехал с темы pypy-JIT AeS Group , обсуждая вантузо... текст свёрнут, показать
     
     
  • 9.35, анонн (ok), 02:12, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Ох, какой аргументативный аргумент Или это был внутренний монолог Так или ина... большой текст свёрнут, показать
     
  • 7.30, Lex (??), 00:18, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так и в чем проблема конкретно с фар.икс, равно как и с видной ?
     
     
  • 8.89, Аноньимъ (ok), 16:32, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет проблемы, просто газы у человека ... текст свёрнут, показать
     
  • 6.41, YetAnotherOnanym (ok), 03:23, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Ого, сколько минусов накидал :)) Сразу видно - знатно бомбануло.
     
  • 6.51, Аноньимъс (?), 05:52, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы анонима фундаментальным вкладом в питончик пугаете?

    Я так смотрю скоро бейсик некоторые начнут открывать и джиты к нему пилить.

    Впрочем неуспеют. Конец света раньше случится.

     
     
  • 7.80, анонн (ok), 15:15, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Вы анонима фундаментальным вкладом в питончик пугаете?
    > Я так смотрю скоро бейсик некоторые начнут открывать и джиты к нему пилить.
    > Впрочем неуспеют. Конец света раньше случится.

    Однако, какая изящная формулировка "... и как обычно, у (очередного) анонима есть только Ценнейшее Мнение"!
    Или очередной, храбрый аноним сможет продемонстрировать, помимо пустословия, что-то свое, что не смог "побить" ни Dropbox, ни Google ни (кто там пилил Numba с нуиткой)?

    ЗЫ:
    Ясно. Все "как обычно".

     
     
  • 8.82, Аноньимъс (?), 15:26, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У вас желчь русский язык сломала Остыньте ... текст свёрнут, показать
     
  • 5.42, YetAnotherOnanym (ok), 03:24, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > Ты вначале хотя бы чисто для прикола поступи в вуз, чтобы сформировать
    > свое мнение об этих самых "наставниках в универе", прежде чем петь
    > им дифирамбы и называть "профессорами".

    Что, двойками обижали, да? Ну, бывает...

     
  • 4.50, Аноньимъс (?), 05:46, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы зря так вольно вакансии в университете раздаёте.
     
     
  • 5.74, YetAnotherOnanym (ok), 12:08, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я не жадный :D
     
  • 3.44, n242name (?), 05:25, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кстати пилится форк far2l
     
  • 3.52, Аноним (52), 06:02, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так то фар и под линукс есть
     
     
  • 4.111, _ (??), 04:59, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть. но он - го****** :-(
     
     
  • 5.120, PnD (??), 21:09, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вот https://habr.com/ru/post/524370/ и нет.
    * Заявленное — работает (и собирается для моих десктопов /openSUSE/).
    "Уронить" пока ни разу не удалось, несмотря на то что alpha.
     

  • 1.3, Аноним (5), 19:58, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Уф, я уж подумал OpenMW в релиз вышел.
     
  • 1.6, Аноним (6), 20:17, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > стандартов C11, C18, C++11, C++14, C++17 и C++20

    Вот же зоопарк нагородили...

     
     
  • 2.9, Аноним (8), 20:44, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Смузихлебы дорвались до комитета - сначала делают, потом думают.
     
     
  • 3.16, Аноним (6), 21:59, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да сейчас вообще какая-то тенденция наплодить как можно больше несовместимого.
     
  • 3.48, Аноньимъс (?), 05:32, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    С++ никогда небыл хорош.
     
     
  • 4.114, Аноним (114), 13:59, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То ли дело rust
     
  • 2.10, A.Stahl (ok), 21:18, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Какой, нафиг, зоопарк? Эти стандарты последовательны, а не параллельны.
     
     
  • 3.17, Аноним (6), 22:00, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    И этот последовательный зоопарк приходится поддерживать параллельно...
     
  • 3.18, Плохой Танцор (?), 22:01, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теперь это не так
     
  • 3.45, n242name (?), 05:27, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какой стандарт лучше взять за основу для изучения если на плюсах не писал больше 10 лет?
     
     
  • 4.55, Аноним (-), 06:18, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С++22
     
  • 4.62, myhand (ok), 08:55, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лучше и не начинать вовсе...
     
  • 4.71, CrazyAlex (?), 10:50, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    14й - поправлены основные проблемы 11 (который мастхев), в 17 ничего принципиального не добавилось - при нужде на ходу подтянете. 20 прекрасен, но реальное распространение ещё не получил
     
  • 2.11, Аноним (11), 21:20, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    haskell 2010 - завидуйте молча :)
     

  • 1.15, Аноним (6), 21:57, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > для языков Си, Си++ и Фортран

    Раст на подобное не способен?! Даже Фортран и то лучше оказался.

     
     
  • 2.22, КрутойПроггер (?), 22:50, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    В раст поддержка параллельных вычислений встроена в сам язык, а в дырявых сишечках и фортранчиках приходится всякие костыли городить.
     
     
  • 3.26, Michael Shigorin (ok), 23:42, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В раст поддержка параллельных вычислений встроена в сам язык

    И чё, прям с матрицами научили лучше фортрана работать? :)

    > а в дырявых сишечках и фортранчиках приходится всякие костыли городить.

    Вам что-то говорит слово "банк" применительно к этой теме?

    А то вдруг нет.

     
  • 3.39, Scriptor (ok), 03:12, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эм. Вам слово coarrays о чем-нибудь говорит?
     
  • 2.49, Аноньимъс (?), 05:35, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Фортран отличный яп.
    Что вы там фантазируете себе.
     
  • 2.60, Аноним (60), 08:52, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Фортран очень хорош для реализации численых методов где требуется очень высокая точность.

    Зачем физиков, химиков, биология учат в универе Паскаль?

    Придя в научные институты они со своим игрушечьным Паскалем не могут решить задач с произвольной (очень большой) точностью, а если решают то медленно костыльно. И все все равно потом с Паскаля перучиваются на Фортран или С.

     
     
  • 3.65, Lex (??), 09:09, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Они и не решают :)
    А если решают, то на листе и с калькулятором или с применением какого-либо специального ПО.

    В случае с физиками( скорее просто технарями ) итп нередко применяется матлаб и его подобия, всякое разное спец ПО для инженерных и проч расчетов, но фортран..

    Но кстати, так до сих пор загадкой и остаётся: почему вместо паскаля хотя бы Сям не учить, зачем обучать заведомо и безвозвратно устаревшему мусору..

     
     
  • 4.68, Аноним (68), 10:07, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Предлагать C в качестве первого языка - весьма изощрённое издевательство над первокурами)
     
     
  • 5.83, Аноним (83), 15:35, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В моей школе был Паскаль, а в соседней учили C.
     
     
  • 6.115, Аноним (-), 10:30, 16/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Значит в соседней школе одни дураки.
     
  • 5.85, Аноним (85), 15:59, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    В качестве первого языка отлично подходит JavaScript или питон. Во-первых, интерпретируемый. Это значит можно играться в repl. Во-вторых, нет пляски вприсядку со сборочной системой. В третьих, используется в ИНДУСтрии - есть вакансии. JavaScript подходит лучше - он уже с jit, установлен на каждом компе из коробки, имеет стандартизированную стандартную библиотеку для рендеринга GUI, доступа к камере, микрофону, акселерометрам и GPU, ограниченную стандартизированными же разрешениями, а питон надо пользователя убеждать ставить, да потом уже убеждать запустить вашу программу, а для этого убеждать, что она невредоносна.
     
     
  • 6.90, Аноньимъ (ok), 16:36, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не подходят.
    Они учат как ненужно программировать.
     
  • 5.95, Аноним (95), 17:01, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разве не лучший ящык в еачестве первого?!
     
     
  • 6.96, Аноним (95), 17:02, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    (гребаная телефонная клавиатура)
     
  • 4.81, Аноньимъс (?), 15:16, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Паскаль внезаптно современный язык, и ступенька к Аде.

    Обучают потому что учит хорошему стилю структурного программирования.

    А о сях помоему хватит уже шутить, у мертвого коня есть свои лимиты.

     
     
  • 5.86, Lex (??), 16:24, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/

    > А о сях помоему хватит уже шутить, у мертвого коня есть свои
    > лимиты.

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

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

     
     
  • 6.91, Аноньимъ (ok), 16:42, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Прошивки пишут на сиподобных языках, а не сях.
    Нет, сихи не кросплатформенные. Переносить код даже внутри одного семейства ЦП бывает проблемой.
    При кричащей простоте языка компиляторы переусложненные в попытке решить ключевые и нерешаемые недостатки.
    Синтаксис - просто бредовый.

    Как инструмент си как бы живы.
    Как язык - от коня остался один скелет.

     
  • 6.92, Аноньимъ (ok), 16:45, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >любой кто с ним свяжется, подчистУю провалится с ним по прошествии нескольких лет.

    Тотал Коммандер живее всех живых, как и многие другие успешные проекты.
    А Delphi все еще продается за деньги.

     
  • 5.103, anonimous (?), 20:52, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Паскаль внезаптно современный язык, и ступенька к Аде.

    Да ладно, и без Ады все неплохо

    Краткое введение в современный Object Pascal для программистов
    https://castle-engine.io/modern_pascal_introduction_russian.html

    а вот один из вариантов параллельности

    https://wiki.freepascal.org/Parallel_procedures/ru

    program Test;

    {$mode objfpc}{$H+}

    uses   {$IFDEF UNIX}  cthreads, cmem,  {$ENDIF}  MTProcs;

    // простая параллельная процедура
    procedure DoSomethingParallel(Index: PtrInt; Data: Pointer; Item: TMultiThreadProcItem);
    var
      i: Integer;
    begin
      writeln(Index);
      for i:=1 to Index*1000000 do ; // делаем некую работу
    end;

    begin
      ProcThreadPool.DoParallel(@DoSomethingParallel,1,5,nil); // адрес, стартовый индекс, конечный индекс, дополнительные данные
    end.

     
  • 4.84, Аноним (83), 15:38, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смотря что, где и кто. Пишут на фольтранах свой спец софт с нуля.
     
     
  • 5.87, Lex (??), 16:25, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Смотря что, где и кто. Пишут на фольтранах свой спец софт с
    > нуля.

    Примеры бы в студию и, желательно, более одного

     
  • 3.70, anonymous (??), 10:22, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Зачем физиков, химиков, биология учат в универе Паскаль?

    Не знаю, как сейчас, а в самом начале 90-х паскалем мучили в средней школе на информатике. Может, это была инициатива повернутого на паскале информатика-совместителя. Кому программировать было интересно, забили болтЪ на паскаль и сами выучили C и фортран, компиляторы были.
    В институте на первом курсе было введение в программирование уже на PC. Показали C за пару занятий, потом упражняйтесь как хотите.  
    На вычматах/вычфизах про язык даже не упоминали. Народ писал в основном на C.

     
  • 3.101, anonimous (?), 20:26, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >задач с произвольной (очень большой) точностью,

    Это конечно нужно очень редко, но проблемы тут нет (кроме неумения пользоваться гуглом конечно)

    FreePascal и длинные числа. Часть 1. Библиотека GNU Multiple Precision Arithmetic (GMP)
    http://www.freepascal.ru/article/freepascal/20190411080000/

    The MPArith package contains Pascal/Delphi source for multi precision integer, rational, real and complex floating point arithmetic and functions
    https://github.com/moe123/www.wolfgang-ehrhardt.de/blob/master/htdocs/mp_intro

     
  • 2.128, burjui (ok), 22:10, 24/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не вижу твоего комментария на английском. Чё, английский на подобное не способен? Логика же.
     

  • 1.19, Ordu (ok), 22:27, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Си, Си++ и Фортран на многоядерных и гибридных системах

    "...и грибовидных системах"

    На грибовидных им самое место. Передай им кто-нибудь, чтобы оставили многоядерные в покое.

     
     
  • 2.43, Жорш (?), 03:51, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Шо с тобой?
     
     
  • 3.56, Аноним (-), 06:20, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Он курнул.
     

  • 1.21, Michael Shigorin (ok), 22:33, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > директива "unroll" для частичного разматывания цикла

    В документации МЦСТ эта операция зовётся "раскрутка цикла": http://ftp.altlinux.org/pub/people/mike/elbrus/docs/elbrus_prog/html/chapter6

    Благозвучней и, возможно, так называется действительно давно (могу уточнить в офисе™).

    Ну и до кучи: http://altlinux.org/эльбрус/словарик :)

     
     
  • 2.27, Аноним (85), 23:54, 13/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Шигорин. У меня к вам лично совет - поставьте себе HTTPS Everywhere в браузер. И включите EASE.
     
  • 2.31, Lex (??), 00:20, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Разворачивание ?
     
  • 2.59, n00by (ok), 08:47, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А как быть с раскруткой стека (вызовов, при исключении)? Вот где действительно может быть понакручено.

     

  • 1.23, Анонимешник (?), 22:50, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А когда С++ станент единственным языком?
     
     
  • 2.32, Аноним (6), 00:34, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда прекратят стругать стандарты каждый год.
     
     
  • 3.79, Аноним (79), 14:52, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Растоманы по нескольку раз в год настругивают и ничего, растопипл хавает.
     
  • 2.66, Lex (??), 09:13, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Лет 20 назад ему было лет 5 до этого
    Лет 15 назад ему было лет 10 до этого
    Лет 10 назад ему стало лет 15 до этого

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

     
     
  • 3.75, Siborgium (ok), 13:06, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Простые и выразительные ЯП просто и выразительно решают задачи написания хелловорлдов. Когда дело заходит дальше хелловорлдов, эти ЯП становятся сложными и невыразительными. Язык упрощается, а не усложняется -- то, что раньше решалось через SFINAE и сложную логику на шаблонах, теперь легко и просто пишется на концептах и constexpr.
     
     
  • 4.78, Lex (??), 14:43, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если хеллоуворды - это максимум, сверх которого требуется более «мощный» ЯП, то такому человеку в принципе не место среди программистов.
    Я как-то видел сайт с серверной частью на плюсах( притом он генерировал html, отдаваемый клиенту ).. такого мусорного и глючного говнокогда я больше не видел нигде и ни на чем( а ведь приходилось сталкиваться с кодом, написанным и китайцами и индийцами ).

    Говорят, в гумманитарке таких берут - у них как раз безмерная мешанина, которую «просто надо знать».

    ПлюсЫ уже давно наравне с джавой - нифига не простые, нифига не выразительные, нифига не «переносимые» и кроссплатформенные

     
     
  • 5.93, Аноньимъ (ok), 16:48, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, похожий опыт имел недавно с одним опенсорс проектом на гитхабе.
    Написано не просто ужасно, а проигнорированы самые базовые правила приличия.
     
  • 5.94, Siborgium (ok), 16:57, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Зачем нужны простые и выразительные языки, на которых простые и выразительные ... большой текст свёрнут, показать
     
     
  • 6.102, Lex (??), 20:33, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем нужны "простые и выразительные" языки, на которых простые и выразительные только
    > хелловорлды?

    Так в том и дело, что у криворуких и кривоголовых на любом ЯП дальше хеллоуворда не пойдет
    Тут не в языке, а в "программисте" дело

    > Вы по одному криво написанному проекту судите об языке? Удачи вам.

    Спасибо, но оставьте ее себе. Судя по комментам, она вам еще очень понадобится

    > Плюсы нельзя ставить в один ряд с джавой, они кардинально отличаются по
    > выразительным способностям и назначению.

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

    > Концепты, которые можно выразить в плюсах, нельзя выразить больше нигде. Только Idris
    > подбирается близко, но и он тащит метаинформацию в рантайм.

    Зачем их "выражать", когда можно обойтись без них ? Проще надо быть и не порождать тонн г.на на ровном месте.
    По большому счету, именно плюсЫ реально требуются максимум для каждого сотого проекта, где они применяются.
    И это максимум.

    > Это бред. Компиляторы С/С++ охватывают больше платформ, чем компиляторы любого другого
    > языка.

    Ну-ну. Только далеко не все сишные проекты компилятся всеми сишными компиляторами ввиду каких-то специфичных вещей :)))
    А так - доооооооо, охваатывают :)


     
     
  • 7.113, Siborgium (ok), 09:57, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С вашего позволения процитирую вам ваши аргументы.

    >С++ плохой язык потому, что я видел плохо написанный проект на С++
    >С++ плохой язык потому, что много проектов на С++ можно написать не на С++
    >С++ не кроссплатформенный, потому что на нем можно написать некроссплатформенную программу
    >Программы на С++ не кроссплатформенные, потому что не все программы на С++ можно скомпилировать на любом компиляторе С++
    >Зачем давать компилятору дополнительную метаинформацию о программе, когда можно не давать, а держать ее в голове

    Пожалуйста, наносите грим и не забывайте надевать красный нос в следующий раз, люди не сразу понимают, что вы клоун.

     
     
  • 8.127, НямНямка (?), 15:57, 19/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Си и плюсы плохи, потому что там можно и легко можно сделать плохо Их стандарты... текст свёрнут, показать
     
  • 6.104, Аноним84701 (ok), 21:34, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Концепты, которые можно выразить в плюсах, нельзя выразить больше нигде.

    Угу. При этом, по какой-то случайности "концепты" очень смахивают (хоть и не дотягивают) на то, что в остальном мире лет 30 известно как "refinement type". И для проверки которых не помешает не самый плохой SMT вычислитель, тот же z3 для F* или alt-ergo для Frama-C запросто тянут на пару сотен мб.

    > Только Idris подбирается близко, но и он тащит метаинформацию в рантайм.

    Вообще-то, в Idris, емнип, зависимые типы (dependent type). Они способны отобразить в _типе_ такие вещи как:
    Vect n -> Vect m -> Vect (n + m)
    "длина результата объединения двух векторов равна сумме длин объединяемых" -- и правда, куда там до концептов 🙄 ...

     
     
  • 7.112, Siborgium (ok), 05:14, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >[оверквотинг удален]
    > дотягивают) на то, что в остальном мире лет 30 известно как
    > "refinement type". И для проверки которых не помешает не самый плохой
    > SMT вычислитель, тот же z3 для F* или alt-ergo для Frama-C
    > запросто тянут на пару сотен мб.

    Концепты это не refinement types, хотя и позволяют реализовать их. Концепты являются более мощным инструментом, так как, в отличие от refinement types, которые (в Idris и Liquid Haskell, во всяком случае) способны оперировать лишь валидными с точки зрения языка конструкциями, концепты еще и отвечают на вопрос "скомпилируется ли это выражение".

    >> Только Idris подбирается близко, но и он тащит метаинформацию в рантайм.
    > Вообще-то, в Idris, емнип, зависимые типы (dependent type). Они способны отобразить в
    > _типе_ такие вещи как:
    > Vect n -> Vect m -> Vect (n + m)
    > "длина результата объединения двух векторов равна сумме длин объединяемых" -- и правда,
    > куда там до концептов 🙄 ...

    Молодой человек, dependent types в плюсах существуют с появления темплейтов. Ваш пример выражается не так красиво, но с сохранением всех свойств:

    '''
    template <size_t N>
    struct Vect {
        template <size_t M>
        Vect<N + M> operator+ (Vect<M>) { ... }
    }
    '''

     
  • 2.76, CrazyAlex (?), 13:11, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Никогда. И не должен, как и любой другой язык
     

  • 1.33, Аноним (33), 01:02, 14/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Честно говоря, сама концепция OpenMP - так сказать, местечковый параллелизм - слишком ограничена и потому малоприменима на практике. Ну разве что вся работа программы сводится к одному циклу. Наверно, для чистых числодробилок подойдет, хотя и то не факт, что чистые потоки или job-based архитектура не будут более эффективны даже в этом кейсе. Просто удивляюсь, зачем до сих пор тащат этот подход вместо стандартизации job server'а, например.
     
     
  • 2.36, fsb4000 (?), 02:47, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    OpenMP обычный tasklevel параллелизм. И он точно такой же много где. https://en.wikipedia.org/wiki/Task_parallelism Ничего другого не придумали. А про ваш  "job server" параллелизм литература ничего не знает. Подтягивайте ваши знания, чтобы выражаться стандартными определениями.
     
     
  • 3.72, Аноним (33), 11:45, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, OpenMP используется для распараллеливания определенного блока кода, например, цикла. Т.е. условно говоря, при входе в цикл потоки создались, при выходе - завершились (joined). Это можно сделать на базе job-сервера (или task-level параллелизма, как вам угодно), но во-первых, это не меняет сути (весь параллелизм должен закончиться при выходе из блока), а во-вторых, не все компиляторы реализуют job-сервер и по факту именно что стартуют и тормозят потоки (например, gcc).

    Суть в том, что просто распараллелить блок кода - не такая уж распространенная задача на практике. Чаще нужно что-то запустить на исполнение и дальше заниматься своими делами. Эта задача не решается OpenMP.

     
     
  • 4.97, fsb4000 (?), 18:08, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, OpenMP используется для распараллеливания определенного блока кода, например, цикла.
    > Т.е. условно говоря, при входе в цикл потоки создались, при выходе
    > - завершились (joined). Это можно сделать на базе job-сервера (или task-level
    > параллелизма, как вам угодно), но во-первых, это не меняет сути (весь
    > параллелизм должен закончиться при выходе из блока), а во-вторых, не все
    > компиляторы реализуют job-сервер и по факту именно что стартуют и тормозят
    > потоки (например, gcc).
    > Суть в том, что просто распараллелить блок кода - не такая уж
    > распространенная задача на практике. Чаще нужно что-то запустить на исполнение и
    > дальше заниматься своими делами. Эта задача не решается OpenMP.

    Нет конечно, всё не так. OpenMP создаёт потоки один раз, и потом просто даёт им задачи. Запустить что-то на исполнение и дальше заниматься своими делами тоже решается на OpenMP. Я же говорю, ты просто не читал ничего про OpenMP.

     
     
  • 5.109, Аноним (33), 00:06, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет конечно, всё не так. OpenMP создаёт потоки один раз, и потом просто даёт им задачи. Запустить что-то на исполнение и дальше заниматься своими делами тоже решается на OpenMP. Я же говорю, ты просто не читал ничего про OpenMP.

    И читал, и использовал. Поэтому и говорю.

     
  • 2.40, Scriptor (ok), 03:15, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учитывая, что у абсолютного большинства пользователей вполне себе OpenMP-ready многоядерный процессор, а распараллеливание с помощью OpenMP технически _очень_ простое для автора программы -- почему бы и нет?
     
     
  • 3.63, Аноним (60), 08:57, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Правильно OpenMP для пользователей и пользовательского прикладного ПО.

    Для науки и крутых вычислений есть MPI.

     
     
  • 4.99, Scriptor (ok), 18:32, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Правильно OpenMP для пользователей и пользовательского прикладного ПО.

    Научное и вычислительное ПО -- такое же пользовательское и прикладное.

    > Для науки и крутых вычислений есть MPI.

    Интересно, почему разработчики научного ПО считают иначе?

     
  • 3.73, Аноним (33), 11:52, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если в программе уже есть явная многопоточность (job-сервер, IO, явное использование потоков), которая нужна для других задач, то использование OpenMP для местечкового распараллеливания не имеет смысла. Зачем плодить потоки и добавлять еще одну технологию, когда можно реиспользовать то, что уже есть и работает?

    Вот и получается, что OpenMP не нужен за исключением случая, когда вся программа - тупая числодробилка и ничем другим не занимается.

     
     
  • 4.100, Scriptor (ok), 18:35, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем плодить потоки и добавлять еще одну технологию,
    > когда можно реиспользовать то, что уже есть и работает?

    Например затем, чтобы не организовывать обмен и разделение данными между такими же потоками, а использовать общую память.

    > Вот и получается, что OpenMP не нужен за исключением случая, когда вся
    > программа - тупая числодробилка и ничем другим не занимается.

    Определите "тупая числодробилка".

     
     
  • 5.110, Аноним (33), 00:13, 15/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Например затем, чтобы не организовывать обмен и разделение данными между такими же потоками, а использовать общую память.

    Во-первых, OpenMP не освобождает от необходимости синхронизации потоков при доступе к общим данным. Во-вторых, синхронизацию можно минимизировать, независимо от того, используете ли вы потоки, job-server или OpenMP. Собственно, последний в этом плане ничего принципиально нового не предлагает.

     
     
  • 6.125, Scriptor (ok), 13:14, 18/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых, OpenMP не освобождает от необходимости синхронизации потоков при доступе к общим
    > данным.

    Да. А вот от необходимости реализовывать обмен данными между процессами освобождает.

    > Во-вторых, синхронизацию можно минимизировать, независимо от того, используете
    > ли вы потоки, job-server или OpenMP. Собственно, последний в этом плане
    > ничего принципиально нового не предлагает.

    Удобство использования, и особенно удобство распараллеливания уже существующего кода.

    Идеально, конечно, перейти на комассивы и вообще не думать, как там оно под капотом устроено. Но считать надо уже здесь и сейчас.

     

  • 1.53, Аноним (-), 06:07, 14/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем оно лучше потоков thread из стандарта чистого Си - 2011 года?
     
     
  • 2.58, Аноним (6), 07:39, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Абсолютно ничем, кроме синтаксического сахара.
     
     
  • 3.64, Аноним (60), 08:58, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Умеет в DSP, GPU OpenCL.
     
     
  • 4.67, Аноним (-), 10:06, 14/11/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ээ-э погоди. DSP  - это железяная архитектура. GPU OpenCL - это высокоуровневая библиотека.
     
  • 2.126, Аноним (126), 14:35, 18/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скорей всего речь идет о том, что конфигурацию "счетных" узлов в кластере вы делаете силами OpenMP один раз, а далее любые программы просто пользуются стандартизированным API. Не надо самому создавать под каждую неизвестно кем сконфигурированную систему код, отвечающий за параллельный расчет.
     

  • 1.121, Плохой Танцор (?), 23:41, 16/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > После двух лет разработки опубликован набор спецификаций OpenMP 5.1

    И много они там на нём напрограммировали?

     
     
  • 2.122, Аноним (6), 06:57, 17/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как на расте в Мозиле - с гулькин хер
     
     
  • 3.129, burjui (ok), 22:15, 24/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если Онаним за день не кукарекнул про Rust, жизнь проходит зря.
     

  • 1.123, Аноним (123), 19:56, 17/11/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну что, молодцы, хорошая штука.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру