ФГОУ ВО «МОРДОВСКИЙ
ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М.Е. ЕВСЕВЬЕВА»
Физико-математический
факультет
Кафедра информатики и
вычислительной техники
Реферат
по теме:
«Проведение математических
вычислений
в облачных сервисах»
Выполнила: студентка группы
МДМ-112
Чельманова А.В.
Проверила: Кормилицына Т.В.
Саранск 2017
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.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.