Как создавать параллельные программы, детерминированные по построению? Постановка проблемы и обзор работАннотация. Одна из основных проблем, делающих параллельное про-граммирование ненадежным, трудозатратным, подверженным ошибкам, а программы трудно отлаживаемыми, --недетерминированность процессов и результатов вычислений, когда несколько исполнений одной программы с одинаковыми входными данными могут выдавать разные результаты из-за другого порядка взаимодействия параллельных процессов. В связи с бурным ростом сложности программ для суперкомпьютеров, в последнее десятилетие приобретает популярность и становится всё более актуальной идея параллельных вычислений с детерминированностью, гарантированной языком и системой программирования. В статье анализируется проблема, как сделать параллельное програм-мирование как можно более детерминированным, и дается обзор некоторых подходов к ее решению. Также обсуждается задача разработки системы, предоставляющей возможность писать как детерминированный, так и неде-терминированный код с гарантиями прикладному программисту, что его программа будет детерминированной.Ключевые слова и фразы: модели параллельных вычислений, детерминированные про-граммы, функциональное программирование, объектно-ориентированное программирование. ВведениеОдна из фундаментальных причин, почему параллельное програм-мирование существенно сложнее последовательного, к которому при-выкли разработчики за десятилетия развития информационных техно-логий, --то, что оно в общем случае недетерминированное: несколько исполнений программы с одними и теми же исходными данными могут давать различные результаты из-за различающегося порядка Исследование выполнено в рамках НИР (госзадание ФАНО РОССИИ, регистра-ционный номер АААА-А17-117040610375-5) (1) .Исследование выполнено при поддержке РФФИ (проект № 16-01-00813-а) (2) .
Abstract. The paper is dedicated to an open T-system (OpenTS) -a programming system that supports automatic parallelization of computations for high-performance and distributed applications. In this paper, we describe the system architecture and input programming language as well as system's distinctive features. The paper focuses on the achievements of the last two years of development, including support of distributed, meta-cluster computations. Open T-System OutlineOpen T-System (Open TS) is a recent dynamic program parallelization technology for high-performance and distributed applications. It originates from functional and metaprogramming technologies [1, 2] and tries to achieve maximum performance of single/multi-processors, supercomputers, clusters and meta-clusters. Another goal was the development of easy-to-use tools for parallel programming, with high learning curve and easy legacy code support. With initial implementations of T-system dated back to nineties and end of eighties of the last century, Open TS is a third generation of the T-system [3]. The Open TS approach allows addressing in a uniform way parallel computing problem for mutli-core processors, SMP systems, computational clusters and distributed systems. As well, Open TS facilitates parallel applications with non-uniform parallelism grains or parallelism grains defined at runtime. Related WorkThe Open TS design utilizes many concepts of parallel computing. First of all, it devises high-level parallelizing approach, while many of them currently exist [4]. Secondly it utilizes an extension of C++ language to express parallelism, while many other extensions of C and C++ for parallel computing were developed [5]. Thirdly, the concept of T-system is based upon functional programming approach [1], that make it very similar to parallel implementations of functional languages [6]. At last, Open TS runtime implementation utilizes Distributed Shared Memory (DSM) [7], mutli-tier architecture [8] and C++ template-based design [9]. Here we note separately only small fraction of all works in this field, not comprehensive but representative, as we hope:
Институт программных систем им. А.К. Айламазяна РАН 2 Институт прикладной математики им. М.В. Келдыша РАН Аннотация. Авторы делятся опытом разработки специализированных Javaподобных языков программирования на современной платформе Eclipse Text Modelling Framework (Xtext). Обсуждается набор средств, составляющих эту систему метапрограммирования, и трудности их освоения.
Струи как основа реализации понятия Т-процесса для платформы JVM Аннотация. Распространение и доступность современных параллельных аппаратно-программных платформ демонстрирует отставание уровня инструментов разработки параллельных приложений от нужд разработчиков программ. В ИПС РАН ведется разработка подхода к распараллеливанию программ, основанного на использовании модели вычислений «самотрансформация вычисляемой сети». В данной работе рассматриваются различные варианты подходов к реализации для платформы JVM понятия «Тпроцесс»-базового понятия данной модели вычислений. Анализируются потенциальные проблемы, связанные с реализацией понятия «Т-процесс», как на основе классических потоков ОС/JDK, так и в случае внесения поддержки легковесных потоков непосредственно в код виртуальной машины. Предлагается подход к реализации Т-процессов, основанный на использовании понятия струй, т.е. легковесных потоков, реализуемых вне ядра JVM. Приводятся результаты экспериментального сравнения подходов к реализации понятия «Т-процесс», основанных на использовании классических потоков и струй (англ. fibers). Анализируется эффект от использования струй для реализации модели вычислений «самотрансформация вычисляемой сети», используемой в разрабатываемом языке параллельного программирования ajl для платформы JVM. Ключевые слова и фразы: реализация языков программирования, параллельные вычисления, платформа JVM, автоматическое динамическое распараллеливание, потоки, струи. Введение Широкое распространение и доступность современных параллельных аппаратно-программных платформ в области вычислительных средств повседневного использования-таких, как снабженные многоядерными процессорами настольные и планшетные компьютеры, Исследование выполнено в рамках НИР «Методы и средства разработки эффективного программного обеспечения, ориентированные на вычислительные системы, построенные на основе микропроцессоров с многоядерной архитектурой, и формальные основы высокоуровневых языков программирования для суперкомпьютеров с гибридной архитектурой» (№ г/р 01201455360) (госзадание ФАНО России).
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.