Однородный программный интерфейс для параллельных вычислений на кластере

Петряков Иван Владимирович
Бесплатно
В избранное
Работа доступна по лицензии Creative Commons:«Attribution» 4.0

Существует множество фреймворков и языков программирования для параллельных и распределенных вычислений, которые успешно применяются как в промышленности, так и в академических кругах. Автор считает, что расширить этот набор можно с помощью уже существующих языков программирования и написанных на них библиотек. Однако, эти библиотеки не приспособлены к работе на кластере. В этой работе изучается возможность адаптации функционального языка с помощью специальных управляющих объектов – ядер. Также демонстрируется, возможность построить высокоуровневый интерфейс для функционального языка, который полностью скрывает все трудности, с которыми сталкивается программист при работе с распределенными системами.

Текущие исследования по созданию интерфейса программирования
высокого уровня для суперкомпьютеров и кластеров направлены на то,
чтобы
• изменить существующий функциональный язык для параллельного
выполнения программы, написанной на этом языке, в кластере;
• создать движок, позволяющий выполнять направленный ациклический
граф задач (программ или скриптов) на кластере с учетом их
зависимостей.
Преимущество первого подхода заключается в том, что если у вас уже
есть последовательная программа, написанная на функциональном языке, вы
можете выполнить ее на кластере с использованием либо компилятора,
который генерирует параллельный код, либо библиотеки, которая
предоставляет те же функциональные формы (например, map, reduce),
которые реализованы для параллельного выполнения на нескольких узлах
кластера. Однако этот подход представляет некоторые сложности: обработка
спекулятивного выполнения различных ветвей кода и устойчивость к сбоям
узлов кластера. Вероятно, главный недостаток этого подхода заключается в
том, что на функциональных языках написано не так много
высокопроизводительных приложений: большинство из них написано на
низкоуровневых императивных языках по соображениям эффективности, и
этот подход не предоставляет средств для их выполнения в кластере.
Преимущество второго метода по сравнению с подходом на
функциональном языке состоит в том, что он позволяет выполнять
произвольные программы и сценарии в кластере и определять
информационные зависимости между ними. К сожалению, большинство
механизмов рабочих процессов используют XML для определения задач, их
аргументов и зависимостей. Этот подход неэффективен, поскольку XML не
является языком программирования, и добавление тегов, представляющих
циклы, условные выражения и другие важные конструкции потока
управления, приводит к созданию языка сценариев с синтаксисом языка
разметки – возможно, наиболее неинтуитивно понятным и многословным
способом написания программ. Несмотря на эти недостатки, существуют
реализации потоков задач, которые популярны и достаточно развиты, чтобы
их можно было использовать для решения реальных проблем.
Таким образом, можно сказать, что функциональный подход не
является достаточно высокоуровневым, чтобы его можно было использовать
для написания сценариев, выполняющих существующие программы в
сложном потоке задач, а потоки задач слишком высокоуровневы для
написания сценариев общего назначения. Причина отсутствия
промежуточного подхода заключается в том, что планировщики пакетных
заданий предоставляют интерфейс для выделения узлов кластера и запуска
на них любого исполняемого файла, но интерфейс для написания
параллельных программ (MPI) – это просто библиотека, которая динамически
связывается с исполняемым файлом и не предоставляется планировщиком.
Функциональный подход часто основан на использовании библиотеки MPI, а
потоки задач основаны на интерфейсе планировщика пакетных заданий. Это
создает разрыв между технологиями, который не позволяет создать
универсальный и унифицированный интерфейс для выполнения вычислений
в кластере, и заставляет выбрать один из двух подходов.
В то же время планировщики заданий, которые используются при
анализе больших данных, такие как YARN [21], не имеют этой проблемы,
поскольку они предоставляют низкоуровневый интерфейс на основе Java для
запуска приложений. Различные среды программирования, такие как Apache
Hadoop [1] и Apache Storm [2], построены поверх этого интерфейса, чтобы
обеспечить интерфейс высокого уровня для написания определенных видов
программ, таких как пакетная обработка или работа в реальном времени.
Существуют интерфейсы более высокого уровня, такие как Oozie [11]. Эта
иерархическая архитектура позволяет выбрать правильный уровень
абстракции для программы и представляет собой единый интерфейс для
запуска приложений на кластере.
Существует множество фреймворков и языков программирования для
параллельных и распределенных вычислений [17, 19, 22, 23], которые
успешно применяются как в промышленности, так и в академических кругах,
однако все они изолированы и самодостаточны. Основная причина
отсутствия общего знаменателя между этими фреймворками и языками
заключается в том, что нет протокола или низкоуровневого языка для
распределенных вычислений. Для последовательных вычислений у нас есть
байт-код (например, LLVM [13], байт-код Java, байт-код Guile), который
используется в качестве промежуточного, переносимого и универсального
представления программы, написанной на любом языке; также у нас есть
ассемблер, который не является переносимым, но все же является
популярным промежуточным представлением.
Почему общий низкоуровневый язык существует для
последовательных вычислений, но не существует для параллельных и
распределенных вычислений? Одна из причин, которая относится как к
распределенным, так и к параллельным вычислениям, заключается в том, что
люди все еще думают о программах как о последовательности шагов – так же,
как люди сами выполняют сложные задачи. Императивные языки, на
которых программы записываются в виде последовательности шагов, по-
прежнему преобладают в промышленности и академических кругах; это
контрастирует с непопулярными функциональными языками, на которых
программы написаны как композиции функций без подразумеваемого
порядка вычислений. Другая причина, которая относится к распределенным
вычислениям, заключается в том, что эти вычисления по своей сути
ненадежны и не существует универсального подхода для обработки выхода
из строя узлов кластера. Хотя императивные языки позволяют писать более
эффективные программы, они не обеспечивают защиты от взаимных
блокировок и не гарантируют отказоустойчивость. Кроме того, их намного
сложнее писать, так как человеку приходится работать с изменяемым
состоянием (локальные и глобальные переменные, объекты и т. д.), и трудно
держать это состояние в голове при написании кода. Функциональные языки
минимизируют использование изменяемого состояния, обеспечивают
частичную защиту от взаимных блокировок (при условии, что программист
не использует блокировки вручную) и могут быть изменены для обеспечения
отказоустойчивости. С точки зрения автора, люди понимают потенциал
функциональных языков, но еще не осознали этот потенциал, чтобы
получить все их преимущества; люди осознали весь потенциал
императивных языков, но не знают, как избавиться от их недостатков.

Заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 5 000 ₽

Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям

    Нажимая на кнопку, я соглашаюсь на обработку персональных данных и с правилами пользования Платформой

    Хочешь уникальную работу?

    Больше 3 000 экспертов уже готовы начать работу над твоим проектом!

    Дарья С. Томский государственный университет 2010, Юридический, в...
    4.8 (13 отзывов)
    Практикую гражданское, семейное право. Преподаю указанные дисциплины в ВУЗе. Выполняла работы на заказ в течение двух лет. Обучалась в аспирантуре, подготовила диссерт... Читать все
    Практикую гражданское, семейное право. Преподаю указанные дисциплины в ВУЗе. Выполняла работы на заказ в течение двух лет. Обучалась в аспирантуре, подготовила диссертационное исследование, которое сейчас находится на рассмотрении в совете.
    #Кандидатские #Магистерские
    18 Выполненных работ
    Екатерина Д.
    4.8 (37 отзывов)
    Более 5 лет помогаю в написании работ от простых учебных заданий и магистерских диссертаций до реальных бизнес-планов и проектов для открытия своего дела. Имею два об... Читать все
    Более 5 лет помогаю в написании работ от простых учебных заданий и магистерских диссертаций до реальных бизнес-планов и проектов для открытия своего дела. Имею два образования: экономист-менеджер и маркетолог. Буду рада помочь и Вам.
    #Кандидатские #Магистерские
    55 Выполненных работ
    Антон П. преподаватель, доцент
    4.8 (1033 отзыва)
    Занимаюсь написанием студенческих работ (дипломные работы, маг. диссертации). Участник международных конференций (экономика/менеджмент/юриспруденция). Постоянно публик... Читать все
    Занимаюсь написанием студенческих работ (дипломные работы, маг. диссертации). Участник международных конференций (экономика/менеджмент/юриспруденция). Постоянно публикуюсь, имею высокий индекс цитирования. Спикер.
    #Кандидатские #Магистерские
    1386 Выполненных работ
    Кирилл Ч. ИНЖЭКОН 2010, экономика и управление на предприятии транс...
    4.9 (343 отзыва)
    Работы пишу, начиная с 2000 года. Огромный опыт и знания в области экономики. Закончил школу с золотой медалью. Два высших образования (техническое и экономическое). С... Читать все
    Работы пишу, начиная с 2000 года. Огромный опыт и знания в области экономики. Закончил школу с золотой медалью. Два высших образования (техническое и экономическое). Сейчас пишу диссертацию на соискание степени кандидата экономических наук.
    #Кандидатские #Магистерские
    692 Выполненных работы
    Катерина В. преподаватель, кандидат наук
    4.6 (30 отзывов)
    Преподаватель одного из лучших ВУЗов страны, научный работник, редактор научного журнала, общественный деятель. Пишу все виды работ - от эссе до докторской диссертации... Читать все
    Преподаватель одного из лучших ВУЗов страны, научный работник, редактор научного журнала, общественный деятель. Пишу все виды работ - от эссе до докторской диссертации. Опыт работы 7 лет. Всегда на связи и готова прийти на помощь. Вместе удовлетворим самого требовательного научного руководителя. Возможно полное сопровождение: от статуса студента до получения научной степени.
    #Кандидатские #Магистерские
    47 Выполненных работ
    Петр П. кандидат наук
    4.2 (25 отзывов)
    Выполняю различные работы на заказ с 2014 года. В основном, курсовые проекты, дипломные и выпускные квалификационные работы бакалавриата, специалитета. Имею опыт напис... Читать все
    Выполняю различные работы на заказ с 2014 года. В основном, курсовые проекты, дипломные и выпускные квалификационные работы бакалавриата, специалитета. Имею опыт написания магистерских диссертаций. Направление - связь, телекоммуникации, информационная безопасность, информационные технологии, экономика. Пишу научные статьи уровня ВАК и РИНЦ. Работаю техническим директором интернет-провайдера, имею опыт работы ведущим сотрудником отдела информационной безопасности филиала одного из крупнейших банков. Образование - высшее профессиональное (в 2006 году окончил военную Академию связи в г. Санкт-Петербурге), послевузовское профессиональное (в 2018 году окончил аспирантуру Уральского федерального университета). Защитил диссертацию на соискание степени "кандидат технических наук" в 2020 году. В качестве хобби преподаю. Дисциплины - сети ЭВМ и телекоммуникации, информационная безопасность объектов критической информационной инфраструктуры.
    #Кандидатские #Магистерские
    33 Выполненных работы
    Екатерина Б. кандидат наук, доцент
    5 (174 отзыва)
    После окончания института работала экономистом в системе государственных финансов. С 1988 года на преподавательской работе. Защитила кандидатскую диссертацию. Преподав... Читать все
    После окончания института работала экономистом в системе государственных финансов. С 1988 года на преподавательской работе. Защитила кандидатскую диссертацию. Преподавала учебные дисциплины: Бюджетная система Украины, Статистика.
    #Кандидатские #Магистерские
    300 Выполненных работ
    Глеб С. преподаватель, кандидат наук, доцент
    5 (158 отзывов)
    Стаж педагогической деятельности в вузах Москвы 15 лет, автор свыше 140 публикаций (РИНЦ, ВАК). Большой опыт в подготовке дипломных проектов и диссертаций по научной с... Читать все
    Стаж педагогической деятельности в вузах Москвы 15 лет, автор свыше 140 публикаций (РИНЦ, ВАК). Большой опыт в подготовке дипломных проектов и диссертаций по научной специальности 12.00.14 административное право, административный процесс.
    #Кандидатские #Магистерские
    216 Выполненных работ
    Дмитрий М. БГАТУ 2001, электрификации, выпускник
    4.8 (17 отзывов)
    Помогаю с выполнением курсовых проектов и контрольных работ по электроснабжению, электроосвещению, электрическим машинам, электротехнике. Занимался наукой, писал стать... Читать все
    Помогаю с выполнением курсовых проектов и контрольных работ по электроснабжению, электроосвещению, электрическим машинам, электротехнике. Занимался наукой, писал статьи, патенты, кандидатскую диссертацию, преподавал. Занимаюсь этим с 2003.
    #Кандидатские #Магистерские
    19 Выполненных работ

    Другие учебные работы по предмету