The 10 reference contexts in paper Aleksandr Bakulev V., Marina Bakuleva A., Maksim Kozlov A., Sergei Skvortsov V., Александр Бакулев Валериевич, Марина Бакулева Алексеевна, Максим Козлов Александрович, Сергей Скворцов Владимирович (2016) “ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ ДЛЯ СОВРЕМЕННЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРОВ // TECHNOLOGY DEVELOPMENT OF PARALLEL PROGRAMS FOR MODERN MULTICORE PROCESSORS” / spz:neicon:statecon:y:2014:i:6:p:211-215

  1. Start
    5406
    Prefix
    Обзор известных методов и подходов Вопросы параллельного программирования, а также автоматизации распараллеливания последовательных программ для определенного класса параллельных архитектур имеют уже долгую историю
    Exact
    [1–3]
    Suffix
    . Прикладная информатика Проблема заключается в том, что, как правило, решались они в привязке к определенным типам архитектур параллельных компьютеров. Подобный подход требовал создания специализированных версий программ для каждой разновидности программно–аппаратной платформы параллельного вычислителя.
    (check this in PDF content)

  2. Start
    7408
    Prefix
    Для этого используются методы выявления зависимостей между операционными объектами программы (зависимостей по управлению) и зависимостей между информационными объектами программы (зависимостей по данным). Выявление потенциального параллелизма последовательной программы основывается на анализе зависимостей составляющих её частей друг от друга
    Exact
    [3,4]
    Suffix
    . В качестве подобных частей, в зависимости от выбранного масштаба рассмотрения – мелкозернистого или крупнозернистого, могут рассматриваться отдельные операторы (инструкции), группы операторов присваивания, блоки, итерации цикла, условные операторы, выполнение процедур после вызова и т.д.
    (check this in PDF content)

  3. Start
    7880
    Prefix
    рассмотрения – мелкозернистого или крупнозернистого, могут рассматриваться отдельные операторы (инструкции), группы операторов присваивания, блоки, итерации цикла, условные операторы, выполнение процедур после вызова и т.д. Взятая за основу модель крупнозернистого параллелизма, позволяет выбрать в качестве единицы планирования группы операторов, объединённые в регионы
    Exact
    [5]
    Suffix
    . Рассмотрим различные типы отношений, возможные между регионами gi, gj ∈ G с позиции их потенциального параллельного исполнения. 1. Одновременность gi δpar gj. Регионы gi, gj могут выполняться одновременно и обращаться к используемым ячейкам памяти в произвольном порядке. 2.
    (check this in PDF content)

  4. Start
    8786
    Prefix
    Выявление отношений между регионами позволит выразить потенциальный параллелизм последовательной программы таким образом, чтобы это не повлияло на корректность полученного при её параллельном исполнении результата. Большинство методов анализа зависимостей основаны на графовом представлении программы
    Exact
    [3–8]
    Suffix
    . Они выполняют построение графов зависимостей по данным и по управлению и делятся в свою очередь на две большие группы: статические и динамические. Статические методы выполняются на этапе трансляции исходного текста программы [4, 9–11].
    (check this in PDF content)

  5. Start
    9029
    Prefix
    Они выполняют построение графов зависимостей по данным и по управлению и делятся в свою очередь на две большие группы: статические и динамические. Статические методы выполняются на этапе трансляции исходного текста программы
    Exact
    [4, 9–11]
    Suffix
    . Возможности статических методов являются ограниченными, так как не всегда возможно выявить полностью все информационные зависимости между операторами, в связи с тем, что при анализе текста программы никогда не известны значения переменных, используемых в ней.
    (check this in PDF content)

  6. Start
    9942
    Prefix
    Всё это существенно затрудняет задачу анализа потока данных и снижает эффективность выявления параллелизма статическими методами. Динамические методы исследуют программу на этапе её выполнения
    Exact
    [5]
    Suffix
    . Динамический анализ программ основан на внедрении в исходную программу дополнительных операторов, проводящих анализ. Полученная программа выполняется на некотором тестовом наборе входных данных (или нескольких наборах), и во время выполнения собирается информация о фактических зависимостях, присутствующих в программе на данном конкретном наборе данных.
    (check this in PDF content)

  7. Start
    11351
    Prefix
    Метод спекулятивной многопоточности Наиболее подходящим методом динамического распараллеливания последовательных программ для многоядерных вычислительных систем с общей памятью, с учётом обозначенных выше недостатков, является метод спекулятивной многопоточности
    Exact
    [5, 12]
    Suffix
    . Суть метода состоит в следующем. Среди множества всех регионов V последовательной программы выявляются регионы, имеющие зависимости, характер которых не может быть установлен на этапе трансляции программы из-за неоднозначности.
    (check this in PDF content)

  8. Start
    15986
    Prefix
    В частности, Clojure использует API JVM для работы с многопоточными приложениями, но в отличии от Java он реализует его более эффективно за счет функциональной парадигмы. При этом Clojure обеспечивает неизменность (immutable) данных, что исключает проблемы блокировки ресурсов. Данный язык обладает следующими свойствами
    Exact
    [13]
    Suffix
    : – обеспечивает параллелизм на уровне данных; – имеет архитектурную независимость (за счёт использования JVM); – поддерживает параллельную модель акторов; – обеспечивает поддержку функций в виде объектов первого класса; – имеет конструкцию future, которая обеспечивает выполнение долго работающего кода одновременно с решением других задач; – поддерживает три механизма синхр
    (check this in PDF content)

  9. Start
    16613
    Prefix
    ; – имеет конструкцию future, которая обеспечивает выполнение долго работающего кода одновременно с решением других задач; – поддерживает три механизма синхронного и один асинхронного обновления данных. Примером реализации функционального подхода может служить разработка алгоритма и программного приложения для решения задачи сортировки методом параллельного слияния
    Exact
    [14]
    Suffix
    , который демонстрирует идею декомпозиции данных в рамках известного подхода «разделяй и властвуй» [15]. РазПрикладная информатика работанный алгоритм включает два этапа: деление списка на подсписки и параллельное слияние полученных подсписков.
    (check this in PDF content)

  10. Start
    16720
    Prefix
    Примером реализации функционального подхода может служить разработка алгоритма и программного приложения для решения задачи сортировки методом параллельного слияния [14], который демонстрирует идею декомпозиции данных в рамках известного подхода «разделяй и властвуй»
    Exact
    [15]
    Suffix
    . РазПрикладная информатика работанный алгоритм включает два этапа: деление списка на подсписки и параллельное слияние полученных подсписков. Первый этап не сильно отличается от классического варианта, где деление списка на подсписки выполняется рекурсивно.
    (check this in PDF content)