Как стать автором
Обновить

Ещё большее ускорение WebAssembly: новый потоковый и многоуровневый компилятор в Firefox

Время на прочтение 6 мин
Количество просмотров 14K
Firefox JavaScript *Assembler *Компиляторы *WebAssembly *
Перевод
Оба авторе: Лин Кларк — разработчик в группе Mozilla Developer Relations. Занимается JavaScript, WebAssembly, Rust и Servo, а также рисует комиксы о коде.

Люди называют WebAssembly фактором, меняющим правила игры, потому что эта технология ускоряет выполнение кода в вебе. Некоторые из ускорений уже реализованы, а другие появятся позже.

Одна из техник — потоковая компиляция, когда браузер компилирует код во время его загрузки. До настоящего времени эта технология рассматривалась лишь как потенциальный вариант ускорения. Но с выпуском Firefox 58 она станет реальностью.

Firefox 58 также включает в себя двухуровневый компилятор. Новый базовый компилятор компилирует код в 10–15 раз быстрее, чем оптимизирующий компилятор.

Вместе эти два изменения означают, что мы компилируем код быстрее, чем он поступает из сети.



На десктопе мы компилируем 30-60 МБ кода WebAssembly в секунду. Это быстрее, чем сеть доставляет пакеты.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 49

Как масштабируется обучение искусственного интеллекта

Время на прочтение 5 мин
Количество просмотров 8.3K
Машинное обучение *Искусственный интеллект
Перевод
Мы в OpenAI обнаружили, что масштаб градиентного шума [gradient noise scale], простой статистический метод, предсказывает параллелизуемость обучения нейтральной сети на широком спектре задач. Поскольку у более сложных задач градиент обычно становится более шумным, то увеличение размера пакетов, доступных для одновременной обработки, в будущем окажется полезным, и устранит одно из потенциальных ограничений ИИ-систем. В общем случае эти результаты показывают, что обучение нейросетей надо рассматривать не как загадочное искусство, и что ей можно придать точность и систематизировать.

За последние несколько лет исследователи ИИ достигали всё больше успеха в ускорении обучения нейросети при помощи распараллеливания данных, разбивающего большие пакеты данных на несколько компьютеров. Исследователи успешно использовали пакеты размером в десятки тысяч единиц для классификации изображений и моделирования языка, и даже в миллионы агентов обучения с подкреплением, игравших в Dota 2. Такие большие пакеты позволяют увеличивать объёмы вычислительных мощностей, которые эффективно участвуют в обучении одной модели, и являются одной из сил, движущих рост в области обучения ИИ. Однако со слишком большими пакетами данных происходит быстрое уменьшение алгоритмической отдачи, и непонятно, почему эти ограничения оказываются крупнее для одних задач и мельче для других.
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Комментарии 0

Есть ли параллелизм в произвольном алгоритме и как его использовать лучшим образом

Время на прочтение 15 мин
Количество просмотров 6K
Open source *Алгоритмы *Lua *Параллельное программирование *
Из песочницы

Есть ли параллелизм в произвольном алгоритме и как его использовать лучшим образом

Далее читать
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 38

Такие важные  короткоживущие данные

Время на прочтение 8 мин
Количество просмотров 2.9K
Open source *Алгоритмы *Lua *Параллельное программирование *

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

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Комментарии 5

Это непростое условное выполнение

Время на прочтение 18 мин
Количество просмотров 5.1K
Open source *Алгоритмы *Параллельное программирование *

Некоторое время назад я рассказывал о программном комплексе для выявления скрытого параллелизма в произвольном алгоритме и технологиях его, параллелизма, рационального использовании. Одним из компонентов этого комплекса является т.н. “универсальный вычислитель”, выполненный в соответствии с архитектурой Data-Flow (далее DF, пото́ковый вычислитель, описание здесь).

Читать далее
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 16

Динамика потокового вычислителя

Время на прочтение 14 мин
Количество просмотров 2.2K
Open source *Алгоритмы *Параллельное программирование *

В публикации https://habr.com/ru/post/530078/ я рассказывал  о возможностях пото́кового (архитектуры Data-Flow, далее DF) параллельного вычислителя. Особенности выполнения программ на нём столь необычны и интересны, что о них следует сказать “два слова”. Эксперименты проводились на компьютерном симуляторе DF-машины, входящем в исследовательский комплекс для выявления параллелизма в произвольном алгоритме и выработке рационального расписания  выполнения этого алгоритма на гомогенном или гетерогенном поле параллельных вычислителей (та же публикация).

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 4

Параллелизм и плотность кода

Время на прочтение 18 мин
Количество просмотров 3.7K
Open source *Алгоритмы *Lua *Параллельное программирование *

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

Естественным перед началом анализа будет указание ограничений на ширину и глубину исследований. Принимаем, что многозадачность в рассматриваемых параллельных системах осуществляется простейшим путём - перегрузкой всего блока (связки) выполняющихся операторов (одновременное выполнение операторов разных программ не предполагается) или же система работает в однозадачном режиме; в противном случае высказанное в предыдущей фразе утверждение может быть неверным. Минимизация   объёма устройств временного хранения данных (описано здесь) проводиться не будет. На этом этапе исследований также не учитываются  задержки времени на обработку операторов и пересылку данных между ними (для системы SPF@home формально эти параметры могут быть заданы в файлах с расширениями med и mvr).

