1.1, leibniz (ok), 19:55, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
До чего же отрадно видеть упоминание фортрана. Наставник в универе вёл вычмат и от ПК ему требовались только FAR и Fortran - эх, были времена... Работало у него всё чётко и ладно.
| |
|
2.2, Аноним (2), 19:56, 13/11/2020 [^] [^^] [^^^] [ответить]
| +8 +/– |
Fortran и сейчас активно используется для вычислений и в научной среде.
| |
|
|
|
5.124, Дущт (ok), 23:21, 17/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да почти вся квантовая химия на фортране. Исключения единичны, но есть. Вот LAMMPS почти полностью переписали с Fortran на C++.
| |
|
|
|
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 около минуты.
А на питоне ещё и либ для биоинформатики много всяких, не понимаю как им пользуются вообще.
| |
6.98, Scriptor (ok), 18:28, 14/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Никакой серьёзный анализ на Питоне не напишеш.
Определите "серьёзный анализ".
> А числа дробить чем угодно можно.
С разной скоростью.
| |
|
7.105, Аноньимъ (ok), 21:55, 14/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Лучше наверное сказать сложный.
Это когда вам нужно что-то считать выходя за рамки подключенного фреймфорка, ну там матричного или еще какого.
И вот тогда вы остаетесь один на один со всеми прелестями питона.
Впрочем, иногда и загрузить подготовить данные есть большая проблема.
Популярность питона для меня большая загадка, очевидно спустили эту каку с верху.
Ну или такое определение, серьезный это такой который сложно проводить с помощью питона.
| |
|
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 вполне можно наваять проект средней руки.
| |
|
|
|
|
|
|
4.13, Аноним (7), 21:35, 13/11/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
Ты вначале хотя бы чисто для прикола поступи в вуз, чтобы сформировать свое мнение об этих самых "наставниках в универе", прежде чем петь им дифирамбы и называть "профессорами".
| |
|
|
6.77, myhand (ok), 13:16, 14/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Странно, мне попались отличные преподаватели.
Вы же, вроде, младоземельный креационист? Семь тыщ лет, Ноев потоп, вот это вот все.
Результат - говорит против того, что они отличные преподаватели.
| |
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.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 +/– |
Так и в чем проблема конкретно с фар.икс, равно как и с видной ?
| |
|
6.51, Аноньимъс (?), 05:52, 14/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы анонима фундаментальным вкладом в питончик пугаете?
Я так смотрю скоро бейсик некоторые начнут открывать и джиты к нему пилить.
Впрочем неуспеют. Конец света раньше случится.
| |
|
7.80, анонн (ok), 15:15, 14/11/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
> Вы анонима фундаментальным вкладом в питончик пугаете?
> Я так смотрю скоро бейсик некоторые начнут открывать и джиты к нему пилить.
> Впрочем неуспеют. Конец света раньше случится.
Однако, какая изящная формулировка "... и как обычно, у (очередного) анонима есть только Ценнейшее Мнение"!
Или очередной, храбрый аноним сможет продемонстрировать, помимо пустословия, что-то свое, что не смог "побить" ни Dropbox, ни Google ни (кто там пилил Numba с нуиткой)?
ЗЫ:
Ясно. Все "как обычно".
| |
|
|
5.42, YetAnotherOnanym (ok), 03:24, 14/11/2020 [^] [^^] [^^^] [ответить]
| –7 +/– |
> Ты вначале хотя бы чисто для прикола поступи в вуз, чтобы сформировать
> свое мнение об этих самых "наставниках в универе", прежде чем петь
> им дифирамбы и называть "профессорами".
Что, двойками обижали, да? Ну, бывает...
| |
|
|
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Да сейчас вообще какая-то тенденция наплодить как можно больше несовместимого.
| |
|
2.10, A.Stahl (ok), 21:18, 13/11/2020 [^] [^^] [^^^] [ответить]
| +9 +/– |
Какой, нафиг, зоопарк? Эти стандарты последовательны, а не параллельны.
| |
|
3.17, Аноним (6), 22:00, 13/11/2020 [^] [^^] [^^^] [ответить]
| +11 +/– |
И этот последовательный зоопарк приходится поддерживать параллельно...
| |
3.45, n242name (?), 05:27, 14/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
какой стандарт лучше взять за основу для изучения если на плюсах не писал больше 10 лет?
| |
|
4.71, CrazyAlex (?), 10:50, 14/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
14й - поправлены основные проблемы 11 (который мастхев), в 17 ничего принципиального не добавилось - при нужде на ходу подтянете. 20 прекрасен, но реальное распространение ещё не получил
| |
|
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
> В раст поддержка параллельных вычислений встроена в сам язык
И чё, прям с матрицами научили лучше фортрана работать? :)
> а в дырявых сишечках и фортранчиках приходится всякие костыли городить.
Вам что-то говорит слово "банк" применительно к этой теме?
А то вдруг нет.
| |
|
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.85, Аноним (85), 15:59, 14/11/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
В качестве первого языка отлично подходит JavaScript или питон. Во-первых, интерпретируемый. Это значит можно играться в repl. Во-вторых, нет пляски вприсядку со сборочной системой. В третьих, используется в ИНДУСтрии - есть вакансии. JavaScript подходит лучше - он уже с jit, установлен на каждом компе из коробки, имеет стандартизированную стандартную библиотеку для рендеринга GUI, доступа к камере, микрофону, акселерометрам и GPU, ограниченную стандартизированными же разрешениями, а питон надо пользователя убеждать ставить, да потом уже убеждать запустить вашу программу, а для этого убеждать, что она невредоносна.
| |
|
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.
| |
|
2.128, burjui (ok), 22:10, 24/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Не вижу твоего комментария на английском. Чё, английский на подобное не способен? Логика же.
| |
|
1.19, Ordu (ok), 22:27, 13/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> Си, Си++ и Фортран на многоядерных и гибридных системах
"...и грибовидных системах"
На грибовидных им самое место. Передай им кто-нибудь, чтобы оставили многоядерные в покое.
| |
|
2.27, Аноним (85), 23:54, 13/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Шигорин. У меня к вам лично совет - поставьте себе HTTPS Everywhere в браузер. И включите EASE.
| |
2.59, n00by (ok), 08:47, 14/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
А как быть с раскруткой стека (вызовов, при исключении)? Вот где действительно может быть понакручено.
| |
|
|
|
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 +/– |
С вашего позволения процитирую вам ваши аргументы.
>С++ плохой язык потому, что я видел плохо написанный проект на С++
>С++ плохой язык потому, что много проектов на С++ можно написать не на С++
>С++ не кроссплатформенный, потому что на нем можно написать некроссплатформенную программу
>Программы на С++ не кроссплатформенные, потому что не все программы на С++ можно скомпилировать на любом компиляторе С++
>Зачем давать компилятору дополнительную метаинформацию о программе, когда можно не давать, а держать ее в голове
Пожалуйста, наносите грим и не забывайте надевать красный нос в следующий раз, люди не сразу понимают, что вы клоун.
| |
|
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>) { ... }
}
'''
| |
|
|
|
|
|
|
1.33, Аноним (33), 01:02, 14/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Честно говоря, сама концепция OpenMP - так сказать, местечковый параллелизм - слишком ограничена и потому малоприменима на практике. Ну разве что вся работа программы сводится к одному циклу. Наверно, для чистых числодробилок подойдет, хотя и то не факт, что чистые потоки или job-based архитектура не будут более эффективны даже в этом кейсе. Просто удивляюсь, зачем до сих пор тащат этот подход вместо стандартизации 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. Собственно, последний в этом плане
> ничего принципиально нового не предлагает.
Удобство использования, и особенно удобство распараллеливания уже существующего кода.
Идеально, конечно, перейти на комассивы и вообще не думать, как там оно под капотом устроено. Но считать надо уже здесь и сейчас.
| |
|
|
|
|
|
|
|
|
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
И много они там на нём напрограммировали?
| |
|