#параллелизм — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #параллелизм, aggregated by home.social.
-
[Перевод] Зачем нужна специализация варпов. Разбор сложных случаев
Апдейт: идеи, изложенные в этой статье, позволили сформулировать оптимальные стратегии warp-специализации, описанные в научной публикации, которую можно посмотреть здесь . Недавно я глубоко задумался о специализации варпов в контексте высокопроизводительных ядер для современных графических процессоров (GPU) на тензорных ядрах. Примеры таких процессоров — H100 и B200 от NVIDIA. Я стал полнее понимать, чего можно добиться при помощи специализации варпов, а также задался интересным вопросом: а нужна ли нам вообще специализация варпов (и вся та сложность, которую она с собой влечёт)? В итоге я пришёл к выводу, что, да, нуждаемся, но она не столь обязательна, как может показаться. В этом посте обсудим, в каких случаях без специализации варпов действительно не обойтись, а также я опишу, на каком пространстве компромиссов она зиждется, и какие границы этого пространства я вижу. Притом, что я обрисую некоторый контекст, касающийся графических процессоров, необходимый для обсуждения тем, которые мы взялись здесь рассмотреть, эту статью нельзя считать туториалом. Предполагается, что читатель имеет некоторый опыт работы с GPU и имеет опыт параллельного программирования.
https://habr.com/ru/articles/1020950/
#CUDA #nvidia #программирование #компиляторы #параллелизм #gpu #тензорный_процессор
-
Конференция Яндекс-разработчиков по JVM-языкам, бекендеры собрались обсудить будущее Java-подобных языков
28 марта состоялась, с одной стороны, довольно камерная встреча небольшого круга специалистов: Backend-разработчиков Java. Разумеется, на встрече были и фронтэнд-специалисты, и фулстек-программисты, но когда залу задавали вопросы, кто есть кто – максимальное и максимально доминирующее количество рук было именно от специалистов бекенда. Как это было. Я пришел на час позже, не в 12 обеда, но в час дня. Сразу попал в зал на лекцию, где рассказывались не суперсложные вопросы, но затрагивались вопросы времени в Java, рассинхронизации серверов, специфики подсчета времени в таком старом языке, как Java, с учетом максимальной экономии памяти и того, что было до UTC: функции вне библиотеки time для подсчета минут и секунд при анализе времени постов, создания того или иного контента, проведения операций в целом.
https://habr.com/ru/articles/1019622/
#яндекс #jvm #java #time #асинхронное_программирование #параллелизм
-
Конференция Яндекс-разработчиков по JVM-языкам, бекендеры собрались обсудить будущее Java-подобных языков
28 марта состоялась, с одной стороны, довольно камерная встреча небольшого круга специалистов: Backend-разработчиков Java. Разумеется, на встрече были и фронтэнд-специалисты, и фулстек-программисты, но когда залу задавали вопросы, кто есть кто – максимальное и максимально доминирующее количество рук было именно от специалистов бекенда. Как это было. Я пришел на час позже, не в 12 обеда, но в час дня. Сразу попал в зал на лекцию, где рассказывались не суперсложные вопросы, но затрагивались вопросы времени в Java, рассинхронизации серверов, специфики подсчета времени в таком старом языке, как Java, с учетом максимальной экономии памяти и того, что было до UTC: функции вне библиотеки time для подсчета минут и секунд при анализе времени постов, создания того или иного контента, проведения операций в целом.
https://habr.com/ru/articles/1019622/
#яндекс #jvm #java #time #асинхронное_программирование #параллелизм
-
Конференция Яндекс-разработчиков по JVM-языкам, бекендеры собрались обсудить будущее Java-подобных языков
28 марта состоялась, с одной стороны, довольно камерная встреча небольшого круга специалистов: Backend-разработчиков Java. Разумеется, на встрече были и фронтэнд-специалисты, и фулстек-программисты, но когда залу задавали вопросы, кто есть кто – максимальное и максимально доминирующее количество рук было именно от специалистов бекенда. Как это было. Я пришел на час позже, не в 12 обеда, но в час дня. Сразу попал в зал на лекцию, где рассказывались не суперсложные вопросы, но затрагивались вопросы времени в Java, рассинхронизации серверов, специфики подсчета времени в таком старом языке, как Java, с учетом максимальной экономии памяти и того, что было до UTC: функции вне библиотеки time для подсчета минут и секунд при анализе времени постов, создания того или иного контента, проведения операций в целом.
https://habr.com/ru/articles/1019622/
#яндекс #jvm #java #time #асинхронное_программирование #параллелизм
-
Конференция Яндекс-разработчиков по JVM-языкам, бекендеры собрались обсудить будущее Java-подобных языков
28 марта состоялась, с одной стороны, довольно камерная встреча небольшого круга специалистов: Backend-разработчиков Java. Разумеется, на встрече были и фронтэнд-специалисты, и фулстек-программисты, но когда залу задавали вопросы, кто есть кто – максимальное и максимально доминирующее количество рук было именно от специалистов бекенда. Как это было. Я пришел на час позже, не в 12 обеда, но в час дня. Сразу попал в зал на лекцию, где рассказывались не суперсложные вопросы, но затрагивались вопросы времени в Java, рассинхронизации серверов, специфики подсчета времени в таком старом языке, как Java, с учетом максимальной экономии памяти и того, что было до UTC: функции вне библиотеки time для подсчета минут и секунд при анализе времени постов, создания того или иного контента, проведения операций в целом.
https://habr.com/ru/articles/1019622/
#яндекс #jvm #java #time #асинхронное_программирование #параллелизм
-
Параллелизм с общим состоянием в Rust
Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
https://habr.com/ru/articles/1018592/
#backend #backendпрограммирование #rust #параллелизм #параллельные_вычисления #параллельное_программирование
-
Параллелизм с общим состоянием в Rust
Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
https://habr.com/ru/articles/1018592/
#backend #backendпрограммирование #rust #параллелизм #параллельные_вычисления #параллельное_программирование
-
Параллелизм с общим состоянием в Rust
Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
https://habr.com/ru/articles/1018592/
#backend #backendпрограммирование #rust #параллелизм #параллельные_вычисления #параллельное_программирование
-
Параллелизм с общим состоянием в Rust
Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
https://habr.com/ru/articles/1018592/
#backend #backendпрограммирование #rust #параллелизм #параллельные_вычисления #параллельное_программирование
-
Как ускорить тесты проекта в 6 раз: от 10 минут к 101 секунде
Почти 800 тестов, 10 минут на прогон, каждый пуш — ожидание на CI. Знакомо? Рассказываю, как довёл время до 101 секунды: снижение таймаутов, параллелизм ScalaTest, shared Testcontainers и защита от регрессий. Scala, SBT, PostgreSQL, GraalVM — конкретные шаги и подводные камни.
https://habr.com/ru/articles/1003592/
#scala #scalatest #testcontainers #postgresql #тестирование #оптимизация #параллелизм #sbt #graalvm #hikaricp
-
Записки оптимизатора 1С (ч.15). Параллелизм запросов 1С в PostgreSQL
Продолжим разбирать тему параллелизма для баз 1С, но сегодня разговор будет не о MS SQL, а о PostgreSQL. Принципы работы тут отличаются, поэтому нужно пояснение.
https://habr.com/ru/companies/softpoint/articles/1005446/
#perfexpert #qprocessing #max_parallel_workers_per_gather #max_parallel_workers #max_worker_processes #max_degree_of_parallelism #параллелизм #cxpacket #параллелизм_в_PostgreSQL #записки_оптимизатора_1с
-
Записки оптимизатора 1С (ч.15). Параллелизм запросов 1С в PostgreSQL
Продолжим разбирать тему параллелизма для баз 1С, но сегодня разговор будет не о MS SQL, а о PostgreSQL. Принципы работы тут отличаются, поэтому нужно пояснение.
https://habr.com/ru/companies/softpoint/articles/1005446/
#perfexpert #qprocessing #max_parallel_workers_per_gather #max_parallel_workers #max_worker_processes #max_degree_of_parallelism #параллелизм #cxpacket #параллелизм_в_PostgreSQL #записки_оптимизатора_1с
-
Записки оптимизатора 1С (ч.15). Параллелизм запросов 1С в PostgreSQL
Продолжим разбирать тему параллелизма для баз 1С, но сегодня разговор будет не о MS SQL, а о PostgreSQL. Принципы работы тут отличаются, поэтому нужно пояснение.
https://habr.com/ru/companies/softpoint/articles/1005446/
#perfexpert #qprocessing #max_parallel_workers_per_gather #max_parallel_workers #max_worker_processes #max_degree_of_parallelism #параллелизм #cxpacket #параллелизм_в_PostgreSQL #записки_оптимизатора_1с
-
Записки оптимизатора 1С (ч.15). Параллелизм запросов 1С в PostgreSQL
Продолжим разбирать тему параллелизма для баз 1С, но сегодня разговор будет не о MS SQL, а о PostgreSQL. Принципы работы тут отличаются, поэтому нужно пояснение.
https://habr.com/ru/companies/softpoint/articles/1005446/
#perfexpert #qprocessing #max_parallel_workers_per_gather #max_parallel_workers #max_worker_processes #max_degree_of_parallelism #параллелизм #cxpacket #параллелизм_в_PostgreSQL #записки_оптимизатора_1с
-
[Перевод] Почему асинхронный Python не такой популярный?
Недавно на Youtube появилась документалка о Python . Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер: в конечном итоге этого не случилось ). Первые версии Python 3 (3.0-3.4) в основном делали упор на стабильность и упрощение перехода пользователей с версии 2.7. В 2015 была выпущена версия 3.5 с новой фичей: ключевыми словами async и await для выполнения корутин . Миновало десять лет и девять релизов, через считанные недели выпустят финальную версию Python 3.14. Пока все отвлеклись на фичи разноцветного REPL в 3.14, в release notes появились серьёзные заявления, связанные с конкурентностью и параллелизмом.
-
Настраиваем ExecutorService'ы под свои нужды
В этой статье хочу рассмотреть что такое ExecutorService в Java, зачем он нужен, варианты создания и в как его настраивать для решения практических задач Понимаю что есть много подобных статей, но в тех статьях что мне удалось найти не хватало практических примеров, сегодня хочу рассказать вам то, что по-настоящему пригодиться в работе Также я веду блог в телеграм , где вы сможете найти другие материалы от меня
https://habr.com/ru/articles/802113/
#java #многопоточность #executorservice #высоконагруженный #multithreading #потоки #пул_потоков #threadpool #thread #параллелизм
-
Распределённое обучение нейронных сетей. Часть I
Многие из успехов в глубинном обучении достигнуты отчасти благодаря тому, что разработчики, говоря простым языком, взяли модели побольше и натренировали их на огромных объёмах данных. Однако, чтобы прогнать эти самые огромные объёмы данных через модель, нужно либо очень много времени, либо каким-то образом распределить работу на много вычислительных узлов - сделать обучение параллельным. Я видел на Хабре пару статей на эту тему, но дерзну попробовать написать ещё одну. Добавить кое-каких деталей, а что-то, что уже было, надеюсь, получится объяснить попроще. Поехали!
https://habr.com/ru/companies/itfb/articles/858794/
#глубинное_обучение #ии #искусственный_интеллект #параллелизм #parallelism #ai #deep_learning
-
Как работает компьютер. Простая статья для начинающих программистов
В этой статье изложено всё, что нужно знать об устройстве компьютера с точки зрения программиста, а именно: для чего нужен тактовый генератор, регистры, кэши и виртуальная память; что такое архитектура процессора; что такое машинный код и код ассемблера; чем отличается компиляция в машинный код в C, C++ или Rust от компиляции в байт-код виртуальной машины в языках типа Java и C#; в чём их отличие от интерпретируемых языков вроде JavaScript или Python; что такое динамические и статические библиотеки (.dll/.so, .lib/.a); что такое фреймворк; что такое API и web-API; и что собой представляет параллельное программирование с использованием многоядерных процессоров, векторных регистров и видеокарт.
https://habr.com/ru/articles/964572/
#процессор #кэш #регистр #виртуальная_память #компиляция #интерпретаторы #параллелизм #gpu #векторные_операции #api
-
[Перевод] Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках
Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.
https://habr.com/ru/articles/806449/
#xv6 #параллелизм #счетчик_ссылок #блокировки #барьеры_памяти #кеширование #атомарные_операции #прерывания
-
[Перевод] Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках
Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.
https://habr.com/ru/articles/806449/
#xv6 #параллелизм #счетчик_ссылок #блокировки #барьеры_памяти #кеширование #атомарные_операции #прерывания
-
[Перевод] Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках
Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.
https://habr.com/ru/articles/806449/
#xv6 #параллелизм #счетчик_ссылок #блокировки #барьеры_памяти #кеширование #атомарные_операции #прерывания
-
Project Euler. Векторное программирование и задача номер 1
Добавляем щепотку векторного программирования в задачки проекта Эйлер. Заодно разбираемся, как эффективно реализовать деление на константу.
https://habr.com/ru/articles/929416/
#riscv #векторизация #параллельное_программирование #параллелизм
-
Об ошибках округления и способах борьбы с ними
Почему при сложениии одинаковых чисел в разном порядке получаются разные результаты? Как мининмизировать ошибки округления или избавиться от них совсем?
https://habr.com/ru/articles/922198/
#Вычисления #числа_с_плавающей_точкой #векторизация #параллелизм #погрешности_округления
-
Efficient Computer: программируем по кафелю
Экспериментируем с компилятором для новой не Фон-Неймановской архитектуры, обещающей повышение энергоэффективности в 100 раз.
-
Три необсуждаемых вопроса о параллельной распределённой обработке данных — чтобы жить стало легче
В публикациях по распределённой параллельной обработке данных весьма редко разбираются сценарии отказа с точки зрения совместной работы воркеров и их влияния друг на друга. На примере решения несложного архитектурного кейса автор покажет, что ответов только на 3 вопроса при проектировании будет достаточно для обеспечения жёстких нефункциональных требований.
https://habr.com/ru/articles/891744/
#конкурентность #распределенные_системы #распределённая_обработка_данных #георезервирование #таскменеджер #таскраннеры #датаинжиниринг #параллелизм
-
[Перевод] Почему Erlang до сих пор король отказоустойчивых систем
Задумывались ли вы когда-нибудь, как построить самое стабильное приложение в мире? Какими свойствами оно должно обладать и какие архитектурные подходы делают это возможным? Впечатляет, что приложения вроде Discord и WhatsApp выдерживают миллионы одновременных пользователей, тогда как другие задыхаются уже на нескольких тысячах. Сегодня посмотрим, как Erlang позволяет обрабатывать огромную нагрузку и при этом держать систему живой и стабильной. К архитектуре Erlang
https://habr.com/ru/companies/otus/articles/974876/
#высоконагруженные_системы #erlang #отказоустойчивость #архитектура_приложений #масштабирование #распределённые_системы #параллелизм
-
Закон Амдала на конвейере Форда: как лучшие намерения губят ваши дедлайны
Скажите, вот когда у вас на проекте срываются сроки, когда бэклог растет, а скорость, кажется, падает — что чаще всего звучит как универсальное решение? Правильно: «Надо распараллелить!» Взять больше людей. Разбить задачу на подзадачи. Запустить процессы одновременно. Кажется, что если одна команда делает функцию А, а вторая — функцию Б, то автомобиль… простите, продукт — соберется в два раза быстрее. Но почему же тогда так часто это не работает? Почему добавление людей в проект иногда его только тормозит?
-
Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах
Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#. В целом, эффективное использование вычислительных ресурсов, включая процессор, является одним из главных аспектов разработки программного обеспечения. В этой статье мы рассмотрим несколько ключевых подходов и стратегий оптимизации нагрузки на CPU в языке программирования C#.
https://habr.com/ru/articles/976414/
#оптимизация #cpu #net #c# #unity #алгоритмы #параллелизм #циклы
-
Три способа менять один объект из нескольких потоков. Больше нет
Три способа менять один объект из нескольких потоков. Больше нет Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor… Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения. На самом деле их ровно три . Всё остальное — реализации и комбинации. Эта статья — попытка навести порядок в голове. После неё вы сможете: за 5 секунд классифицировать любой подход к конкурентности; понимать, почему Erlang выбрал акторы, а Java предлагает synchronized ; не изобретать велосипеды и не зацикливаться на «единственно правильном» решении; проектировать многопоточный код, держа в голове простую модель
-
Передачи данных в воркеры JavaScript
Передача данных между воркерами в JavaScript, не так проста и имеет массу особенностей завязанных на реализации потоков в языке. Хотите узнать о том какие ограничения накладывает архитектура многопоточки JS и как эти ограничения безопасно обойти? Хочу!
-
Всё про BlockingCollection и фичи с ними
Привет, Хабр! В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T> . Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную вместимость и предсказуемую блокировку при пустоте или переполнении. Да, у нас есть Channel<T> , есть TPL Dataflow, есть миллион самодельных очередей на SemaphoreSlim . Но когда нужны простые правила и железный backpressure без BlockingCollection по-прежнему закрывает задачи хорошо.
https://habr.com/ru/companies/otus/articles/943164/
#c# #конкурентность #многопоточность #очередь_задач #параллелизм #управление_потоками #отказоустойчивость
-
Я объявляю «войну» интеллекту… человеческому. Часть 1
Это не мы такие – жизнь такая. Это не я объявляю «войну», а искусственный интеллект (ИИ), который является главным участником беседы. Я лишь «передатчик» и в малой мере - интервьюер. А ИИ, отвечая на вопросы, своим корректным поведением, логикой, знаниями, рассуждением и выводами подает пример «интеллекту человеческому». Вам, прочитавшим диалог, не будет ли стыдно за поведение, за свои выводы, за отношение к таким же, как вы… Вольно или нет, но ИИ объявляет «войну» серости и хамству, высокомерию и чванству, низкой культуре и безграмотности. Всему тому, что, порой, приводит к самой настоящей войне. Будьте добрее, вежливее, логичнее, уважительнее и «войны» отступят, т.к. в них не будет смысла. Вместо них будет… А, что будет, - «жизнь покажет и жизнь рассудит». Короче, – давайте жить дружно!
-
[Перевод] async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
https://habr.com/ru/companies/otus/articles/928172/
#ios #swift #async_let #Task_group #параллелизм #конкуррентность #асинхронность #swift_concurrency #iOSразработка #обработка_ошибок
-
[Перевод] Планирование в Python
Планирование задач — неотъемлемая часть работы любых веб-приложений, в особенности таких, в которых требуется совершать периодические или отложенные действия. В Python предусмотрено множество способов планирования задач, и у каждого есть свои сильные и слабые стороны. В этой статье будут рассмотрены некоторые наиболее популярные способы планирования задач в приложении, написанном на основе FastAPI. sched – планировщик событий из Python Модуль sched входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.
-
[Перевод] Обзор CUDA: сюрпризы с производительностью
Наверное, я очень опоздал с изучением CUDA. До недавнего времени даже не знал, что CUDA — это просто C++ с небольшими добавками. Если бы я знал, что изучение её пойдёт как по маслу, я бы столько не медлил. Но, если у вас есть багаж привычек C++ , то код на CUDA у вас будет получаться низкокачественным. Поэтому расскажу вам о некоторых уроках, изученных на практике — возможно, мой опыт поможет вам ускорить код.
-
Как я «ломал» DeepSeek
В своей предыдущей статье[1] я уже рассказывал, как начал свое знакомство с искусственным интеллектом (ИИ). Тогда это был ChatGPT, а теперь — китайский DeepSeek[2]. Общение с DeepSeek происходит без посредников, что делает его более удобным и доступным. Раньше за использование ChatGPT приходилось платить или, например, задавать не более трёх вопросов в сутки. А с DeepSeek можно спрашивать сколько угодно и о чём угодно, не тратя ни копейки. Правда, есть опасения, что бесплатная подписка может закончиться, и тогда доступ к сервису будет закрыт. Также ходят слухи о возможных проблемах с «нежелательными» запросами. Так уж жизнь повернулась, что для меня в автоматном программировании (АП) возникла пауза. Но мне бросить АП все равно что перестать дышать. А потому просто произошла задержка дыхания или просто передышка. Меня это не сильно огорчило, т.к. я по-прежнему пользуюсь АП, вдыхая полной грудью его возможности. Даже в текущей ситуации. Тем не менее, я кинулся, так сказать, «во все тяжкие». Мне предложили заняться «умными домами» и я согласился. Новая область, новые интересы, новое приложение своих сил. Короче, – «движуха»! Мы, ведь, все мечтаем о чем-то подобном – не так ли? А еще обещали мотивировать, что немаловажно в наше меркантильное время. Вспомним хотя бы размер виртуальной средней зарплаты по России и средний размер пенсий... Сейчас я только рад случившемуся. Раньше было скучновато. Иногда взбадривало общение на Хабре, а теперь «поддает жару» искусственный интеллект. И хотя я предполагал что-то подобное, но не ожидал, что это произойдет столь быстро, так бурно и с таким эффектом. Китайский ИИ стал коллегой, советчиком, а, порой, и собеседником, помогая освоить новую область программирования. При этом я по-прежнему не согласен с глашатаями, предрекающими замену программистов, но уверен, что квалификацию многих из них он повысит точно. Я убедился в этом на своём опыте.
-
Этот мир — асинхронный, и что вы ему сделаете
Все современные средства разработки — практически без исключения — наделены двумя родовыми травмами. Они не дают доступа к чуть более низкому софтверному уровню (синтаксическому дереву) без помощи сторонних хаков и ориентированы на синхронное исполнение. Прежде, чем продолжить, я сразу оговорюсь: я не имею в виду узкоспециализированные задачи, типа написания драйверов, программирования контроллеров и прочей околожелезной разработки; там другие правила. Я говорю про мир приложений: от инди-игр до энтерпрайза. Языки высокого уровня, на которых сегодня ведется более (оценка навскидку) 98% всей разработки продуктов для конечного пользователя, лишены примитивов представления AST и параллельного (не путать с асинхронным) исполнения. Но мир ничего не знает о наших абстракциях
-
Введение в конкуренцию Go
Конкуренция (concurrency) в программировании позволяет разным частям программы выполняться независимо друг от друга. Это помогает повысить производительность и эффективнее использовать системные ресурсы. Конкуренция особенно важна для современных приложений, таких как сетевые сервисы или программы, работающие с множеством пользовательских запросов. Go предлагает уникальный подход к реализации конкуренции, который отличается от других языков программирования. В основе этого подхода лежат горутины и каналы — основные инструменты для написания конкурентного кода. В этом материале мы рассмотрим, как Go помогает решать задачи конкуренции, чем конкуренция отличается от параллелизма и почему использование этих инструментов делает приложения более быстрыми и масштабируемыми.
-
Типы и архитектуры параллельных вычислений: какие они бывают?
Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для эффективной тренировки и работы нейросетевых моделей.
https://habr.com/ru/articles/881488/
#параллельные_вычисления #gpu #gpu_вычисления #параллелизм #архитектура #глубокое_обучение #глубокие_нейронные_сети #нейронные_сети #нейронные_сети_и_машинное_обучение #cpu
-
Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox
Привет, Хабр! Меня зовут Тимур Маннапов, и я самый обычный senior-разработчик в Mindbox. На примере нашего продукта я расскажу, почему при загрузке CPU наполовину или меньше скорость параллельных вставок на SQL-сервере упирается в «невидимый» предел, а потом и вовсе замедляется. На нашем железе предел был в районе ~120 тысяч строк в минуту в одну таблицу. Поделюсь, как его преодолеть, не потратив годы на разработку и миллионы на новый сервер.
-
[Перевод] Как правильно тестировать конкурентные структуры данных
Есть потрясающая библиотека Rust под названием loom , которую можно использовать для тщательного тестирования неблокируемых (lock-free) структур данных. Я давно хотел разобраться, как она работает. И сейчас хочу! Но недавно я случайно реализовал небольшой эксперимент, который, как мне кажется, содержит часть идей loom , поэтому о нём стоит написать. Моя цель — не научить вас тому, что нужно использовать на практике (если вы хотите этого, то почитайте документацию loom ), а, скорее, вывести пару идей из фундаментальных принципов.
https://habr.com/ru/companies/ruvds/articles/827940/
#ruvds_переводы #конкурентность #параллельные_вычисления #параллелизм #concurrency #структуры_данных #тестирование
-
[Перевод] async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
https://habr.com/ru/companies/otus/articles/928172/
#ios #swift #async_let #Task_group #параллелизм #конкуррентность #асинхронность #swift_concurrency #iOSразработка #обработка_ошибок
-
[Перевод] async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
https://habr.com/ru/companies/otus/articles/928172/
#ios #swift #async_let #Task_group #параллелизм #конкуррентность #асинхронность #swift_concurrency #iOSразработка #обработка_ошибок
-
[Перевод] async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
https://habr.com/ru/companies/otus/articles/928172/
#ios #swift #async_let #Task_group #параллелизм #конкуррентность #асинхронность #swift_concurrency #iOSразработка #обработка_ошибок
-
Python Multiprocessing. Обмен данными между процессами. Передача объектов пользовательских классов
Параллельное программирование — сложный, но очень полезный навык для программиста. Оно позволяет эффективно использовать мощности современных компьютеров с несколькими ядрами и процессорами. Это особенно важно при решении сложных задач, например, в инженерных расчетах, обработке мультимедийных данных, обучении нейросетей и многом другом. Модуль Multiprocessing позволяет использовать так называемый истинный параллелизм, то есть создавать процессы, которые выполняются полностью независимо друг от друга. В этом случае процессы не имеют общей памяти и не могут просто так читать и изменять одни и те же переменные. Конечно же, в модуле multiprocessing реализован нативный способ передавать данные между процессами, и даже не один. Однако как только мы отходим от встроенных типов данных, то готовые решения уже не работают. О том, как с этим обходиться, я и расскажу в этой статье.
https://habr.com/ru/articles/789904/
#multiprocessing #DataManager #SyncManager #shared_memory #параллельное_программирование #параллелизм #процесс
-
Python Multiprocessing. Обмен данными между процессами. Передача объектов пользовательских классов
Параллельное программирование — сложный, но очень полезный навык для программиста. Оно позволяет эффективно использовать мощности современных компьютеров с несколькими ядрами и процессорами. Это особенно важно при решении сложных задач, например, в инженерных расчетах, обработке мультимедийных данных, обучении нейросетей и многом другом. Модуль Multiprocessing позволяет использовать так называемый истинный параллелизм, то есть создавать процессы, которые выполняются полностью независимо друг от друга. В этом случае процессы не имеют общей памяти и не могут просто так читать и изменять одни и те же переменные. Конечно же, в модуле multiprocessing реализован нативный способ передавать данные между процессами, и даже не один. Однако как только мы отходим от встроенных типов данных, то готовые решения уже не работают. О том, как с этим обходиться, я и расскажу в этой статье.
https://habr.com/ru/articles/789904/
#multiprocessing #DataManager #SyncManager #shared_memory #параллельное_программирование #параллелизм #процесс
-
Типы и архитектуры параллельных вычислений: какие они бывают?
Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для эффективной тренировки и работы нейросетевых моделей.
https://habr.com/ru/articles/881488/
#параллельные_вычисления #gpu #gpu_вычисления #параллелизм #архитектура #глубокое_обучение #глубокие_нейронные_сети #нейронные_сети #нейронные_сети_и_машинное_обучение #cpu
-
Типы и архитектуры параллельных вычислений: какие они бывают?
Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для эффективной тренировки и работы нейросетевых моделей.
https://habr.com/ru/articles/881488/
#параллельные_вычисления #gpu #gpu_вычисления #параллелизм #архитектура #глубокое_обучение #глубокие_нейронные_сети #нейронные_сети #нейронные_сети_и_машинное_обучение #cpu
-
Типы и архитектуры параллельных вычислений: какие они бывают?
Привет, Хабр! В этом материале мы снова вернемся к теме GPU и машинного обучения, но на этот раз поговорим о параллельных вычислениях, видах параллелизма и типах архитектур, которые задействуют для эффективной тренировки и работы нейросетевых моделей.
https://habr.com/ru/articles/881488/
#параллельные_вычисления #gpu #gpu_вычисления #параллелизм #архитектура #глубокое_обучение #глубокие_нейронные_сети #нейронные_сети #нейронные_сети_и_машинное_обучение #cpu
-
Развитие RISC-V & мультиклеточная архитектура
Рост популярности RISC-V с момента его появления в 2010 году позволяет говорить, что архитектура состоялась. Пока успех архитектуры RISC-V — это, в первую очередь, ее открытость. Все остальные факторы вторичны. Минимализм системы команд, ее стандартизация, программная инфрастуктура — все это очень важно. Но, если бы за все это платили, как платят создателям ARM, то RISC-V, скорее всего, не было бы. Говорить о действительном успехе этой архитектуры можно будет только тогда, когда она создаст реальную конкуренцию ARM и х86 на высокомаржинальных рынках мобильных телефонов, планшетов, ПК, встроенных систем, суперкомпьютеров и искусственного интеллекта. Мультиклеточная архитектура может быть использована не только на архитектурном уровне процессора доступном компилятору и программисту, но и на микроархитектурном уровне. Так, если уровень системы команд RISC-V рассматривать как архитектурный, доступный компилятору и программисту, то реализация этого уровня внутри процессора на мультиклеточных принципах будет микроархитектурным уровнем, недоступным программисту, но именно этот уровень отвечает за характеристики процессора.
https://habr.com/ru/articles/776624/
#multiclet #мультиклет #мультиклеточные_процессоры #riscv #isa #суперскалярная_архитектура #параллелизм #параллельные_вычисления #компиляторы #kaby_lake