Просмотр содержимого документа
«Математические вычисления в облачных сервисах»
ФГОУ ВО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М.Е. ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра информатики и вычислительной техники
Реферат
по теме:
«Математические вычисления
в облачных сервисах»
Выполнила: студентка группы МДФ-113
Медянкина Ю. В.
Проверила: Кормилицына Т.В.
Саранск 2018
1. История систем компьютерной алгебры
Когда речь заходит о математических вычислениях с помощью компьютера, то первыми на ум приходят приложения для криптографии или численного решения уравнений математической физики. Существует, однако, и другой пласт математического ПО — программы для аналитической математики или, как их обычно называют, системы компьютерной алгебры (Computer Algebra Systems, CAS). CAS используются старшеклассниками, студентами, аспирантами, инженерами и научными работниками, а спектр решаемых с их помощью задач простирается от школьной алгебры до сложнейших проблем современной математики. Естественно, CAS не могут сами сформулировать конечную цель алгебраических преобразований, но они прекрасно автоматизируют рутинные математические операции — дифференцирование, интегрирование, факторизацию, разложение в ряды и т.п.
Первые системы компьютерной алгебры появились в 60-х годах ХХ века на гребне интереса к проблемам искусственного интеллекта. Принципы, заложенные в этих системах, в общих чертах сохраняются во всех CAS и по сей день. В 1968 г. появилась система Macsyma, написанная на языке Lisp и являвшаяся настоящим шедевром программирования своего времени. Она успешно дожила до сегодняшнего дня в виде своего открытого варианта Maxima и является старейшей из существующих CAS.
Современный рынок коммерческих CAS делят между собой три «гиганта» - Mathematica, Maple и Mathcad, появившиеся еще в 80-х годах. Концептуально все они похожи и предоставляют удобный интерфейс в виде «рабочих листов» или «блокнотов», поделенных на ячейки. В каждой ячейке имеется строка ввода математического выражения и область вывода, в которой отображается результат преобразования, график функции или какой-либо иной объект. Особое внимание уделяется построению графиков. Поддерживаются двух и трехмерные графики разных типов с интерактивным редактированием элементов, масштабированием и вращением с помощью мыши, анимацией, возможностью экспорта в различные форматы.
Современные коммерческие CAS постепенно превратились в сложные «комбайны», в которых символьные алгебраические преобразования играют далеко не главную роль. Это особенно заметно на примере Mathematica, которая сейчас умеет работать с геодезическими и картографическими данными, химическими формулами, трехмерными моделями белков, данными медицинской томографии, экономическими моделями и даже эффектами для компьютерных игр.
2. Уход в облака
В последние годы основные коммерческие CAS начали активно уходить от модели локальных приложений и сделали ставку на онлайн-сервисы. Так компания MapleSoft, создатель CAS Maple, запустила сервис MapleNet, а компания Wolfram выпустила в свет сразу два онлайн-сервиса - webMathematica и Wolfram Alpha. Последний является очень интересным гибридом обширной базы знаний, интеллектуальной поисковой системы и онлайн-интерфейса CAS Mathematica.
Существует несколько причин такого крутого изменения вектора развития CAS. Первая причина — экономическая. Коммерческие CAS — очень дорогие программы со стоимостью индивидуальной лицензии в сотни или даже тысячи долларов. При этом рядовые пользователи не используют даже нескольких процентов их огромных возможностей и не готовы за них платить. Покупка недорогой подписки на веб-сервис выглядит намного привлекательнее и позволяет компаниям увеличить пользовательскую базу и прибыль. Вторая причина — поддержка кроссплатформенности. На сегодня переход к web-интерфейсу — самый простой путь переноса функциональности CAS на все существующие платформы, включая мобильные. Наконец, третья причина — банальная мода на «облачность» и веб-ориентированность.
Уходу «в облака» способствует и программная архитектура CAS. Все они состоят из аналитического ядра, которое является, по сути, интерпретатором командного языка данной CAS, и оболочки, обеспечивающей взаимодействие с пользователем. Построением графиков или отображением формул в графическом виде занимается оболочка. Базовая функциональность аналитических ядер CAS была заложена десятилетия назад, а все дальнейшее развитие программ сосредоточилось во все более удобных и дружественных к пользователю графических надстройках над ними. Такая архитектура очень просто преобразуется в облачный сервис — достаточно только создать оболочку в виде web-приложения и запустить ядро на сервере.
3. Свободные CAS
Ядра CAS чрезвычайно сложны в алгоритмическом плане. С их разработкой и поддержкой могут справится только высококлассные математики и программисты, что делает создание CAS «с нуля» практически невозможным для энтузиастов свободного ПО. Большинство существующих открытых CAS — прямые наследники коммерческих систем, которые были переведены в ранг проектов с открытым кодом в силу различных причин. Самой популярной открытой CAS является Maxima. Ее конкуренты — Axiom, Yacas и SymPy гораздо менее распространены. У открытых CAS есть два главных преимущества — бесплатность и простота. Открытые CAS остаются специализированными продуктами для аналитических преобразований и построения графиков, которые не претендуют на роль «швейцарского ножа».
С академической точки зрения «качество» CAS определяется количеством поддерживаемых математических абстракций и строгостью преобразований. В этом аспекте свободные CAS мало чем уступают коммерческим. Однако для конечного пользователя гораздо важнее удобство интерфейса и синтаксиса, возможности построения графиков и экспорта результатов, качество системы помощи. Все это определяется оболочкой, и именно в этом коммерческие системы пока на голову превосходят свободные аналоги. В последнее время энтузиасты свободного ПО стали понимать бесперспективность создания отдельных графических оболочек для каждой свободной CAS, которые не в состоянии конкурировать с коммерческими аналогами и распыляют усилия и без того небольшого числа грамотных разработчиков. Идея интегрирующей оболочки, которая могла бы работать с различными аналитическими ядрами и имела бы качественную и, по возможности, интерактивную графику, витала в воздухе. Так в 2005 г. появилась система Sage.
4. Система Sage
Sage позиционируется как универсальная математическая среда, объединяющая символьные вычисления, численные расчеты, визуализацию данных и математическое программирование. Она объединяет множество различных открытых программ и библиотек (как чисто математических, так и более общего назначения) в рамках единого интерфейса. Целью проекта является создание реальной открытой альтернативы коммерческим математическим пакетам Maple, Mathematica и Matlab.
Технически Sage является коллекцией модулей, написанных на языке Python, которые интегрируют в единую систему такие программы, такие как Maxima, Axiom, Singular, gnuplot, R, octave, LaTeX и т.д. Всего в Sage используется около ста независимых компонентов. Командный язык Sage является расширением языка Python, а синтаксис используемых математических пакетов и детали взаимодействия компонентов полностью скрыты от пользователя.
Sage не является программой или библиотекой в привычном понимании. Это, скорее, особым образом настроенный дистрибутив Linux с большим количеством предустановленных пакетов и библиотек, версии которых специально проверены на совместимость. Локальная инсталляция Sage возможна только в Linux и MacOS X, причем установка происходит по принципу «все в одном», вместе со всеми своими зависимостями, не смотря на то, что некоторые из компонентов могут уже присутствовать в системе. Размер инсталляционного пакета достигает 500 Мб, не считая дополнительных компонентов.
Единственный способ локальной установки Sage в Windows — запустить специальный виртуальный образ системы с предустановленной Sage в VirtualBox. Существует также Live CD, который загружается в полностью функциональную Linux-систему, готовую для работы с Sage.
Самой интересной особенностью Sage является то, что она изначально спроектирована в виде web-приложения, причем серверная часть может быть запущена как локально, так и удаленно, «в облаке». Sage предоставляет полностью бесплатный онлайн-сервис , который доступен с любого устройства в любой точке мира, и напрямую конкурирует с аналогичными сервисами коммерческих CAS.