В предыдущей публикации была описана технология получения ПВПП на основе модели потокового (Data-Flow) вычислителя. Обычно считают, что правила выбора операторов для выполнения в такой машине подчиняются логике действия некоторых сущностей, совместно выполняющих определённые  действия – “актёров” (actors); при этом естественным образом моделируются связанные с характеристиками времени параметры обработки операторов. В общем случае при этом отдельные операторы выполняются асинхронно.  В публикации показано, что описанный принцип получения ПВПП приемлем (при выполнении несложных условий) и для машин архитектуры VLIW (Very Long Instruction Word, сверхдлинное машинное слово),  отличающихся требованием
одновременности начала выполнения всех операторов в связке. В расчётах использовали модель ILP (Instruction-Level Parallelism,  параллелизм  уровня машинных команд).

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 11

Суперкомпьютеры и клеточные мембраны 2

Время на прочтение 31 мин
Количество просмотров 2K
История IT Научно-популярное Старое железо Биографии гиков
Перевод

(Визуализатор VMD в связке с проектором и управлением жестами, 1994 г.)

С самодельным параллельным суперкомпьютером в рюкзаке Клаус Шультен терпеливо ждал в чикагском аэропорту О'Хара, надеясь, что после прибытия из Германии ему не составит труда пройти таможню. Это было летом 1988 года, и Шультен собирался начать новую работу в Университете Иллинойса. В разгар холодной войны, когда напряженность между США и Советским Союзом достигла наивысшего пика, суперкомпьютеры вызывали у администрации Рейгана большой ужас. Хотя Рейган, находясь на своем посту, усилил гонку вооружений и все сопутствующие ей технологические достижения, он хотел, чтобы бурно развивающиеся разработки суперкомпьютеров не попали в руки Советов, которые могли бы создать более совершенное оружие.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 2

Сколько стоит расписание

Время на прочтение 14 мин
Количество просмотров 3.9K
Open source *Алгоритмы *Lua *Параллельное программирование *

Основные данные вычислительных экспериментов по реорганизации ярусно-параллельной формы  (ЯПФ) информационных графов алгоритмов (ТГА) приведены в предыдущей публикации. Цель текущей публикации – показать окончательные результаты исследований разработки расписаний выполнения параллельных программ  в показателях вычислительной трудоёмкости собственно преобразования  и качества полученных расписаний. Данная работа является итогом вполне определённого цикла исследований в рассматриваемой области.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 3

Надоело настраивать кластер? Используйте Ray Lightning

Время на прочтение 7 мин
Количество просмотров 2.1K
Блог компании Skillfactory Open source *Программирование *IT-инфраструктура *Машинное обучение *
Туториал
Перевод

PyTorch Lightning позволяет распараллелить Deep Learning на GPU, но настраивать и объединять процессоры в сеть сложно даже в управляемом кластере SLURM. Проблему решает пакет Ray Lightning, обзором которого делимся к старту потока курса по Data Science.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 1

Параллелизм в алгоритмах — выявле́ние и рациональное его использование. Возможности компьютерного моделирования

Время на прочтение 41 мин
Количество просмотров 3.6K
Open source *Алгоритмы *Lua *Параллельное программирование *

С тех пор как мир возник во мгле

Нет ничего на свете более интересного лично для

Исследователя и одновременно полезного для

Человечества, чем позна́ние окружающего Мира.

Валерий Баканов. Крым, Щёлкино/Казантип, август 2022.

Данная публикация предназначена для Исследователей, которым не жаль с пользой употребить своё время для практического количественного углу́бленного  понимания свойств внутреннего (скрытого) параллелизма в алгоритмах и его, на́йденного параллелизма, рационального использования в вычислительных практиках. Рациональное использование имеющегося в алгоритмах параллелизма определяется набором приёмов, позволяющих получить наиболее приемлемый (по разумным параметрам) план (расписание) выполнения рассматриваемого алгоритма (программы) на заданном поле параллельных вычислителей. Т.к. конечная (реализуемая в процессе собственно вычислений) последовательность выполнения команд неминуемо я́вится всё же несколько иной относительно разработанного на данном этап ие плана вычислений, логично назвать результат данного анализа каркасом плана (расписания) параллельных вычислений.

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

Ряд лет интересом пользовалось изучение параметров вычислительной трудоёмкости (фактически зависимости числа вычислительных операций от размерности обрабатываемых данных) для различных алгоритмов. Параметры параллелизма в алгоритмах – очередная сторона многогранной  сущности “алгоритм”.  В современной ситуации отечественным разработчикам придётся самостоятельно исследовать и решать все связанные с автоматизированной обработкой данных вопросы – время “неограниченной халявы” (когда можно было десятилетиями бездумно копировать западные разработки в области архитектуры и готовых решений аппаратной и программной частей) закончилось.

Ещё никто на всей земле

Не предава́лся сожаленью

О том, что о́тдал жизнь ученью.

Абу Абдалла́х Рудаки́, Бухара, около 860÷941.

 

Читать далее...
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 10

Как мы сокращаем время простоя при установке обновлений схемы базы данных. Советы разработчикам

Уровень сложности Средний
Время на прочтение 30 мин
Количество просмотров 2.7K
Oracle *Администрирование баз данных *
Обзор

Привет! Я работаю в компании Bercut, которая более 20 лет занимается разработкой и поддержкой ПО для операторов сотовой и фиксированной связи. Сегодня я хочу рассказать о наших подходах к сокращению времени простоя продуктивного комплекса при установке обновлений схемы данных на СУБД Oracle. Целевая аудитория — начинающие и продолжающие разработчики, которым интересно узнать о различных вариантах распараллеливания и ускорения работы DDL, DML и прочих штуках, облегчающих процесс отладки и установки.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 2

Фортран: пишем параллельные программы

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.9K
Программирование *Fortran *Параллельное программирование *
Туториал

В этой статье мы попробуем написать простейшую параллелизуемую программу на языке Фортран, используя для этого методы конвейеризации и симметричной параллелизации и сравним их между собой, применив наиболее популярные компиляторы GNU Fortran и Intel Fortran.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 87