Создан новый язык программирования Armada для работы с параллельными вычислениями

12.08.2020      13996

Группа исследователей под руководством доцента кафедры электротехники, вычислительной техники и компьютерных наук Университета Карнеги-Меллона, Брайана Парно опубликовала новый язык программирования Armada. Язык предназначен для формальной проверки высокопроизводительных параллельных программ.

Armada

Безопасно писать высокопроизводительные параллельные программы очень сложно. «Когда у вас одновременно происходит несколько событий, вам нужен какой-то способ управления ими, чтобы убедиться, что эти процессы не мешали друг другу», – говорит Брайан Парно.

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

Язык и инструмент под названием Armada были представлены в этом году на конференции по разработке и реализации языков программирования и получили награду Distinguished Paper.

Проверка для программиста

Ранее для проверки текста в текстовом редакторе на орфографические ошибки, люди специально сообщали программе о необходимости начать эту процедуру, кликнув на функции «Проверка орфографии». Проверка занимала несколько секунд, после чего пользователи могли исправить свои опечатки. 

В настоящее время проверка орфографии выполняется автоматически. Постоянная проверка орфографии является примером «параллельного» программирования, в котором исполняемый файл выполняется одновременно с другими программами и вычислениями. 

Большинство программ сегодня представляют собой параллельные, – начиная с операционных систем и заканчивая множеством приложений: от обработки текста до просмотра веб-страниц.

«Armada разработана чрезвычайно гибкой, чтобы код было удобно писать каждому разработчику, и он работал как можно быстрее», – говорит Парно. «Но при этом программисты будут твердо уверены в том, что код будет правильно исполняться и ничего не испортит».

Возможности и перспективы

Благодаря C-подобному языку и семантике на основе конечного автомата с малым шагом, Armada дает разработчикам возможность произвольной компоновки памяти и примитивов синхронизации.

Чтобы «облегчить жизнь» разработчиков, Armada использует автоматизацию на базе SMT (satisfiability modulo theories) – задача разрешимости для логических формул с учётом лежащих в их основе теорий. А также библиотеку мощных методов рассуждений, включая гарантию на соответствие, обеспечение TSO (Total Store Order), сокращение и анализ псевдонимов. TSO – полностью упорядоченный доступ, когда процессор гарантирует, что операции доступа к памяти будут обращаться к основному ОЗУ в точности в том порядке, в котором закодированы.

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

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


Автор:
Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 32 13.08.20 11:06 Сейчас в теме
Ну хоть бы пример кода что-ли привели бы?
MegasXXX; +1 Ответить
2. Perfolenta 203 13.08.20 14:23 Сейчас в теме
(1) вот тут кое что есть http://www.andrew.cmu.edu/user/bparno/papers/armada.pdf
не самый простой язык получился, но это только на беглый взгляд...
а вообще, скоро языков программирования будет больше, чем написанных на них программ... :)
я тут на днях в рамках тестирования Перфоленты написал на ней интерпретатор языка похожего на Scheme, но с полным набором встроенных функций Перфоленты и с многими аналогичными операторами...
назвал его Перфо :)... но самое смешное, что мне он даже понравился, чуть-чуть допилить и на нем даже можно что-то полезное делать, например умные конфигурационные файлы для программ на писанных на Перфоленте...
3. Darklight 32 13.08.20 18:02 Сейчас в теме
(2)Спасибо. С виду мне он не показался сложным - кстати, напомнил 1С Исполнитель - та же семантика типов справа через двоеточие, те же объявления переменных "var" и те же ключевые слова "method" для подпрограмм - на самом деле очень многое (кроме фигурных скобок для блоков кода и логических операторов) передрано из Oxygene (он же Pascal for .NET и Delphi Prism), даже оператор присвоения ":=" (и разделения программы на области Specification и Implementation).
Но я что-то пока не увидел там каких-то особых преимуществ для параллельного программирования. Всё это есть в том же Oxygene , С++, C#, Java - наверное что-то я пока упускаю из вида...
Код не могу назвать легко читаемым - по сложности он тяготеет к стилю программирования конца XX века (может просто из-за отсутствия подсветки синтаксиса по началу так тяжело его воспринимать даже мне - когда вообщем-то синтаксически он в больше степени удовлетворяет моим текущим предпотчениям, хотя нет - не текущим - уже прошлым - ибо такой синтаксис я уже мысленно перерос - теперь мой мозг оперирует "более простыми" синтаксическими конструкциями, но с повышенным уровнем абстракции программирования). Хотя синтаксис зыка Armada умещается чуть более чем в четверть страницы ;-)

