РАБОТА С ДАННЫМИ В УЧЕБНОМ ЯЗЫКЕ ПРОГРАММИРОВАНИЯ СИНХРО (2023)
Статья является продолжением собственных предыдущих исследований автора в рамках многолетней работы по созданию учебного языка программирования СИНХРО, предназначенного для ознакомления с параллелизмом. Основное направление работ - уточнение понятий, способствующих подготовке небольших многопоточных программ при обучении параллельному программированию. Главный результат последнего года заключается в развитии механизма взаимодействия локальной и общей памяти. Дан приоритет парадигме функционального программирования, популярной при подготовке прототипов многопоточных программ. Это помогло преодолеть зависимость порядка вычислений от последовательности вхождения выражений в текст программы и размещения данных в памяти. Описаны отличия от привычных понятий программирования, сдерживающих решение задач организации параллельных вычислений и предельно распределенных систем из ряда потоков, взаимодействующих в терминах доступа к значениям переменных, возможно расположенных в общей памяти. Повышен базовый уровень воздействий на память. Часть из них укрупнены для предотвращения неожиданностей из-за асинхронности и ослабления императивности элементов распределенных систем. Добавлено понятие команд-двойников для управления императивной синхронизацией взаимодействующих устройств, полезное при решении вопросов освобождения памяти.
Идентификаторы и классификаторы
- eLIBRARY ID
- 53847229
В лаборатории информационных систем ИСИ СО РАН разрабатывается учебный язык программирования СИНХРО, предназначенный для ознакомления с явлениями параллелизма, мета-программированием и особенностями много-поточного программирования [1, 2]. Прагматика языка соответствует парадигме функционального программирования (ФП), дополненной некоторыми, сравнительно безопасными, методами императивного программирования. При создании языка учтен опыт применения языков Lisp, Робик, SETL, БАРС, Sisal, Haskell, mpC, Oz. Приняты во внимания основные модели организации параллельных вычислений [3, 4] и уточнен ряд понятий и методов, изменяющихся при переходе от обычного программирования к представлению много-поточных и многопроцессорных программ. Прежде всего это преодоление зависимости порядка вычислений от последовательности вхождения выражений в текст программы, а также повышение базового уровня воздействий на память и взаимодействия с устройствами. Часть из них укрупнены для предотвращения неожиданностей из-за асинхронности и ослабления императивности элементов распределенных систем. Добавлено понятие команд-двойников для управления императивной синхронизацией взаимодействующих устройств.
Список литературы
- Городняя Л.В. Язык параллельного программирования СИНХРО, предназначенный для обучения. Новосибирск, Препринт ИСИ СО РАН № 180, 2016. 30 с. EDN: ZDSZTJ
- Городняя Л.В. О курсе “Начала параллелизма” // Ершовская конференция по информатике, cекция “Информатика образования”, Новосибирск, 27 июля 2011. С. 51-54. EDN: ZPLRUV
- Воеводин В.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с. EDN: SYTPKD
- Хоар Ч. Взаимодействующие последовательные процессы. Издательство “Мир”, 1989. 264 с.
- McCarthy J. LISP 1.5 Programming Manual. Cambridge: The MIT Press, 1963. 106 p. DOI: 10.7551/mitpress/5619.001.0001
- Backus J. Can programming be liberated from the von Neumann style? A functional stile and its algebra of programs // Commun. ACM. 1978. Vol. 21, no. 8. P. 613-641. DOI: 10.1145/359576.359579
- Хендерсон П. Функциональное программирование. М.: Мир, 1983. 349 с.
- Лавров С.С. Функциональное программирование // Компьютерные инструменты в образовании. 2002. № 2-4. С. 42-52. EDN: ZCVRHH
- Лавров С.С., Городняя Л.В. Функциональное программирование. Принципы реализации языка Лисп // Компьютерные инструменты в образовании. 2002. № 5. C. 49-58. EDN: ZCVRHH
-
Городняя Л.В. Основы функционального программирования. М.: ИнтернетУниверситет Информационных технологий, 2004. 272 с. EDN: QMNGBL
-
Городняя Л.В. Первые реализации языка Lisp в СССР // Материалы второй Международной конференции "Развитие вычислительной техники и ее программного обеспечения в России и странах бывшего СССР", SoRuCom-2011, Великий Новгород, 12-16 сентября 2011. С. 95-100. EDN: YKYJTD
-
Cann D.C. SISAL 1.2: A Brief Introduction and tutorial. Preprint UCRL-MA-110620. Lawrence Livermore National Lab., Livermore, California, May, 1992. 128 p.
-
Бурдонов И.Б., Косачев А.С. Семантики взаимодействия с отказами, дивергенцией и разрушением. Часть 2. Условия конечного полного тестирования // Вестник Томского государственного университета. 2011. Т. 2, № 15.
-
Koopman P., Michels S., Plasmeijer R. Dynamic Editors for Well-Typed Expressions // Trends in Functional programming 22nd International Symposium, 22nd International Symposium, TFP 2021, Virtual Event, February 17-19, 2021. Revised Selected Papers. Vol. 12834. Springer, 2021. P. 44-66. LNCS. DOI: 10.1007/978-3-030-83978-9_3
-
Erann Gat Lisp as an Alternative to Java. URL: https://flownet.com/gat/papers/lisp-java.pdf (дата обращения: 05.04.2023).
-
Иртегов Д.В. Введение в операционные системы. СПб.: БХВ-Петербург, 2008. 1040 с. EDN: QMSFTJ
-
Кнут Д.Э. Искусство программирования, том 1, выпуск 1. MMIX - RISC-компьютеры нового тысячелетия. М.: Вильямс, 2017. 160 с.
-
Вирт Н. Построение компиляторов. М.: ДМК Пресс, 2010. EDN: RAZDJF
-
Айлиф Дж. Принципы построения базовой машины. М.: Мир, 1973. 119 с.
-
Эванс Б., Гоф Дж., Ньюленд К. Java: оптимизация программ. Практические методы повышения производительности приложений в JVM. М.: Диалектика, 2019. 448 с.
-
Городняя Л.В. Абстрактная машина языка программирования учебного назначения СИНХРО // Вестник НГУ. Серия: Информационные технологии. 2021. Т. 19, № 4. С. 16-35. EDN: ULNNNQ
-
Грабер М. Введение в SQL. М.: Лори, 1996. 337 с.
-
Левин В.К. Отечественные суперкомпьютеры семейства МВС. URL: http://parallel.
Выпуск
Другие статьи выпуска
В статье описана параллельно-конвейерная реализация решения сеточных уравнений модифицированным попеременно-треугольным итерационным методом (МПТМ), получаемых при численном решенииуравнений математической физики. Наибольшие вычислительные затраты при использовании указанного метода приходятся на этапы решения системы линейных алгебраических уравнений (СЛАУ) с нижнетреугольной и верхнетреугольной матрицами. Представлен алгоритм решения СЛАУ с нижнетреугольной матрицей на графическом ускорителе с использованием технологии NVIDIA CUDA. Для реализациипараллельно-конвейерного метода использовалась трехмерная декомпозиция расчетной области. Она делится по координате y на блоки, количество которых соответствует количеству потоковых мультипроцессоровGPU, задействованных в вычислениях. В свою очередь, блоки разделяются на фрагменты по двум пространственным координатам - x и z. Представленная графовая модель описывает взаимосвязь между соседнимифрагментами расчетной сетки и процессом конвейерного расчета. По результатам проведенных вычислительных экспериментов получена регрессионная модель, описывающая зависимость времени расчета одногошага МПТМ на GPU, вычислены ускорение и эффективность расчетов СЛАУ с нижнетреугольной матрицей параллельно-конвейерным методом на GPU при задействовании различного количества потоковыхмультипроцессоров.
Проблема повышения эффективности параллельных вычислений чрезвычайно актуальна. В статье впервые продемонстрировано применение концепции Q-детерминанта для эффективной реализации алгоритма на графах. Концепция Q-детерминанта основана на унифицированном представлении численных алгоритмов в форме Q-детерминанта. Q-детерминант позволяет выразить и оценить внутренний параллелизм алгоритма, а также показать способ его параллельного исполнения. В работе приведены основные понятия концепции Q-детерминанта, необходимые для понимания приведенного исследования. Также описан основанный на концепции Q-детерминанта метод проектирования эффективных программ для численных алгоритмов. Результатом применения метода является программа, полностью использующая ресурс параллелизма алгоритма. Такая программа называется Q-эффективной. В качестве первого применения метода проектирования Q-эффективных программ для алгоритмов на графах описано проектирование программ для реализации алгоритма Дейкстры на параллельных вычислительных системах с общей и распределенной памятью. Приведены также результаты экспериментального исследования разработанных программ, проведенного с помощью суперкомпьютера «Торнадо ЮУрГУ». На основе анализа результатов экспериментального исследования определяются динамические характеристики разработанных программ и выявляются особенности их выполнения. Проведенные в статье исследования дают возможность сделать вывод, что применение концепции Q-детерминанта с целью разработки эффективных программ возможно не только для численных алгоритмов, но и для алгоритмов на графах.
В статье представлены результаты исследований по поиску аномалий в сенсорных данных из различных приложений цифровой индустрии. Рассматриваются временные ряды, полученные при эксплуатации деталей машин, показания датчиков, установленных на металлургическом оборудовании, и показания температурных датчиков в системе умного управления отоплением зданий. Аномалии, найденные в таких данных, свидетельствуют о нештатной ситуации, отказах, сбоях и износе технологического оборудования. Аномалия формализуется как диапазонный диссонанс - подпоследовательность временного ряда, расстояние от которой до ее ближайшего соседа не менее наперед заданного аналитиком порога. Ближайшим соседом данной подпоследовательности является такая подпоследовательность ряда, которая не пересекается с данной и имеет минимальное расстояние до нее. Поиск диссонансов выполняется с помощью параллельного алгоритма для графического процессора, ранее разработанного автором данной статьи. Для визуализации найденных аномалий предложены метод построения тепловой карты диссонансов, имеющих различные длины, и алгоритм нахождения в построенной тепловой карте наиболее значимых диссонансов независимо от их длин.
В статье представлена новая версия масштабируемого итерационного метода линейного программирования, получившего название «апекс-метод». Ключевой особенностью этого метода является построение пути, близкого к оптимальному, на поверхности допустимой области от определенной начальной точки до точного решения задачи линейного программирования. Оптимальный путь - это путь движения по поверхности многогранника в направлении максимального увеличения или уменьшения значения целевой функции в зависимости от того, ee максимум или минимум необходимо найти. Апекс-метод основан на схеме предиктор-корректор и состоит из двух стадий: Quest (предиктор) и Target (корректор). На стадии Quest вычисляется грубое начальное приближение задачи линейного программирования. Основываясь на этом начальном приближении, на стадии Target вычисляется решение задачи линейного программирования с заданной точностью. Основная операция, используемая в апекс-методе, - это операция, которая вычисляет псевдопроекцию, являющуюся обобщением метрической проекции на выпуклое замкнутое множество. Псевдопроекция используется как на стадии Quest, так и на стадии Target. Представлен параллельный алгоритм, использующий фейеровское отображение для вычисления псевдопроекции. Получена аналитическая оценка ресурса параллелизма для этого алгоритма. Также приведен алгоритм, реализующий стадию Target, и доказана его сходимость. Описаны вычислительные эксперименты на кластерной вычислительной системе по применению апекс-метода для решения различных задач линейного программирования.
Издательство
- Издательство
- ЮУрГУ
- Регион
- Россия, Челябинск
- Почтовый адрес
- 454080, Уральский федеральный округ, Челябинская область, г. Челябинск, просп. В.И. Ленина, д. 76
- Юр. адрес
- 454080, Уральский федеральный округ, Челябинская область, г. Челябинск, просп. В.И. Ленина, д. 76
- ФИО
- Александр Рудольфович Вагнер (Ректор)
- E-mail адрес
- admin@susu.ru
- Контактный телефон
- +7 (351) 2635882
- Сайт
- https://www.susu.ru