Параллельные вычисления
-
Закон Амдала в компьютерной архитектуре
Закон Амдала в компьютерной архитектуре: формула для оценки теоретического ускорения при улучшении ресурсов системы. Ограничения параллельных вычислений.
-
Архитектура VLIW: Перенос сложности на компилятор
VLIW процессоры: архитектура, переносящая сложность в компилятор для повышения производительности и параллелизма. Альтернатива сложным CPU!
-
Формат двойной точности с плавающей точкой (double precision)
Формат чисел с двойной точностью (FP64, float64) в 64-битных компьютерах. Стандарт IEEE 754, динамический диапазон, точность, Fortran.
-
SIMD: Параллельная обработка данных с одной инструкцией
SIMD: параллельная обработка данных. Одинаковые инструкции для множества данных – тип параллелизма, полезен для обработки изображений и звука.
-
Балансировка нагрузки: методы и алгоритмы распределения задач
Балансировка нагрузки: распределение задач между серверами для повышения эффективности, скорости и избежания перегрузок. Статические и динамические алгоритмы.
-
Многопроцессорные системы: принципы и архитектуры
Многопроцессорность: использование нескольких CPU в одной системе. Параллельное выполнение задач, отличие от многозадачности. Оптимизация производительности.
-
Транспьютер: пионер параллельных вычислений 1980-х годов.
Транспьютер: пионерские микропроцессоры 1980-х для параллельных вычислений. Inmos, архитектура, влияние на современные системы. История и инновации.
-
Параллельные вычисления: принципы и применение
Параллельные вычисления: одновременное выполнение задач для повышения производительности. Виды, преимущества и роль в современной архитектуре ПК.
-
Параллельные алгоритмы: принципы, модели и тенденции развития.
Параллельные алгоритмы в информатике: одновременное выполнение операций, PRAM модель, отличие от последовательных и конкурентных алгоритмов. Оптимизация вычислений.
-
Технология Hyper Threading от Intel: одновременная многопоточность
Hyper-Threading от Intel: технология одновременной многопоточности для повышения производительности процессоров Xeon, Pentium 4, Core i. Два логических ядра на одном физическом.
-
Многопоточная обработка данных: Архитектура MIMD
MIMD архитектура: параллельные вычисления, многопроцессорные системы, независимая работа процессоров. Применение в CAD/CAM, моделировании и сетях.
-
Перепрограммируемая компьютерная архитектура
Перенастраиваемые вычисления: архитектура, сочетающая гибкость ПО и производительность оборудования с помощью FPGA. Адаптация "на лету" без замены чипов.
-
Предикация в компьютерной архитектуре
Предикация в программировании: альтернатива условным переходам. Условное выполнение инструкций на основе предиката (булевого значения) без ветвлений.
-
Рассеивание тепла компьютерными процессорами
Рассеивание тепла процессорами: причины, влияние на производительность, переход к многоядерным чипам и оптимизация многопоточного ПО. Энергоэффективность CPU.
-
Инструкции за такт: показатель производительности процессора
Инструкции за такт (IPC) – ключевой показатель производительности процессора. Узнайте, как IPC, параллелизм и оптимизация инструкций влияют на скорость CPU.
-
Интерфейс передачи сообщений MPI: история и стандартизация
MPI: стандарт обмена сообщениями для параллельных вычислений на C, C++, Fortran. Открытый исходный код, масштабируемость, разработка параллельного ПО.
-
Параллельное выполнение потоков в многоядерных процессорах: техника одновременной многопоточности.
Многопоточность (SMT) в superscalar процессорах: повышение эффективности за счет одновременного выполнения нескольких потоков. Улучшение использования ресурсов CPU.
-
Систолические массивы: Архитектура параллельных вычислений.
Систолические массивы: архитектура параллельных вычислений с плотной связью узлов. Обработка данных потоком, высокая производительность в линейной алгебре.
-
OpenMP: Стандарт для параллельного программирования
OpenMP: стандарт параллельного программирования для C, C++, Fortran. Ускорьте вычисления на многоядерных системах с помощью многопоточности и директив компилятора.
-
Операция умножения-сложения в цифровой обработке сигналов
Умножение-накопление (MAC/MAD): ключевая операция в цифровой обработке сигналов. Оптимизация вычислений с помощью MAC-блоков и FMA.
-
Гетерогенный процессор HEP: Архитектура и особенности реализации
Heterogeneous Element Processor (HEP): история, архитектура (Бёртон Смит, 1982). Решение задач гидродинамики для Ballistic Research Laboratory. Компьютер из разнородных модулей.
-
Пул потоков: шаблон проектирования для параллельного выполнения задач
Пул потоков: шаблон проектирования для параллельного выполнения задач в программировании. Повышает производительность, избегает задержек при создании/удалении потоков.
-
Гранулярность: степень детализации и масштабы рассмотрения.
Гранулярность: что это такое? Объяснение понятия, степени зернистости (крупная/мелкая) и их применения в различных системах и материалах.
-
Потоки данных в программной инженерии
Dataflow в разработке ПО: что это такое? Узнайте о парадигме потоковой обработки данных, реактивном программировании и графах вычислений.
-
Расширение для параллельного программирования на Fortran: Coarray Fortran
Coarray Fortran (CAF): расширение Fortran для параллельного программирования. Стандарт Fortran 2008, асинхронное выполнение, обращение к данным в разных образах.
-
Параллелизм и конкурентность в программировании
Конкурентность в программировании: одновременное выполнение задач без влияния на результат. Структура vs. параллелизм, повышение скорости работы программ.
-
Параллельная RAM: Абстрактная машина для разработки параллельных алгоритмов
Параллельная RAM (PRAM): абстрактная машина для разработки параллельных алгоритмов. Моделирование сложности, времени и количества процессоров. 💻✨
-
Многоинструкционная архитектура с едиными данными (MISD) и волновые процессоры
MISD архитектура: параллельные вычисления, множественные инструкции – одни данные. Применение, отличия от SIMD/MIMD, масштабируемость и отказоустойчивость.
-
Базовые подпрограммы линейной алгебры (BLAS) и их реализации
BLAS: стандартные подпрограммы линейной алгебры для операций с векторами и матрицами. Оптимизация скорости вычислений, C/Fortran интерфейсы.
-
Программирование на основе потоков данных
Программирование с потоком данных: парадигма, моделирующая программу как граф потоков данных. Разработано в MIT в 1960-х, связано с функциональным программированием.
-
Параллельное программирование: Модель SPMD
SPMD: параллельное программирование, модель вычислений для ускорения обработки данных. Описание принципов SPMD, MIMD, SIMD и их применения в вычислениях.
-
Цепочки обработки данных: конвейерный подход
Конвейер обработки данных: принцип работы, этапы и применение в CPU (RISC). Параллельное выполнение инструкций для повышения производительности.
-
Вычисления на графических процессорах: GPGPU и параллельная обработка данных
GPGPU: использование GPU для вычислений, традиционно выполняемых CPU. Параллельная обработка данных, увеличение производительности, многоядерность GPU.
-
Бочкообразный процессор: переключение потоков на каждом цикле
Процессор "бочка": переключение потоков на каждом цикле. Быстрая многопоточность, гарантированная скорость выполнения инструкций для каждого потока.
-
Multiflow: История VLIW-компьютеров и их влияние на компьютерную науку.
Multiflow Computer: история и влияние VLIW-архитектуры. Производство мини-суперкомпьютеров в 1984-1990 гг. Технические инновации и вклад в компьютерную науку.
-
Архитектура потоковых данных: принципы и применение
Архитектура данных: альтернатива фон Нейману. Принцип работы, применение в DSP, графике, AI и параллельных вычислениях. Преимущества и особенности.
-
Cray SSS: Сверхпараллельная архитектура на основе памяти
Cray SSS: новаторский суперкомпьютер с массовно-параллельной архитектурой. Объединение Cray 3 и SIMD-процессора в памяти. История и особенности проекта.
-
Увеличение производительности системы: анализ ускорения и суперлинейный эффект.
Ускорение в компьютерной архитектуре: измерение производительности систем, решающих одну задачу. Оптимизация с помощью предсказателя переходов. Amdahl's law.
-
Вычислительные системы на основе стандартного оборудования
Кластерные вычисления на стандартном оборудовании: параллельная обработка данных с использованием доступных компонентов для снижения затрат и избежания привязки к поставщику.
-
CPython: Эталонная реализация Python и глобальная блокировка интерпретатора (GIL)
CPython: эталонная реализация Python на C и Python. Компиляция в байт-код, GIL, интеграция с другими языками. Узнайте больше о CPython!
-
Stackless Python: Альтернативная реализация языка Python
Stackless Python: альтернативная реализация Python без C-стека вызовов. Микропотоки, корутины, каналы связи и сериализация задач для эффективной работы.
-
Jupiter JVM: Архитектура и особенности реализации
Jupiter JVM: открытая Java виртуальная машина с модульной архитектурой. Использует Boehm GC и GNU Classpath. Оптимизация памяти и параллельный сборщик мусора.
-
Josh Fisher
-
Gang scheduling
-
Абстракции параллельной компьютерной архитектуры
Параллельное программирование: модели, абстракции и архитектура. Оценка обобщенности и производительности. Модели как мост между ПО и железом.
-
Сеть процессов Кана: детерминированная модель вычислений.
Сети Кана: модель вычислений для параллельных программ, встраиваемых систем и обработки данных. Детерминированное поведение, FIFO-каналы, блокирующие чтения.
-
Параллельные и конкурентные вычисления: концепции и различия
Параллельные вычисления: одновременное выполнение задач для повышения производительности. Многопоточность, модульное программирование, конкурентное исполнение.
-
МасPar: Архитектура SIMD-суперкомпьютеров
МасPar: производитель мини-суперкомпьютеров (1987-). Уникальная SIMD-архитектура с центральным блоком управления и параллельными ALU. История и особенности.
-
Многопроцессорная архитектура CMP от Unisys
Клеточная мультипроцессорность (CMP): архитектура для Intel CPU от Unisys. Разделение процессоров, поддержка разных ОС (Windows, AIX, Unix). Масштабируемость до 32 процессоров.
-
Параллельная обработка потоков данных: парадигмы и аппаратное ускорение.
Обработка потоковых данных: парадигма параллельного программирования для эффективной обработки последовательностей событий в реальном времени. Алгоритмы и системы.
-
Transport triggered architecture
-
Автоматическая векторизация в параллельных вычислениях.
Автоматическая векторизация: оптимизация кода для параллельных вычислений. Преобразование скалярных операций в векторные для повышения производительности. SIMD, SPMD.
-
MAJC
-
Разделение и слияние циклов: оптимизации компилятора.
Оптимизация циклов в программировании: разделение (fission) для многоядерных процессоров и слияние (fusion) для повышения производительности и параллелизма.
-
Международный симпозиум по параллельным и распределенным вычислениям (IPDPS)
IPDPS: международная конференция по параллельным и распределенным вычислениям. Доклады, воркшопы, туториалы от IEEE. Новейшие исследования и разработки.
-
Неявный параллелизм в выразительных вычислениях
Параллелизм в вычислениях: языки программирования, автоматически использующие возможности распараллеливания. Повышение производительности и удобство разработки.
-
Многоядерные процессоры: архитектура и применение.
Многоядерные процессоры: что это такое и как работают? Узнайте о структуре, преимуществах и применении многоядерных чипов в современных компьютерах.
-
SIMD в регистрах: Архитектуры и история развития
SIMD в регистре (SWAR): параллельная обработка данных внутри процессора. Оптимизация вычислений, использование SIMD-инструкций и регистров. Flynn's taxonomy.
-
Synchronization (computer science)
-
Charm++