Вот тут вставил код Armada из указанного документа-спецификации
SKravchenko; +1 Ответить
4. Perfolenta 203 13.08.20 19:13 Сейчас в теме
(3)
С виду мне он не показался сложным - кстати, напомнил 1С Исполнитель

Пожалуй, вы правы, я сначала не присмотрелся...
Скорее всего, вся соль в написании спецификаций, в которых надо писать разные правила вроде этого:
somehow modifies s ensures valid_soln(s);
Компилятор по этим спецификациям сделает проверки... а в остальном, кажется, надо самому использовать в коде примитивы синхронизации вроде mutex и операторы lock/unlock...
Я в Перфоленте сделал оператор Блокировка/КонецБлокировки и пока его думаю хватит для большинства реальных задач... остальные примитивы синхронизации буду реализовывать, если кто-то попросит или если сам увижу необходимость...
5. Darklight 32 14.08.20 09:31 Сейчас в теме
(4)Пока из специкифкаций кода языка Armada совсем не ясно - в чём их преимущество и что сделает компилятор. Читать спецификацию языка на английском мне влом - чувствую, всё-равно не разберусь в деталях скрытой логики - но что я вижу по коду мне не даёт никаких намёков на то, что в языке что-то есть особенное - полезное для параллельного программирования - чтобы его изучать и использовать - всё очень низкоуровнево.

Если вся суть в отдельных спецификациях - то и смысла делать отдельный язык не было никакого - достаточно было бы вы включить эти спецификации просто в доп инфо в любой(ым) существующим языкам (причём скорее - только в низкоуровневые типа C++ т.к. в высокоуровневых задачи параллельного программирования часто проще решаются через более высокий слой абстракции - и там эти спецификации не особо то и нужны) в виде расширения IDE и компилятора - и проверять код имеющихся языков на соответствие спецификации схемы параллельного программирования.

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

Если говорить о высокоуровневых методах синхронизации: я бы предложил асинхронные потоки - как источник ресурсов, и для обмена сообщениями; собственно обмен сообщениями между параллельными процессами; и асинхронные подписки на события, а так же асинхронных контролёров ресурсов (алёрты) - которые могли бы сами безопасно следить за величиной ресурса и формировать асинхронные события при выходе ресурса за лимит (при желании ещё и блокировать доступ к ресурсу - пока блокировка не будет снята отдельной командой).

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

Но в целом - я считаю, задача распараллеливания кода в высокоуровневых языках должна быть больше на стороне компилятора, чем программиста - компилятор должен сам решать - что и где он может распараллелить - а сам код должен выстраивать семантически таким образом - чтобы у компилятора было больше свободы в выборе реализации задач, поставленных программистом. А программист должен лишь указывать на нюансы взаимосвязей алгоритмов - когда нужно уточнить особенности синхронизации или последовательности выполнения операций
MegasXXX; +1 Ответить
6. Perfolenta 203 14.08.20 14:52 Сейчас в теме
(5)
Замечу, что для синхронизации одних блокировок не достаточно - да и, зачастую, они очень вредны

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

Круто бы так сделать, но мои рассуждения на эту тему пока не привели к чему-нибудь, что бы я мог бы внедрить в компилятор Перфоленты... была мысль сделать оператор Блок/КонецБлока (или Окружение/КонецОкружения), что бы программист мог отмечать в процедуре куски кода, которые не зависят от других кусков кода и которые можно запустить параллельно без вопросов, но что-то я пока не сложил это у себя в голове... надо придумать способы контроля, действительно ли код внутри блока не зависит от других...
7. Darklight 32 14.08.20 15:47 Сейчас в теме
(6)
Есть конечно случаи, когда блокировок не достаточно, но мне в реальной практике их всегда хватало...

