Статья опубликована в рамках: XXV Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 15 октября 2018 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ОБЛАЧНЫЙ СЕРВИС ДЛЯ НАУЧНЫХ ВЫЧИСЛЕНИЙ
В современном обществе все большую популярность набирают облачные сервисы. Облачный сервис понимается, как некоторый доступный ресурс в сети, который может быть использован без знания его внутренней структуры. А облачность представляет собой пользовательский интерфейс для использования какого-то ресурса. Самое распространенное мнение об образовании термина «облачный» происходит из мнения о том, что Интернет изображался в виде облака: скрытая от пользователя структура, находящаяся в сети, и является этим самым облаком. И как это часто бывает сначала появляется концепция, а уже потом применение облачности (это стало возможным с развитием соответствующих технологий), как было, например, с функциональными языками программирования, которые были описаны задолго до их популярности.
Популярность набирают облачные хостинги Amazon, cloud9, они предоставляют вычислительные ресурсы. Данные облачные хостинги позволяют выполнять код на V8 (JavaScript от Mozilla). Этот язык по многим параметрам совместим с браузерным JavaScript, это позволяет создавать переносимый код. Каждая программа в отдельности может быть исполнена как на мощном облачном вычислителе, так и на персональной рабочей станции. Программное обеспечение выполняется внутри браузера. Данное исполнение выступает безопасным для пользователя. В сети Интернет растет количество сервисов, представляющих различные услуги с вычислениями. Сама мысль того, что можно в любой момент зайти на соответствующую страницу в сети и выполнить интересующий код, не имея компилятора, является очень актуальной. Данные сервисы разнятся на те, которые рассчитаны на исключительно короткие программы, и те, которые предоставляют среду разработки с подсветкой синтаксиса, с группировкой по проектам, и так далее. Не все ресурсы являются разработанными, явной нехваткой выступают ресурсы с массивным параллелизмом.
Если использовать данную систему в научных и образовательных целях, то у научной, цель будет масштабируемость, а в случае с образовательной – доступность. Мнения о наилучшем учебном языке разнятся. Наиболее выигрышным будет язык программирования Sisal.
Универсальность описания параллелизма требуется для масштабируемости и это возможно достигнуть если язык программирования приближается к языку описания задач, а не к языку описания алгоритмов. Рассмотрим приоритетные стороны Sisal в соотнесении с другими параллельного программирования.
- Однократное присваивание.
Sisal использует однократное присваивание, как и другие функциональные языки программирования. Этот метод ведет к тому, что каждое значение не должно изменяться, присваиваться повторно, а может описываться в программе только один раз.
- Массивы и потоки.
Данное их использование не является обычным, так как с массивами становится понятнее описание матрицы, а также они не являются главным и последовательным элементом.
- Многословный синтаксис.
Данное свойство делает программы максимально читаемыми, а также упрощается долгосрочная поддержка этих программ. Исчезает надобность запутанно и коротко записывать функциональный язык.
- Обработка ошибок.
Популярный механизм try-catch, является не приемлемым, так как на определенном этапе возникают ошибки или происходит потеря детерминизма программы. В случае ошибки необходимо остановить все потоки, при наличии системы автоматического распараллеливания, и создать состояние до возникновения первой из ошибок вычисления. При этом необходимо учитывать, что первая обработанная ошибка может быть не первой по семантике языка. Это происходит потому, что поток с номером i может иметь набор итераций, в которой может быть самая первая ошибочная, в отличии от потока i-1 набор, где ошибочная в конце.
- Контроль времени исполнения.
Модель всюду завершаемых частичных вычислений реализует Язык Sisal. Это означает наличие специального «ошибочного» значения, в графе потока данных. Семантика языка может быть удобной для параллельных вычислений, а также сложного контроля со стороны системы времени исполнения (Run Time System) не требуется.
- Поддержка других языков программирования.
Интерпретатор на JavaScript реализуется без больших усилий при включение дополнительного языка. А также нет надобности в пошаговой отладке, так как эта система ориентирована на функциональные языки программирования. Упрощены требования к компилятору, ведь нет необходимости вычислять выражения без полного описания программы.
Что же интересного мы можем рассмотреть в структуре системы. Распределенные системы, являются часто выбираемыми из-за их надежности и способности при выходе из строя или недоступности какой-то из частей, это не будет означать недоступность системы. А также при перемещении пользователя не будет требоваться специальная настройка сетевых дисков или постоянный перенос файлов. Процесс хранения универсален, так как есть возможность отменить изменения, сделанные когда-то. Для преподавателя это возможность проследить процесс решения задачи в зависимости от времени. Система будет автоматически сохранять данные через заданные интервалы времени, это удобно и для студента.
Следует обратить внимание на несколько важных особенностей системы:
- Иерархия
Особенностью облачных систем принято называть распределение ресурсов. Для учебных и для научных задач основным требованием является ограничение их доступности для посторонних пользователей. Так появилось в использовании иерархия пользователей. Где происходит контроль за нижестоящими членами.
- Версионность
Версионность стала обыденностью, но в образовательных целях нужно дополнительно использовать темпоральную версионность, где главный акцент сделан на времени, в которое эта версия была реализована. Сохранение происходит скрытым образом, что дает преподавателю дополнительные возможности контроля.
- Отладка
Отладка происходит при помощи значений, где есть возможность дополнительной отладки на графах в будущем. путём вычисления значений будет действовать интерпретатор. При помощи расширений системы происходят дополнительные отладки.
Примером использования данной системы, служит рисунок 1, где устройства, подключающиеся к облачному сервису обозначены цифрами от 1-3.
Рисунок 1. Структура системы
Внутри браузера на этих устройствах находится интерпретатор JavaScript, он используется на задачах меньшей размерности для реализации среды разработки и отладки программ. И даже если произойдет отключение от системы, то работоспособность интерпретатора сохранится.
Сервер обозначен цифрой 4, предоставляющий доступ к облаку. Доступ по фиксированному адресу, где возможно не выполнение каких-либо вычислительных задач.
Облачная структура представлена цифрой 5, она хранит пользовательские данные (программы, входная/выходная информация) и выполняет основные вычисления.
Данная система в применении может идеально прижиться в учебных заведениях. Кроме языка Sisal для образовательных целей также хорошо подойдут в использовании Haskell и OCaml.
Список литературы:
- McGraw J.R. et al. Sisal: Streams and iterations in a single assignment language, Language Reference Manual Version 1.2 // Lawrence Livermore Nat. Lab. Manual M-146 (Rev.1). — Livermore, CA, 1985.
- Касьянов В.Н. Функциональный язык SISAL 3.0 / В.Н. Касьянов, Ю.В. Бирюкова, В.А. Евстигнеев // Поддержка супервычислений и Интернет-ориентированные технологии. — Новосибирск, 2001. - С. 54-67.
дипломов
Оставить комментарий