Опубликованы первые выпуски проекта Bend, развивающего высокоуровневый язык программирования для параллельных вычислений, который позиционируется как альтернатива низкоуровневыми языкам, таким как CUDA и Metal, обладающая выразительным синтаксисом и возможностями для повышения удобства разработки, свойственными таким языкам, как Python и Haskell. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61224
А говорили что на Расте только переписывают и не создают ничего нового, - получите и распишитесь!
https://github.com/HigherOrderCO/hvm бгг, зайди в репу и посмотри, какой там процент на расте на самом деле
и? сам Bend на 100% Расте: https://github.com/HigherOrderCO/Bend/или вам этого недостаточно?:)
Что такое Bend? В том репозитории о котором ты пишешь 8к строк кода. Это 0.001% от сишки в зависимостях. И это по самой выгодной для раста оценке.К тому же ненужно забывать, что код на расте на 80% состоит из бойлерплейта и раст-специфичных костылей. Поэтому чтобы получить хотя бы сишные строки это всё нужн оразделить на 4 в результате получаем хеловорлд на пару тысяч строк кода.
В любых биндингах к сишке кода больше. С таким же успехом можно взять какой-нибудь llvm-rs и рассказывать что "он написан на расте". К чему это всё? Что ты этим хотел сказать?
Щас бы полезность ЯП оценивать в строках... Боюсь тогда сишка всрет фортрану какому-нибудь.
> Щас бы полезность ЯП оценивать в строках... Боюсь тогда сишка всрет фортрану какому-нибудь.Число строк в сишке очень зависит от подключеных библиотек.
Скажем, на сишке можно распределенный p2p бот для чата протокола Tox уместить в менее чем страничку текста на все. Потому что де факто месенжер - в либе! А эта страничка текста так, обвес с логикой. Экономить особо негде, даже если питон какой взять.
Или вон там на сишке есть lwan. С ним можно микросервисы делать - не хуже чем адепт го. И тоже в полстранички текста - влезет. Заодно потом можно погарцевать в верхушке какого-нибудь топичного бенчмарка, в целях пиара, конечно.
А на фортране так - без сишных либ - смогете? Не, использовать сишные либы - читерство! :)
>>> код на расте на 80% состоит из бойлерплейта и раст-специфичных костылей <<<Возможно если вы пишете целиком и полностью в императивном стиле то возможно, у вас так и получается! ну а если же писать в функциональном стиле, то там код будет однострочником не хуже чем в том же Хаскеле или Скале!!!
Эти фантазёры. Как раз таки императивно там получается меньше всего проблем потому как рескин сишки. А как только дело доходит до абстракций, то получаются тормоза и бойлерплейт. Почему каждый почитатель тут не то что к программированию отношения не имеет, но и расте ничего не знает и в глаза не видел. Открой код и посмотри, начиная с такого `hvm::Numb::new_i24(s as i32 * num as i32)` где каждая строчка это мусор, заканчивая фантазиями о каком-то функциональном стиле(которого не существует в природе). Но ты можешь их найти. В vm такого кода нет, но то и понятно это просто копипаста с сишной реализации.В обвязке убогой наличие всех этих приседаний с итераторами следствие немощи языка. Как пример:
```
.iter()
.filter(|nam| !nam.contains("__C"))
.chain(cycle.first())
.cloned()
.collect::<Vec<_>>()
.join(" -> ");
```Даже уходя от нелепости подобного кода и тормознутость - здесь каждая вторая строчка мусор. .iter - следствие немощной системы типов, а вернее её полном отсутствии. .cloned туда же. collect опять же следствие всего указанного выше, как и убогости самих итераторов. Когда тебе нужно постоянно перегонять всё в вектор. Даже в js всё это не так позорно, но там постоянная перегонка хоть причину имеет. map/filter/прочее реализовано только для массива.
> Даже уходя от нелепости подобного кода и тормознутость - здесь каждая вторая
> строчка мусор. .iter - следствие немощной системы типов, а вернее её полном
> отсутствии. .cloned туда же. collect опять же следствие всего указанного выше,
> как и убогости самих итераторов.Зато в сабже как круто. Никаких типов, никаких проблем с ними. Правда, я не понимаю как вы это в случае чего дебажить потом будете - ведь аннотации намерений кодера в том синтаксисе нет. Так что если вместо дерева с бананами вышло дерево с ботинками - кто бы его знает как и почему?
> Это 0.001% от сишки в зависимостях.Хм, кодокамакам все еще платят за кол-во строк кода?
И что ты хотел от языка более высокого уровня чем "переносимый ассемблер".> К тому же ненужно забывать, что код на расте на 80% состоит из бойлерплейта и раст-специфичных костылей.
У неосиляторов это костыли, у профи, это код позволяющий не делать классические дыряшечные ошибки.
> К чему это всё? Что ты этим хотел сказать?
Обратил внимание недалеких, на то что проект действительно на расте на 99%.
А чего у тебя так подгорает?
>Хм, кодокамакам все еще платят за кол-во строк кода?Растовикам да. У них эталонная индусятина.
>И что ты хотел от языка более высокого уровня чем "переносимый ассемблер".
Что я хотел? Во-первых раст убогий рескин сишки поэтому гнать на сишку такое себе. Во-вторых сишка(особенно то, что под ней понимают обыватели и на чём пишут те самые индусы) является достаточно многословной. Конечно, до уровня жавы ещё далеко, но там 90% кода сгенерированной ide лапши, хотя и остальные 10% сливают си.
Поэтому если мы видим язык менее выразительный, код менее выразительный, то мы вполне себе можем сравнивать сроки. Причём ещё давая фору менее выразительному языку.
>Обратил внимание недалеких, на то что проект действительно на расте на 99%.Я выше привёл для домохозяек пример. llvm-rs на 99% тоже на расте как и любая обёртка. Имеет ли это смысл?
Кстати, а ты знал что zcat написан на баше? Вот узнай и расскажи всем. Даже на 99%, а 100%.
>У неосиляторов это костыли, у профи, это код позволяющий не делать классические дыряшечные ошибки.
Не, с дырявыми ошибками это не связано. А тот код, что пишется "на дырявой сишке" на расте в принципе не написал и написан он на таком же дырявом рескине сишки.
Конечно, это удивительно будет для фанатиков-домохозяек, но рескин дырявый от раста содержит в 5 раз больше уб чем сишка. И большинство уб в расте связаны с самим растом. Такого в сишке процентов 10%. Хотя говорить об уб/дырах сравнивая раст и сишку верх глупости, потому что всё что есть у раста это лозунги уровня "уб не уб" и всё.
>А чего у тебя так подгорает?
От чего подгорает? От домохозяек, которые решили влиться в струю? Мне что от этого? Вы соревнуетесь в невежестве думая, что чем моднее базворды тем менее ты невежда в глазах обывателя. Но меня, в отличии от тебя, абсолютно не волнует мнение обывателей. Да и даже среди них ты убежишь с позором.
Интересная аргументация, но предвзятое отношение к домохозяйкам. Попробуй убери всю квартиру за пару часов, не сильно проще раста на самом деле.
>Интересная аргументация, но предвзятое отношение к домохозяйкам.С чего это? Где ты там его увидел? Просто каждый должен заниматься своим делом.
>рескин дырявый от раста содержит в 5 раз больше уб чем сишкаЯндекс сделала замеры.
> Во-первых раст убогий рескин сишкиО, кекспертность с первой же фразы!
В расте столько всего от функциональных языков что сишке и не снилось. Даже первый компилятор был на Ocalm'e.> Я выше привёл для домохозяек пример. llvm-rs на 99% тоже на расте как и любая обёртка. Имеет ли это смысл?
Естественно. Это значит что если там будет очередная дыряшечная уязвимость, то дойдя до раст-кода оно скорее всего упадет, а не подарит рут или выполнит случайный код.
> А тот код, что пишется "на дырявой сишке" на расте в принципе не написал и написан он на таком же дырявом рескине сишки.
Пук супер громкий, но кажется ты обделался.
На расте пишут дрова для видях (уже как минимум 2 проекта).
И вообще аргумент "я смог слепить статую и овна, с неповторимым вкусом и запахом, а ты из своего полимербетона так не можешь" весьма ущербен.
Те кто меняют безопасность на скорость, в итоге оказываются взломанными во все дырки и замедленными патчами.> Конечно, это удивительно будет для фанатиков-домохозяек, но рескин дырявый от раста содержит в 5 раз больше уб чем сишка.
> Такого в сишке процентов 10%.О, прекрати пожалуйста обделываться! На тебя просто жалко смотреть.
Давай примеры, а то звучит как бред после делирия.> Хотя говорить об уб/дырах сравнивая раст и сишку верх глупости
Конечно, мы говорим про отвратительный недоязык, у которого минорная версия комилятора может поменять результат работы програмы, где до сих пор не договорились в каком порядке должны выполняться функции, а "типа стандарт" написан в стиле "в сосисках может быть мясо или овно, на усмотрение компилятора".
Но сишники чавкают за обе щеки и только нахваливают.> Но меня, в отличии от тебя, абсолютно не волнует мнение обывателей.
Да, настолько не волнует, что написал целый пассаж)
Переписали cuda на непонятно что? Вот это прорыв. Ещё один хеллоуворлд, который никому не нужен.
>>Код на языке Bend компилируется в низкоуровневое промежуточное представление HVM2 (Higher-order >>Virtual Machine 2), которое затем компилируется в представление на C и CUDA
Прям какое-то хейт-бинго для местных кекспертов
Python
Rust
Apacheда еще и работает только на NVIDIA)))
Раскидывать"1 + 2" и "3 + 4" на разные ядра? Неужели GPU может сделать только одно сложение за такт?
Скорее всего, простейший пример выбрали для наглядности. Операции "1 + 2" и "3 + 4" обычный процессор в одном потоке выполнит параллельно.
> Скорее всего, простейший пример выбрали для наглядности. Операции "1 + 2" и
> "3 + 4" обычный процессор в одном потоке выполнит параллельно.GPU можно представить как кучу относительно простых ALU, на манер SIMD/MIMD, с той разницей что число lanes по сравнению с обычным процом - немеряное! Так что число инструкций за такт которое оно сжевывает - зубодробильное. Если, конечно, алгоритм параллелился и было чем lanes занять и не упиралось в взаимозависимости результата.
На самом деле чуть продвинутее. А в минус - слабый exec flow control, такая штука в отличие от проца общего назначения не особо быстро разворачивается в другую сторону. Изначально же делано чтобы паровым катком по всей площади картинки прокатиться. А оказалось что это и еще много где неплохо работает.
>при задействовании 16 потоков - за 0.96 сек., а при привлечении GPU NVIDIA RTX 4090 с 16k потоками - за 0.21 сек.Топить печь ассигнациями. Количество потоков увеличилось с 16 до 16000, скорость только 4,5 раза.
Это разные "потоки". Это потоки CPU, притом M3 процессора.И потоки GPU.
и пропускная способность с кэшами и задержками.
Так проц мощнее видяхи вон насколько. Только на коредуба надо проц разгружать и передать видяхе для заметной выгоды.
Опять выпил? Какой видяхи на маке нет нвидии и никогда не будет.
В статье что написано? Чел выше даже акцетировал,но тебе все равно про свое наболевшее.
> Это разные "потоки". Это потоки CPU, притом M3 процессора.Сам придумал?
>Это разные "потоки".чел всё правильно пишет, если GPU не быстрее CPU хотя бы в 100500 раз, то это провал.
посмотри разницу на майнинге шоле или hashcat-инге
Уху, 1+1 100500 раз и ничего нового,а 1+2 уже не осилил. Может проще подсмотреть в конце учебника ответ? Норм расчеты ИИ. Точно умнее тебя.
[cарказм]полагаю вы из тех у кого стакан всегда наполовину пуст![/сарказм]
Да было бы интересно узнать производительность на ватт.
> 4,5 разаЭто довольно много, если речь о вычислениях, которые занимают часы, а то и дни.
похоже на очередную обёртку
Похоже на эксперимент чтобы менеджеры могли отчитаться за работу. Собственно руст это один из таких же экспериментов.
Ну так работа кипит, значит и годовые бонусы растут. А нужно или нет пусть думает тот кто за это платит. Если хочет свой блэкджек, значит сделаем ему блэкджек.
> похоже на очередную обёрткуВ этом вся суть современной айтишечки. Всё уже написано и переписано по 100500 раз, а деньги зарабатывать среднестатистическому айтишнику как-то надо. Не все же программисты настолько одарённые, чтобы работать с ИИ на низком уровне, а не поверх готовых библиотек.
> Всё уже написано и переписано по 100500 раз,Но все равно работает плохо.
Да еще и плохие баги типа рут узвимостей находят почти каждую неделю> а деньги зарабатывать среднестатистическому айтишнику как-то надо.
МОжно танцевать в костюме антилопы и просить донаты!
> Не все же программисты настолько одарённые, чтобы работать с ИИ на низком уровне, а не поверх готовых библиотек.
Если бы твоя идея была жизнеспособной, то все бы писали только на ассемблере.
Но приложение, которое будут пилить на АСМе 10 лет нужно мало кому.
Ты совсем не понял то, что тебе попытались донести. Впрочем, ожидаемо.
> Да еще и плохие баги типа рут узвимостей находят почти каждую неделюВысосанные из пальца, которые то и "багами" являются только в искусственно созданных "тепличных" условиях. Напомни ка, много ли взломов осуществляется путём сурового хакинга, а не социальной инженерии или откровенной диверсии с подкупом сотрудников за $$$?
Хахаха, а сколько там лет kernel org был проходнеым двором?
А для повышения привилегий использовалась Грязная Корова.
opennet.ru/opennews/art.shtml?num=45354А вот новости про повышение привилегий или исполнение кода на этом сайте выходят... постоянно)
Так что дааа, 'являются только в искусственно созданных "тепличных" условиях'
И как на практике оно? Много хакиров захакали kernel.org?
> Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.https://github.com/HigherOrderCO/hvm
А вот сердце:
> Cuda 42.2%
> C 40.7%
> Rust 17.1%
Почему-то у меня не обновились комментарии...
Старый hvm1 был на си, а hvm2 на rust. GitHub показывает общую статистику по всей истории, а не раскладку по текущему коду.
И что даёт руст? Во время конь пиляции так много людей выходит за границы что надо тратить время на новую версию и все равно можно выйти за границы
Почему ты врёшь?
https://github.com/HigherOrderCO/HVM/tree/main/src
Гляньте сами внимательно, там код на rust, а на си и cuda результат автоматической генерации. Даже в новости написано, что компилятор на выходе выдает код на c+cuda.
Это обвязка-болванки на си и cuda без которых код на расте не работает. Код на расте не полноценный и просто транслирует тексты из одного представления в другое (сишное/кудовское) которое подсовывает в эти обвязки.
https://github.com/HigherOrderCO/HVM/blob/860916b907bb4a4d35...
С таким успехом можно было на JS написать генератор, не изменилось бы ровным счётом ничего.
И кстати код на расте тупо долбит файл с обвязками из раза в раз по новой через replace, которая каждый раз происходится по файлу заново. Парсер не завезли.
Хотя там и парсер не нужно, достаточно просто планировать замену последовательно не проходя каждый раз файл с нуля.
Я в жаваскриптах не рабираюсь и не уверен позволяет ли он
"использования функций высшего порядка, замыканий, продолжений, неограниченной рекурсии, сопоставления с образцом, рекурсивных сопоставлений (fold) и циклов (bend), целочисленных, строковых и списочных типов"Но в сишке про такие новшества и дары цивилизации вообще не слышали, там перечисления (enum которые) до сих пор просто числа. Что приводит к веселыс сравнениям теплого с мягким.
Так что код на расте не просто транслирует, а еще и добавляет удобства.
Нет.
Как ты не понимаешь фанатики искренне верят если си код создала программа на руст, то этот код автоматически безопасТный, чтобы это ни значило.
Не правда, такое может рассказывать только человек, который даже растбук не читал.
И обычно такие, внезапно, это войны-супротиив-раста.А те кто в теме, они просто утверждают, что программа на "расте и си", в стравнении с "чистым си" более безопасная.
Потому что у тебя есть код который был проверен.
Какой-то набор слов.
Возьми, к примеру, спарк. Формально верифицированный код из ада транслируется в си. Раст никакого отношения к этому, конечно, не имеет, но схема вполне рабочая.
> Формально верифицированный код из адаЕсли у тебя есть формально верифицированный код, то ты его можешь оттранслировать практически куда хочешь.
Вот только получить такой код очень дорого. Поэтому ада и не взлетела, а ее место заняла быдлосишка(((
Которую тоже можно верифицировать как напр. seL4. Но от сишки там будет одно название.Раст, кстати, тоже можно оттранслировать в си, просто это будет неэффективно.
Спарк самоверифицируемый субсет ада. И вполне взлетела, вон даже во всех видеокартах монополиста уже лет 7 как минимум. По заявлениям, повышение стоимости незначительное.
> Формально верифицированный код из адаВот именно что из ада он транслируется. Пытался код один почитать, адок ещё тот..
Вы, надеюсь, случайно, вводите всех в заблуждение, а не лжете внаглую:Вы взяли утверждение из новости про один проект, а ссылку дали на другой. Маладэць.
Новость не про проект "параллельного рантайма" HVM2, а про проект "параллельного языка" Bend (язык и компилятор для него). А там на Bend и ссылка другая и другое "сердце":
https://github.com/HigherOrderCO/Bend/
Languages
Rust 99.8%
Just 0.2%Так что да,
> Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.это правда, потому что там про Bend, а не про HVM2.
Вот така фигня, господин соврамши.
Я на 99% уверен что человек ввел в заблуждения не намеренно.
Просто когда в заголовке новости есть слово Раст, то это привлекает много странных личностей, многие из которых по интеллекту слегка умнее тумбочки.
А еще старых сишников с закостенелыми мозгами.Так что, наверное, стоит относиться к ним с пониманием.
Только сабж не работает без стороннего рантайма, написанного с использованием си (в значительной мере), так что, технически, тот комментатор вполне прав (во всяком случае, в данной ситуации он значительно правее оппонентов). Но, я согласен, при многих отклонениях отказывает абстрактное мышление, и, если нельзя найти буквальное соответствие, начинают возникать сложности. Особенно много таких личностей по какой-то причине именно среди любителей раста, совпадение, наверное.
> Только сабж не работает без стороннего рантайма, написанного с использованием си (в
> значительной мере), так что, технически, тот комментатор вполне прав (во всяком
> случае, в данной ситуации он значительно правее оппонентов).Бла-бла-бла...
А если коротко то ты натягиваешь сову на глобус.
Ядро линукса тоже не соберется без gcc, который использует с++, тк сишка оказалась тем еще калом.> Но, я согласен, при многих отклонениях отказывает абстрактное мышление, и, если нельзя найти буквальное соответствие, начинают возникать сложности.
О, спасибо за описание, почему используют каст к void *
> Особенно много таких личностей по какой-то причине именно среди любителей раста, совпадение, наверное.
А вот и пример слабоумия!
Утверждения не подкрепленные никакими пруфами.
Спасибо, дорогой Аноним, еще раз.
Вот и говорю, получается, я прав был. Аналогии вообще за уши притянуты. Компилятор перевели на кресты не так давно (не обладаю сведениями относительно глубины внедрения, но деградация времени сборки имеет место быть) и ключевой компонент рантайма, это, очевидно, несколько иное (ядро компилируют любым совместимым компилятором, ЯП сборочного тулчейна не имеет никакого отношения к программам). По этой же причине расту не предъявляют за LLVM.
А куда потерялись зависимости? Ведь никакой Bend ничего не делает.>это правда, потому что там про Bend, а не про HVM2.
Я так понимаю "болгенос" написана полностью денисом? Любую репу в которой я создам обёртку она будет написана на том на чём написана обёртка? Удобно быть фанатиками.
Для тех кому интересно я писал выше. Этот Bend это 8к строк лапши, которые ничего не делают. Там есть парсер язык уровня тех, что пишут студенты на лабах. Ну и какая-то обвязка. Да и даже те нелепых 8к строк там это индусская лапша. Даже по меркам си с классами там лапша. Потому будь там это написано на них это было бы ~3к строк лапши как типичная лаба.
Зато при падении головы на клавиатуру не за сегфолтится как гцц, который то и дело отдаёт права рута при компиляции. В бинарь дыру вполне впаять сможет кстати, от этого растафари ещё пока не уберёг
Это твои личные фантазии, которые к реальности не имеют никакого отношения.
Кстати, кому интересно дам новую историю на тему как глушить этих раст-фанатиков. Дело в том, чтот язык настолько нелеп, что на нём реализовать ничего нельзя. Поэтому там существует то, что они называются процедурными макросами. Очевидно что ни к каким макросам это отношения не имеет.Работает это следующим образом. Когда вы компилируете код и где-то используется этот "макрос" это убожество выполняет исходный код без всякой изоляции. Таким образом сборка на этом "безопасном" языке не является безопасной. Я даже больше скажу, что когда вы открываете код в редакторе он запускает код без всякой изоляции.
Таким образом если вы случайно в редакторе откроете код, либо попытаетесь его собрать - ваша система уже может быть заражена.
Кому интересен механизм работы этого убожества более подробно, то он следующий. Тот лефтпад на который ссылается "макрос" собирается как бинарник и далее компилятор его запускает передавая туда строку и заменяя её результатом выполнения. Таким образом тут два вектора атаки. Первый этот сам бинарный блоб, который запускается без изоляции. Второе это та строка, что вставляется в код.
После этого говорить о том, что гцц имеет какую-то дыру максимально нелепо. Весь код выполняемый в цпп во время компиляции полностью изолирован и не имеет доступа к чему-либо. Но т.к. эти немощи ничего из этого не осилили то вместо языков возможностей там просто бинарный блоб со строками. Что является самым позорным, что я когда-либо видел. И с этим убожеством эти фанатики бегают и рассказывают о том какое оно "мощное" и "инновационное".
Хм, а с чего ты взял что твой пук кому-то интересен?
То что ты просто недалекий неосилятор уже понятно, тк у гугла и амазона все получается, а у тебя "на нём реализовать ничего нельзя".
> для повышения удобства разработки, свойственными таким языкам, как PythonАаа, ну, всё понятно. Производителям GPU нужен такой язык, чтобы прикладной софт на нём требовал всё бОльших и бОльших мощностей для одних и тех же задач.
Ну дык, а ты думаешь, откуда этот маркетинг "выше, быстрее, сильнее"? На деле же урезаннее, тормознее, дороже. Да и факт запланированного устаревания уже ни одна компания не отрицает.
https://ru.wikipedia.org/wiki/Планируемое_устаревание
Зависит от того, что дешевле: железо или программисты.
Мы уже видим к чему привела экономия на дешёвых погромистах. Нет, спасибо, я лучше заплачу за качественный и оптимизированный продукт.
А к чему она привела?
Погромисты, дешевый или дорогие, овнячили все время существования пограммирования.
Как например в ХОрге исправили уязвимости присутствуют с 1988 года
opennet.ru/openforum/vsluhforumID3/131746.htmlИли например зажал кнопку backspace - зашел без пароля
opennet.ru/opennews/art.shtml?num=43536
добавили в 2009, нашли в 2015И пока инструменты не будут бить пограммеров по корявкам, это не прекратится.
Есть еще надежда на ликвидацию "AS IS" и инициативу наказывать продаванов за плохой софт, но тут боюсь копро-тивление будет максимальным, что от проприетарщины, что от попенсорс бракоделов.
Ну конечно это же такая хорошая причина верит что руст тебя от этого всего спасет. (Руст не спасёт от этого)
Ты просто с дорогими программистами не работал, те ещё хуже
Не заплатишь, потому что такой продукт не создадут.
Большинству современных программистов цена - пятачок за пучок. Сидеть бы им на паперти и ныть "Господа, я не ел шесть дней. Подайте что-нибудь бывшему слушателю двухнедельных курсов программирования на лёгком в освоении и удобном в написании языке", если бы не творческий симбиоз инвесторов, рыщущих в поисках перспективного стартапа, и стартаперов, готовых с радостью освоить инвесторские деньги.
Если бы программисты были дешёвыми, то все бы не стремились ими стать.
Синтаксис Nim
Чистый Питон по виду. Не знаю кто такой Nim (и не хочу знать).
nim - Это обертка для си
> Не знаю кто такой Nim (и не хочу знать).Хорошо, что публика, подобная тебе, проходит мимо языка, входящего в первую пятёрку ( github.com/attractivechaos/plb2 ) / десятку ( github.com/jinyus/related_post_gen ) языков, генерируюющих наиболее быстрые бинарники.
Nim это просто TypeScript для C++
Ничего, что Nim компилируется в код C, C++, JavaScript, Objective-C?
Ну допустим не компилируется, а транслируется. А так да ничего страшного.
Допустим, ты неуч.
ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
А так – ничего страшного
> Компиляция (программирование) — трансляция программы,
> составленной на исходном языке высокого уровня,
> в эквивалентную программу на низкоуровневом языке,
> близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера),
> выполняемая компилятором.[1]А теперь открываем стандарт ISO/IEC 9899 и читаем там определения «translator» и «phases of translation». Заодно можно подстроку «compil» поискать.
> открываем стандарт ISO/IEC 9899 и читаем там определенияТак ты ещё и шут, надеющийся, что публика не читает первоисточники. Надеялся поразить меня 534-страничным документом, в котором слово с корнем «compil» встречается аж семь раз, причём один раз в глоccарии, и нет определения самого термина.
Зачт. Свободен.
Публика как раз читает, в отличие от «эксперта», резко спрятавшегося за публику, поскольку не смог найти указанные пункты.
> Распараллеливание производится автоматически, например, при вычислении выражения "((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.Эээ, звучит как полная фигня, которая в 99% случаев будет генерировать отвратительный код (с точки зрения выполнения на GPU). Уже несколько десятилетий бьются с этими волшебными авто-параллелизующими языками, которые плохо работают и которые никто не хочет изучать. Ну будет ещё один 100500-й мёртворождённый язык.
Современные "программисты" вместо траты времени на изучения подобной маргинальщины будут писать запрос в ChatGPT "ну-ка сгенери-ка мне Radix-сортировку на CUDA".
Программирование примерно таким и будет. И уже очень скоро. На входе план в виде таблиц, тасков и т.д., на выходе машинный код. А пока что ждём компилятор основанный на ИИ — это и положит начало конца ручного кодинга.
а зачем ждать, берись и делай
В октябре 1981 года Японское министерство международной торгов-
ли и промышленности объявило о создании исследовательской организа-
ции — Института по разработке методов создания компьютеров нового
поколения (Institute for New Generation Computer Technology Research
Center). Целью данного проекта было создание систем обработки инфор-
мации, базирующихся на знаниях. Предполагалось, что эти системы бу-
дут обеспечивать простоту управления за счет возможности общения с
пользователями при помощи естественного языка. Эти системы должны
были самообучаться, использовать накапливаемые в памяти знания для
решения различного рода задач, предоставлять пользователям эксперт-
ные консультации, причем от пользователя не требовалось быть специа-
листом в информатике. Предполагалось, что человек сможет использо-
вать ЭВМ пятого поколения так же легко, как любые бытовые электро-
приборы типа телевизора, магнитофона и пылесоса. Вскоре вслед за
японским стартовали американский и европейский проекты.Появление таких систем могло бы изменить технологии за счет ис-
пользования баз знаний и экспертных систем. Основная суть качествен-
ного перехода к пятому поколению ЭВМ заключалась в переходе от обра-
ботки данных к обработке знаний. Японцы надеялись, что им удастся
не подстраивать мышление человека под принципы функционирования
компьютеров, а приблизить работу компьютера к тому, как мыслит чело-
век, отойдя при этом архитектуры компьютеров фон Неймана. В 1991 го-
ду предполагалось создать первый прототип компьютеров пятого поколе-
ния.
А потом оказалось что японский язык слишком сложный.
Потом ЧатГПТ, работая удалённо, удалил ветку в удалённом репозитории.
Сколько этих языков параллельного программирования уже?Лично мне вспомнился taichi:
https://github.com/taichi-dev/taichiЧем они вообще различаются?
Ах да, этот написан на Расте.
у нас было n стандартов.jpg
Ещё бы ПК с материнской картой поддерживающей видеокарту вместо процессора, как бы кому-то смешно это не казалось. На cnews пишут что винда уходит на ARM, а я напомню что язык программирования Си был изначально близок к командам процессора х86. Множество лет разработки конечно ничем не заменить, тем не менее на сегодняшний день у С не самое большое сообщество. И замечу что даже OpenACC/OpenCL как-то это всё не спасает. A CUDA сильно замудреная.
> а я напомню что язык программирования Си был изначально
> близок к командам процессора х86.Хватит распространять эту ересь. Если к чему Си и близок, так к PDP11. i8086 появился позже и там были команды enter/leave для работы со вложенными кадрами стека - это делалось для Pascal, но на практике мало использовалось.
Ну даже если так - Си в данном случае это не красит. Как ни крути, но насколько я помню различные источники (в том числе и свои) тесты показывают что это самый производительный язык для 8086.
А если не «помнить», а попробовать различные трансляторы Си, то окажется что код после современного GCC почему-то в разы обгоняет древний Borland. Может быть тогда появятся какие-то рациональные мысли, а не о покраске процессором языка программирования.
Я вообще о том что такие языки программирования имеют право на существование и смысл. А архитектура тут очень даже причём - есть железо, значит у него есть архитектура того как оно работает и набор команд. Если есть такой набор команд, значит и существование языка программирования оптимизированный под это железо вполне имеет смысл. Тем не менее некоторые языки программирования стандартизированы, что означает возможность иметь независимый компилятор.
Право это вопрос юриспруденции и выходит за рамки данного форума. Тем не менее, я уверен, что выносить суждения об архитектуре процессоров в праве тот, кто хоть немного с ней знаком. Остальные в праве задавать вопросы.
чем спорить о потрохах может попробуете как оно работает? сравните производительность, удобство и прочие мелочи с cuda и потом уже выводы делайте. набрасывать на вентилятор легко и беззаботно - с душком развлечение.
А сам чего образование не позволяет? Или ты ждёшь когда единственно верный эксперт вынесет своё ценное мнение? Так это ещё хуже чем фанатеть от раста.
> А сам чего образование не позволяет? Или ты ждёшь когда единственно верный
> эксперт вынесет своё ценное мнение? Так это ещё хуже чем фанатеть
> от раста.я вообще графический дизайнер и весьма далек от 3д и програмирования в принципе) не образовании дело а в сере работы)) люди оказывается не только кодами занимаются неожиданно да?))
Ты врешь, я тебе не верю.
Не обязательно всё пробовать на вкус.
>"((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.Мне одному кажется, что это только замедлит выполнение?
Если исполнять именно это на разных ядрах ЦП - безусловно замедлит, в пределе на время длительности кванта планировщика. Если вычисления существенно сложнее, может быть и ускорятся.
Пожалуйста, ознакомьтесь с функциональщиной, а потом рассказывайте. Там свои особенности.
Что бы говорить об особенностях исполнения кода процессором, необходимо почитать документацию по такому процессору. Например, Intel® 64 and IA-32 Architectures Optimization Reference Manual. Там можно произвести удивительное открытие: три сложения это три машинных команды, две их которых (в скобочках) исполнятся одновременно, даже если расположены в неудачном порядке. Ну либо хотя бы сгенерировать машинный код свой любимой «функциональщиной» и показать здесь - кто-то да объяснит.
Ну вот я и говорю что вы не в ту степь пошли. Впрочем уточню конкретно - с Haskell знакомы? Если нет, то ознакомьтесь пожалуйста.
А чё вдруг конкретно Haskell? OCaml, исполнитель для байткода которого лежит у меня на гитхапе, перестал быть «функциональщиной»? Понимаю, что про Рефал эксперты и не слышали. Так что пока я воспользуюсь ленивостью Haskell и не буду с ним «знакомиться». ;)
Ну и какой в таком случае смысл выпендриваться? Может издержки на синхронизацию и передачу данных видеокарте в данном примере будут превышать время вычисления. Но более сложные чистые функции, да ещё с отложенными вычислениями более вероятно будут вычислены на видеокарте быстрее за счёт набора инструкций, отличного от процессора и за счёт реального параллельного вычисления с помощью множества потоков, как правило большего количества чем у процессора.
Я не понимаю этого унижения какого-либо языка программирования просто потому что кто-то его не знает, потому что оно новое, вот и ненавидит. Такое впечатление что таким людям просто приплачивают за рекламу. Впрочем работу на нужных языках вполне можно считать оплатой рекламы. Чтоб вы разработки своей страны так отстаивали как западные.
> Ну и какой в таком случае смысл выпендриваться? Может издержки на синхронизацию
> и передачу данных видеокарте в данном примереОчевидно, что выпендрёж начался из-за неумения читать мой ответ.
«Если исполнять именно это на разных ядрах ЦП - безусловно замедлит»
Ну я понял - просто травма детства, нужда показать себя, нужда в доказательстве своего ума. Раз уж на то пошло и мы именно об этом говорим, то в таком случае это будет вычислено на этапе компиляции.
Но опять таки повторю - там всё весьма понятно написано. Можно конечно автору предложить лучший вариант, но не в виде хамства.
> просто травма детства, нужда показать себя, нужда в
> доказательстве своего ума.Поэтому и возникло непреодолимое желание упорно спорить с моим ответом?
> Раз уж на то пошло и мы именно
> об этом говорим, то в таком случае это будет вычислено на
> этапе компиляции.Не понятно слово «исполнять» в формулировке «если исполнять именно это»? Очевидно, что обсуждать оптимизацию транслятором нет смысла - составитель примера про не знает, пример упрощён и эти значения откуда-то взялись при исполнении.
> Но опять таки повторю - там всё весьма понятно написано. Можно конечно
> автору предложить лучший вариант, но не в виде хамства.Где «там»?
Да и что вам не понятно в концепциях языка в таком случае? По моему статья весьма доступно написана.
> Да и что вам не понятно в концепциях языка в таком случае?
> По моему статья весьма доступно написана.Конечно, доступно https://ru.wikipedia.org/wiki/Тест_Тьюринга
Я очень скептически отношусь к тому что тут может быть как-то причастен тест Тьюринга, но всё-же уточню - при чем тут тест Тьюринга?
> Я очень скептически отношусь к тому что тут может быть как-то причастен
> тест Тьюринга, но всё-же уточню - при чем тут тест Тьюринга?Нуб пытается его пройти - но что-то не получается.
Нуб написал в ответ на другую экспертизу эксперта «прекратите распространять ересь», вот и началось.
А при чём тут все эти понты с итогом «вычислено на этапе компиляции», когда в новости русским языком написано «_будут_ _выполнены_ _параллельно_»?
Как-то не похож синтаксис на современный язык. Избыточные двоеточия в конце строк. Многократные return. Небось, нормальный функциональный стиль использовать нельзя....def sort(d, s, tree):
switch d:
case 0:
return tree
case _:
(x,y) = tree
lft = sort(d-1, 0, x)
rgt = sort(d-1, 1, y)
return rots(d, s, lft, rgt)
Есть версия, что хотели упростить парсер.
Они разрабатывают фортран?
Проприетарный компиль Фортрана распределяется по процессорам в кластере, а не ядрам видеокарты.
Если кто не в курсе, для Debian доступен Nvidia 555. Парадоксальный факт - Wayland не глючит. Простите за оффтоп, но новости нет, а эта наиболее подходящая из последних.
> Если кто не в курсе, для Debian доступен Nvidia 555. Парадоксальный факт
> - Wayland не глючит. Простите за оффтоп, но новости нет, а
> эта наиболее подходящая из последних.Анон, ты чего? Там вон сбоку есть ссыль - "добавить новость". Жми - и колоти туда! Это даже анонимус может. Зафиг это в коменты то спамить? Вон то - предложит новость автору сайта не через ж@пу, если нормально наколотишь - довольно быстро появится, возможно прямо в том виде.
> Парадоксальный факт - Wayland не глючитОго. Теперь-то, наконец-то, вейланд готов.
P.S. Но это не точно.
Отличный проект, давно нужно было что-то более высокоуровневое.
Тем кто говорит что это обертка, вы на CUDA писали? Там же жесткий C, передача указателей даже для простых вещей с распараллеливанием.