Конечно же - можно выстраивать наверное 98% всех алгоритмов на блокировках - только когда они часто ставятся, а число параллельно выполняемых операций очень велико, как и велико число физических потоков - на которых они выполняются - то блокировки сразу становятся очень узким местом. Просто это очень тяжело почувствовать на простых примерах и на небольшом числе потоков. Просто дело уже ближайшего будущего сервера с сотнями ядер на борту (а во второй половине века уже с тысячами - на которые одновременно будут в секунду поступать тысячи и десятки тысяч небольших (и больших) задач) - затраты на блокировку ресурсов станут очень велики. А программисты ещё и склонны будут неэффективно их блокировать - чрезмерно задерживая работу с ними. Это плохое решение.

А если ещё рассмотреть гетерогенные вычленения (node.js и hadoop доступны уже сейчас) - то там вообще блокировки очень нелегко ставить - это априори самое узкое место в алгоритме будет - тормозящее всё и вся!

Та же проблема в 1С и СУБД - тут слишком много чрезмерных блокировок (ну если о них заботиться при использовании управляемых блокировок; а без них и подавно)! Зачастую - алгоритмы можно было бы встроить вообще почти без длительных блокировок (даже списание по партиям) - если бы в системе были специальные асинхронные неблокирующие операции работы с ресурсами! На самом деле 1С как раз работала в этом направлении - так появились разделители (сплиттеры) и так же появилась методика контроля остатков в конце транзакции (да даже учет через расширенную аналитику - это тоже из этой же оперы) - но это всё кустарщина - но она уперается в возможности СУБД.

Блокировки обычно ставятся всего на несколько команд, которые модифицируют поле или свойство, поэтому вреда в них ни какого нет...

А вы сравните скорость работы блокировок и атомарных функций в .NET Framework - правда для тестов нужно бы взять машину с как можно большим числом ядер - какой-нибудь сервер хотя бы с 40 ядрами и стартонуть на нём сотню-другую потоков (тасков)

В стандартной библиотеке Перфоленты у меня сделаны потокобезопасные коллекции

Кустарно на блокировках (как это предлагалось делать до .NET Framework 4) - или просто тонкие обёртки над потокобезопасными коллекциями платформы ".NET Framework"?

Кстати, ещё идея - сделать потокобезопасные переменные/свойства (ну например через атрибут "SafeThreadAttribute") - чтобы все операции над ними сразу превращались в потокобезопасные (атомарные или на крайняк с блокировкой - управлять этим должен компилятор)



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

Круто бы так сделать

Не спорю - это задача не простая - тут надо изначально под это как-то по особому язык программирования проектировать. Смысл в том - чтобы компилятору было относительно легко понять взаимосвязи между инструкциями - чтобы он их мог раскидать по потокам. Или применил известные методики распараллеливания обработки коллекций значений. Программист только должен помечать зависимости там , где ему важна заданная последовательность вычисления. Тут сама язык должен быть очень высокодекларативным - где акценты расставлены не на последовательных инструкциях, а на реальных задачах - которые нужно выполнить - без детализации способа их выполнения!

Ещё одной техникой может быть избыточная параллельность: когда в алгоритме есть много ветвлений, где вычисление условия ветвлений затратно - то можно параллельно запустить вычисление сразу нескольких ветвей и их условий - а потом уже слить вместе - по фактически вычисленному условию. Техника мощная - но чреватая: во-первых излишней нагрузкой, во-вторых - не должно быть побочных эффектов вычисления ложных ветвей, в третьих - подходит только для случая достаточно детерменированных алгоритмов (внутри ветвей); ну и вообще - это больше подходит интерпретаторам - где есть возможность проводить статистический анализ в runtime - хотя в будущем может ОС будут собирать статистику выполнения обычных программ - и оптимизировать их код при следующих запусках.

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

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

