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

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

Время на прочтение 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

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

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

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

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