Но всё же - если нужна высокая параллельность - инструкции изначально должны быть очень абстрактные - т.е. вместо инструкции, скажем "цикла" - должна быть инструкция - вызова специальной функции - которой передана коллекция (диапазон) обхода, функция (или целый набор функций с условиями применения) обхода (без сайд-эффектов), и отдельно указаны зависимости и алгоритмы с сайд-эффектами + доп опции. И уже тогда вызов такой специальной функции (ещё на стадии компиляции) должен будет проанализировать что ей дали и автосгенерировать алгоритм параллельной обработки - например она сначала запустить асинхронные операции фильтрации диапазона по условиям - а на выходе уже в отдельных потока параллельно начнёт обрабатывать данные подходящими функциями (уже без ветвления), отдельно обрабатывая зависимости и сайд-эффекты специальными защищёнными операциями)
8. Perfolenta 203 14.08.20 16:55 Сейчас в теме
(7)
то блокировки сразу становятся очень узким местом. Просто это очень тяжело почувствовать на простых примерах и на небольшом числе потоков.

Да, дело именно в этом, в современных массовых процессорах обычно не более 4-х ядер... даже если в коде установлено много блокировок, вероятность того, что хотя бы одна из них сработает очень маленькая... в моих тестах вероятность обычно была меньше, чем 1 к 1000000... имеются ввиду тесты на ошибку в многопоточном коде, без использования синхронизации... именно по этому я сделал вывод, что простой блокировки вполне достаточно, производительность не упадет в большинстве обычных программ... блокировки срабатывают крайне редко... однако, в программах где производительность критична, само создание Мьютекса уже может критичным... но это все же редкий класс программ...
Кустарно на блокировках (как это предлагалось делать до .NET Framework 4) - или просто тонкие обёртки над потокобезопасными коллекциями платформы ".NET Framework"?

да, как тонкие обертки...
если нужна высокая параллельность - инструкции изначально должны быть очень абстрактные

то, что вы предлагаете разумно, но я реализацию таких алгоритмов просто не потяну... это академическая задача, надо слишком много времени... а у меня это слишком больное место...
9. ivanov_alex 88 19.08.20 11:54 Сейчас в теме
При трудоустройстве будут сразу требовать опыт работы 5 лет, как у всех?
Оставьте свое сообщение

См. также

В программу подготовки спортивных программистов вошли бег и скорость печати

Новость ИТ-Новость

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    595    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

Новость ИТ-Новость

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    388    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    584    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

Новость Мобильные приложения ИТ-Новость

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    683    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

Новость GitHub ИТ-Новость

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    466    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

Новость ИТ-компания ИТ-Новость

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    566    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    676    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило проект постановления, которое утверждает требования к организации, претендующей на статус оператора реестра провайдеров хостинга.

25.10.2023    338    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

Новость Минцифры ИТ-Новость

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    595    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

Новость Импортозамещение ИТ-Новость

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    779    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

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

18.10.2023    434    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    644    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1324    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

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

02.10.2023    536    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

Новость Импортозамещение ИТ-Новость Программист

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    739    VKuser24342747    2       

1

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость ИТ-Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    396    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

Новость ИТ-Новость Языки программирования

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1230    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

Новость ИТ-Новость Языки программирования

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    631    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

Новость ИТ-Новость

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

24.08.2023    1110    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

Новость Google Безопасность ИТ-Новость

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    449    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры ИТ-Новость Реестр ПО

Минцифры внесло в реестр отечественного ПО программно-аппаратный комплекс «Скала-Р», предназначенный для обработки больших данных. Это первый комплекс с таким функционалом, включенный в перечень.

22.08.2023    442    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

Новость GitHub Искусственный интеллект

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1122    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    624    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

Новость Искусственный интеллект ИТ-Новость

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    951    VKuser24342747    5       

3

Минцифры проведет эксперимент по цифровизации «жизненного цикла» госслужащего

Новость Минцифры ИТ-Новость

Минцифры подготовило постановление о проведении эксперимента по внедрению ИТ в управление «жизненным циклом» госслужащего. Ведомство намерено автоматизировать все этапы работы сотрудников госструктур.

04.08.2023    533    VKuser24342747    0       

2