Контакты

Свободно распространяемые математические пакеты под gnu. Программы математического моделирования. Функции и переменные

Прикладные программные пакеты

Прикладные библиотеки

Вспомогательное ПО

Компиляторы

MPI

Средства анализа эффективности

Библиотеки

Использование GUI на кластере

Пакет AmberTools

AmberTools представляет собой набор программ для биомолекулярного моделирования и анализа. Пакет коммерческий. Доступная версия AmberTools12.

Программа установлена на суперкомпьютере "Ломоносов"

Пакет FireFly (PC-GAMESS)

Для работы с пакетом НЕОБХОДИМА лицензия. Даже если у вас она уже есть, обратитесь к автору программы (А.Грановскому) и запросите разрешение работать на суперкомпьютере. После получения разрешения, вам будет открыт доступ к программе.

Пакет FlowVision

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Gmsh

Gmsh - это бесплатный трехмерный генератор конечноэлементных сеток со встроенными пре- и постпроцессорным.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Текущая версия ПО

на Ломоносов - 3.0.5,

на Ломоносов-2 - 3.0.6, 3.0.7

Путь в файловой системе, куда установлен пакет

Ломоносов 2

Путь в файловой системе, куда установлен пакет

Суперкомпьютер "Ломоносов-2" (Версия 2015.1.29)

Результаты тестирования производительности пакета NAMD на суперкомпьютере "Ломоносов" и сравнение с Cray XE6 доступно по ссылке

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Пакет netCFD 4.1.3

NetCDF (network Common Data Form) - набор интерфейсов для доступа к массивам научных данных и свободно распространяемыые библиотеки для С, Фортран, С++, Java и других языков. Библиотеки netCDF поддерживают машинно-независимое представление данных. Сайт проекта: https://www.unidata.ucar.edu/software/netcdf/

Настроить окружение для работы с пакетом можно следующими командами:
module load intel; module load impi

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Octave

Свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня.

Программа установлена на суперкомпьютере "Ломоносов".

Путь в файловой системе, куда установлен пакет

/opt/software/octave-4.0.1/

Пакет OpenFOAM

На СК "Ломоносов" пакет собран в нескольких вариантах, но мы рекомендуем последнюю версию, установленную в каталог /opt/software/OpenFOAM-2.3.1 . Предварительно необходимо загрузить модуль openfoam/2.3.1. Перед использованием пакеты необходимо выполнить команду source /opt/software/OpenFOAM-2.3.1/etc/bashrc .

Пакет собран с IntelMPI, поэтому при запуске используйте скрипт-обёртку impi .

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Путь в файловой системе, куда установлен пакет

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Schrodinger

Программный пакет Schrodinger - это программное обеспечение для молекулярного моделирования и проектирования, использующее как лигандные, так и структурные методы.

Программа установлена на суперкомпьютере "Ломоносов-2".

Название и версия ПО

Schrödinger’s Release 2018-1, Schrödinger’s Release 2017-4

Пакет коммерческий есть триальная версия

Контакты для технической поддержки (производителя ПО)

Связаться с технической поддержкой можно через форму на сайте , так же на это странице есть “база знаний в которой можно попробывать найти ответ на свой вопрос”

Путь в файловой системе, куда установлен пакет

/opt/software/schrodinger2018-1

/opt/software/schrodinger2017-4

Описание процедуры установки и настройки пакета с указанием конкретных
параметров, использованных на системе

  1. Распаковать скаченный дистрибутив:

tar -xvf Schrodinger_Internet_Download.tar

  1. Перейти в распакованный каталог:

cd Schrodinger_Internet_Download

  1. Запустить установочный скрипт:
  1. Ввести информацию запрашиваемую установочным скриптом

Описание процедуры тестирования пакета

В данном пакете предусмотрена процедура диагностики, для диагностики запустите утилиту diagnostics котороая запускает проверки и сообщает результаты

/opt/software/schrodinger2018-1/installation_check

/opt/software/schrodinger2017-4/diagnostics

Пакет SPILADY

SPILADY - это компьютерная программа, написанная на Culham Center for Fusion Energy, Управление по атомной энергии Соединенного Королевства, Oxfordshire OX14 3DB, Великобритания, с марта 2014 по июль 2015. Это код динамики спин-решетки, предназначенный для ввода в качестве вводного компьютерного инструмента моделирования для студентов, ученых, исследователей, и другие, знакомых с молекулярной динамикой.

Описание процедуры установки .

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Пакет Turbomole

Пакет для решения задач квантовой химии ab initio. - домашняя страница пакета. Информация по работе с пакетом на кластере "Ломоносов" - .

Программа установлена на суперкомпьютере "Ломоносов".

Для использования пакета загрузите модуль vasp.

Пример запуска: sbatch -p test -N 3 --ntasks-per-node 8 impi vasp_std

Путь установки программы на

Пакет WRF

WRF - Weather Research & Forecasting Model - м одель метеорологических исследований и прогнозирования представляет собой мезомасштабную численную систему прогнозирования погоды следующего поколения, предназначенную как для атмосферных исследований, так и для оперативного прогнозирования.

Программа установлена на суперкомпьютере "Ломоносов".

Установлен в директории пользователя

Контакты для технической поддержки (производителя ПО) .

Anaconda

Пакет Anaconda2 позволяет скачать и установить разные версии Python и разнообразные API для Python, причем все API уже преднастроены и проверены, что значительно упрощает задачи по разработке и обучению нейронных сетей и других научных проектов.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Для того, чтобы воспользоваться пакетом Anaconda 2 в ssh сессии на Лом-2 нужно выполнить команду:

module load anaconda2/2.5.0

Эта команда подгружает в окружение вашей сессии окружение Python 2.7 anaconda, так же это окружение имеет ряд предустановленных API Python, ознакомиться со списком API можно командой:

Данное окружение может редактировать только администратор кластера.

Jupyter Notebook

Jupyter Notebook - это веб-приложение с открытым исходным кодом, которое позволяет хранить вместе код, изображения, комментарии, формулы и графики. Включает в себя: очистку и преобразование данных, численное моделирование, статистическое моделирование, визуализацию данных, машинное обучение и многое другое.

Для использования на Ломоносов-2 нужно настроить проброс X

Caffe

Среда для глубинного обучения, разработанная Янцином Цзя (Yangqing Jia) в процессе подготовки своей диссертации в университете Беркли. Caffe является открытым программным обеспечением, распространяемым под лицензией BSD license. Написано на языке C++, и поддерживает интерфейс на языке Python. Доступная версия caffe version 1.0.0

/opt/ccoe/caffe

Технические и другие вопросы можно задать

Программа установлена на суперкомпьютере "Ломоносов-2".

Keras

Keras - это высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх TensorFlow, CNTK или Theano. Он был разработан с упором на возможность быстрого экспериментирования.

Keras позволяет:

Легко и быстро создавать прототипы (благодаря удобству, модульности и расширяемости).
-Поддерживает как сверхточные сети, так и повторяющиеся сети, а также комбинации этих двух.
-Поддерживает работу на процессоре (CPU) и графическом процессоре (GPU).

Программа установлена на суперкомпьютере "Ломоносов-2".

MATLAB_Runtime

MATLAB Runtime - это автономный набор общих библиотек, который позволяет выполнять скомпилированные приложения или компоненты MATLAB. Пакет распространяется под лицензией MATLAB RUNTIME LICENSE если вы запускаете с помощью данного пакета скомпилированные приложения Matlab.

Текущая версия ПО

Путь в файловой системе, куда установлен пакет

Программа установлена на суперкомпьютере "Ломоносов".

Программа установлена на суперкомпьютере "Ломоносов-2".

Torchvision

TorchVision - это библиотека для управления изображениями. Она содержит служебные функции для обработки изображений, для того чтобы их было можно использовать в нейронных сетях. В нем так же размещаются популярные наборы изображений (datasets), архитектуры моделей и общих преобразований изображений для компьютерного зрения.

Программа установлена на суперкомпьютере "Ломоносов-2".

Компиляторы GNU

набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Программа установлена на суперкомпьютере "Ломоносов".

Компиляторы Intel (языки C/C++, Fortran77/Fortran90)

поддерживают и различные уровни оптимизации для 32-х и 64-х разрядных приложений в одном пакете, и технологию параллельного программирования OpenMP, что позволяет создавать эффективные программы для современных многоядерных процессоров. С компиляторами поставляется символьный отладчик Intel Debugger, который может работать в режимах совместимости с gdb или dbx и интегрируется с такими графическими оболочками для отладки, как ddd, Eclipse, Allinea. Отладчиком поддерживаются как многонитевые приложения OpenMP, так и написанные с использованием интерфейса native threads. Порожденные нити автоматически попадают под контроль отладчика, причем большинство его команд можно применять либо к одной, либо ко всем нитям одновременно.

Текущая версия: 12.0.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Intel VTune Amplifier XE 2011

новейший профилировщик производительности Inte VTune™ Amplifier XE создан на базе популярного анализатора производительности Intel. Он включает все функции Intel Parallel Amplifier, а также ряд дополнительных функциональных возможностей, специально предназначенных для разработчиков, которым нужен более комплексный подход.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Библиотека ACML

AMD Core Math Library (Основная математическая библиотека AMD) — библиотека, выпущенная компанией AMD . Эта библиотека реализует поддержку полезных математических функций, оптимизированных под процессоры производства AMD, но хорошо работает и для процессоров Intel.

Программа установлена на суперкомпьютере "Ломоносов".

Intel Composer XE

Инструменты для программирования кластеров объединены в пакет Intel Composer XE . Сюда входит библиотека Intel MPI, оптимизированная параллельная математическая библиотека Intel Cluster MKL и специальный инструмент Intel Trace Analyzer & Collector , предназначенный для создания эффективных масштабируемых параллельных программ.

Программа установлена на суперкомпьютере "Ломоносов".

Текущая версия: 2015.0.090.
Сайт: https://software.intel.com/en-us/intel-devtools-by-os/linux

Intel MPI Library

Библиотека Intel® MPI Library повышает производительность приложений в кластерах на базе архитектуры Intel®, реализуя высокопроизводительную спецификацию MPI-2 в нескольких инфраструктурах. Благодаря использованию данной библиотеки обеспечивается максимальная производительность конечного пользователя даже при изменении или обновлении межкомпонентных соединений. При этом значительные модификации программного обеспечения или операционной среды не требуются. Воспользуйтесь этой высокопроизводительной библиотекой интерфейса прохождения сообщений для разработки программ, которые могут работать в нескольких кластерных коммуникационных соединениях, выбранных пользователем в процессе выполнения приложения. Корпорация Intel также предоставляет бесплатный комплект рабочей среды для продуктов, разработанных при помощи библиотеки Intel MPI. Обеспечьте себе наилучшую в своем классе эффективность работы высокопроизводительных вычислительных систем корпораций, подразделений, отделов и рабочих групп

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Текущая версия: 5.0.1 ("Ломоносов")
Сайт: https://software.intel.com/en-us/mpi-library/documentation/get-started

PGI compiler

PGI Workstation - комплект компиляторов и инструментов для научных и инженерных целей. PGI Workstation доступен в редакциях для Fortran и C/C++. Включает в себя компиляторы Fortran 2003, FORTRAN 77,HPF для распараллеливания и оптимизации ПО,компиляторы OpenMP C++ и ANSI C. Компилятор C++ следует за ANSI-стандартом и поддерживает cfront версий 2 и 3. Все функции С++ совместимы с функциями Fortran и С. PGI Workstation включает в себя параллельного отладчика PGDBG OpenMP и MPI и компонент оптимизации профиля PGPROF, которые могут удалять баги и профилировать до восьми локальных MPI-процессов.Также содержит предварительно скомпилированную библиотеку передачи сообщений MPICH. Присутствует поддержка CUDA Fortran, ACML, OpenACC, FMA4

Текущая версия ПО

Путь в файловой системе, куда установлен пакет

Текущая версия: 11.2.0 ("Ломоносов")
Сайт: https://software.intel.com/mkl

OpenMPI

Open MPI является наследником LAM/MPI и поддерживается консорциумом партнеров из областей науки, разработчиков и производителей. OpenMPI - открытая бесплатная реализация технологии MPI-2. Она может использоваться для проведения параллельных расчётов на вычислительных кластерах.

  • полная поддержка MPI-2;
  • работа в гетерогенной среде;
  • Поддержжка работы под управлением системы очередей;
  • Работа в 32- и 64-битных средах;
  • Высокая производительность на всех платформах;
  • Высокая переносимость;
  • Хорошая масштабируемость;

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

PathScale Compiler Suite

компилятор для архитектуры с высокой степенью оптимизации. Является развитием компилятора MIPSPro, созданного компанией для микропроцессоров MIPS R10000. Разработан американской компанией PathScale

Программа установлена на суперкомпьютере "Ломоносов".

Python

Python — высокоуровневый язык программирования, ориентированный на повышение производительности разработчика и читаемости кода. Пакет свободный распространяется под лицензией Python Software Foundation License. Для установки нужной версии Python на Ломоносов-2 используется Пакет anaconda он позволяет создать окружение Python и устанавливать API для него.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

TotalView

Проприетарный отладчик для языков Си Си++ и Фортран, который работает на UNIX-совместимых ОС и Mac OS X, на нескольких платформах. Он позволяет контролировать нити исполнения (потоки,thread), показывать данные одного или всех потоков, может синхронизировать нити через точки останова. В отладчик также интегрированы средства для нахождения утечек памяти (позже стал доступен также и в виде отдельной программы MemoryScape) и для отладки кучи (heap-based memory allocation). TotalView включает возможность проверки изменений во время отладки. Он поддерживает удаленную отладку, а также параллельные программы, использующие MPI, OpenMP, UPC, GlobalArrays. Установлен на значительном количестве суперкомпьютеров из списка top500. Отлаживает программы, написанные на Си, Си++, Фортран.

Для использования предварительно выполните загрузку модуля:

module load totalview

Программа установлена на суперкомпьютере "Ломоносов".

Allinea DDT

Дебаггер Allinea DDT от компании Allinea Software предназначен специально для параллельных систем петафлопсных массштабов, то есть имеющих сотни тысяч процессорных ядер. Новая версия работает быстрее и более эффективна. Архитектура DDT такова, что время отклика пропорционально логарифму числа процессорных ядер. Тестировался и совершенствовался на реальных гигантских системах. Один из испытательных полигонов - суперкомпьютеры Cray XT5. Среди заказчиков - Министерство энергетики США.

Программа установлена на суперкомпьютере "Ломоносов".

ScaLAPACK

ScaLAPACK (Scalable Linear Algebra PACKage) — библиотека с открытым исходным кодом, включающая в себя подмножество процедур LAPACK, переработанных для использования на MPP-компьютерах, включая: решение систем линейных уравнений, обращение матриц, ортогональные преобразования, поиск собственных значений и др. В настоящее время она написана в стиле Single-Program-Multiple-Data с помощью явной передачи сообщений для межпроцессорного взаимодействия.

ScaLAPACK разработана с использованием PBLAS и BLACS, и предназначена для вычислений на любом компьютере или кластере поддерживающим MPI или PVM. Альтернативой ScaLAPACK является пакет функций PLAPACK.

Версия: 20120718

Программа установлена на суперкомпьютере "Ломоносов".

ATLAS

ATLAS (Automatically Tuned Linear Algebra Software) - библиотека, позволяющая автоматически генерировать и оптимизировать численное программное обеспечение для процессоров с многоуровневой организацией памяти и конвейерными функциональными устройствами. Базируется на BLAS 3 уровня (Level 3). ATLAS требует некоторого времени для изучения основных параметров архитектуры целевого компьютера, а затем на основе этих параметров получает "оптимальный" код.

Библиотека разработана в Argonne National Laboratory/MCS division. Распространяется бесплатно.

Программа установлена на суперкомпьютере "Ломоносов".

BLAS

BLAS (англ. Basic Linear Algebra Subprograms — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как умножение векторов и матриц. Он был впервые опубликован в 1979, и использован для создания бо́льших пакетов, например LAPACK. Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel, а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS). Тест LINPACK Benchmark в своей работе основывается в большой степени на DGEMM, подпрограмме BLAS.

LAPACK

LAPACK (Linear Algebra PACKage) — библиотека с открытым исходным кодом, содержащая решатели основных задач линейной алгебры. Написана на языке Fortran с использованием другой библиотеки BLAS.

Программа установлена на суперкомпьютере "Ломоносов".

FFTW

Библиотека FFTW является набором модулей на языках Си и Фортран для вычисления быстрого преобразования Фурье (БПФ). FFTW позволяет работать как с действительными, так и с комплексными числами, с произвольным размером входных данных, т.е. с длиной данных, не обязательно являющейся числом, кратным 2n. Библиотека также включает модули параллельной обработки БПФ, которые позволяют использовать ее на многопроцессорных машинах с общей и распределенной памятью.

Программа установлена на суперкомпьютере "Ломоносов".

Проброс X

Иногда бывает нужно поработать с GUI утилитами на вычислительном кластере. Для этого понадобиться две программы Putty и Xming. Putty выступает клиентом SSH и передаёт данные xserver черех ssh. Xming это портированный X Window Server для Windows. Смысл в том, что Putty передаёт X-терминальные данные через SSH, а локальный X сервер отрисовывает картинку, в нашем случаи X сервером выступает Xming.

дипломная работа

1.1 Современные математические пакеты

Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, и как генератор графики или даже звука. Стандартными стали также средства взаимодействия с Интернетом, и генерация HTML-страниц выполняется теперь прямо в процессе вычислений. Теперь можно решать задачу и одновременно публиковать для коллег ход ее решения на своей домашней странице.

Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы (Computer Aided Engineering, пакеты математического моделирования) имеют встроенные функции символьных вычислений.

Так что же делают эти программы и как они помогают математикам? С помощью описываемого ПО можно сэкономить массу времени и избежать многих ошибок при вычислениях. Отметим, что спектр задач, решаемых подобными системами, очень широк :

Проведение математических исследований, требующих вычислений и аналитических выкладок;

Разработка и анализ алгоритмов;

Математическое моделирование и компьютерный эксперимент;

Анализ и обработка данных;

Визуализация, научная и инженерная графика;

Разработка графических и расчетных приложений.

Наиболее известными и приспособленными для математических символьных вычислений считаются следующие математические пакеты:

Пакет Mathematica, представленный на рисунке 1, повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде.

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

Рисунок 1. Mathematica

Таким образом, Mathematica -- это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемно-ориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой -- интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Mathematica, как система программирования, имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения появляется возможность подстраиваться под запросы любого пользователя.

К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.

Программа Maple -- своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MATLAB, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word .

Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты. Пакет позволяет создавать интегрированные среды с участием других систем и универсальных языков программирования высокого уровня. Когда расчеты произведены и требуется оформить результаты, то можно использовать средства этого пакета для визуализации данных и подготовки иллюстраций для публикации. Для завершения работы остается подготовить печатный материал в среде Maple, а затем можно приступать к очередному исследованию. Работа проходит интерактивно -- пользователь вводит команды и тут же видит на экране результат их выполнения (рисунок 2). При этом пакет Maple совсем не похож на традиционную среду программирования, где требуется жесткая формализация всех переменных и действий с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных и проверяется корректность выполнения операций, так что в общем случае не требуется описания переменных и строгой формализации записи.

Рисунок 2. Maple

Maple -- это удачно сбалансированная система и бесспорный лидер по возможностям символьных вычислений для математики. При этом оригинальный символьный движок сочетается здесь с легко запоминающимся структурным языком программирования, так что Maple может быть использована как для небольших задач, так и для серьезных проектов.

К недостаткам системы Maple можно отнести лишь ее некоторую «задумчивость», причем не всегда обоснованную, а также очень высокую стоимость этой программы.

Система MATLAB, представленная на рисунке 3, относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE.

MATLAB -- одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы -- MATrix LABoratory, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.

Библиотеки MATLAB отличаются высокой скоростью численных вычислений. Однако матрицы широко применяются не только в таких математических расчетах, как решение задач линейной алгебры и математического моделирования, обсчета статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Именно универсальность аппарата матричного исчисления значительно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. Поэтому MATLAB давно уже вышла за рамки специализированной матричной системы, превратившись в одну из наиболее мощных универсальных интегрированных систем компьютерной математики.

Рисунок 3. MATLAB

Из недостатков системы MATLAB можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MATLAB-программ (рисунок 4). Сегодня система MATLAB широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.

В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MATLAB, программа MathCad -- это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя. Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MATLAB. Однако по программе MathCad выпущено много книг и обучающих курсов. Сегодня эта система стала международным стандартом для технических вычислений, и даже многие школьники осваивают и используют MathCad.

Рисунок 4. MathCad

Для небольшого объема вычислений MathCad идеален -- здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft MS Excel прямо внутри MathCad-документа .

В общем, MathCad -- это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.

В качестве более дешевых, простых, можно отметить такие пакеты, как UMS, Microsoft MS Excel.

Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах. Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. Сейчас на рынке сосуществуют системы символьной математики самого разного калибра -- от рассчитанной на широкий круг потребителей системы MathCad до компьютерных монстров Mathematica, MATLAB и Maple, имеющих тысячи встроенных и библиотечных функций, широкие возможности графической визуализации вычислений и развитые средства для подготовки документации.

Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК .

Перейдем к пакетам наиболее часто используемых в школах при проведении уроков математики в старших классах. К ним относятся: Universal Math Solver (UMS), Microsoft MS Excel.

Программа UMS - "Универсальный математический решатель" позволяет решать задания из многих разделов алгебры и анализа. Знания "Универсального решателя" охватывают почти весь курс по алгебре и анализу средней школы и первых курсов вузов .

В отличие от ряда мощных математических пакетов, UMS доступен для быстрого изучения благодаря простому интерфейсу и расправляется с предложенными задачами исключительно "школьными" методами, оформляя все этапы решения так, как это бы сделал учитель (рисунок 5).

Если смотреть на практическую ценность Universal Math Solver шире, то приложение с успехом сослужит службу родителям, привыкшим контролировать выполнение домашних заданий ребёнком, и учителям математики. Последние могут использовать интерактивные возможности программы в учебном процессе, возлагая объяснение решений задач на "плечи" электронного педагога.

Universal Math Solver поставляется в двух редакциях - стационарной и сетевой. Стоимость годичной лицензии за одну инсталляцию первой версии составляет 3000 тенге, цена сетевой редакции - в три раза выше .

Рисунок 5. Universal Math Solve

К сожалению, в школьной практике нет возможности использовать такие мощные математические пакеты, как Mathematica, Mathcad, MathLab, Maple из-за дороговизны их лицензионных копий. Однако офисные приложения MS Office есть в каждой школе. Применение математической оболочки офисного табличного процессора MS Excel позволяет решать математические задачи высокой сложности.

Информационные системы в экономике

Так как по числу потребителей рынок офисных пакетов является одним из самых массовых, очевидно, что у Microsoft были и остаются конкуренты - компании, предлагающие альтернативные офисные продукты. Свои офисные пакеты имеют многие крупные компании...

Время от времени производители программного обеспечения выпускают исправления к своим программным продуктам. Как правило, исправления корректируют выявленную проблему...

Клиентское программное обеспечение

Между пакетами обновления и исправлениями нет больших отличий. Как правило, в состав пакета обновления входят несколько уже протестированных исправлений. Пакеты обновления распространяются реже, чем исправления, но чаще...

Мезонинный адаптер USB 2.0

Для USB шины используются четыре типа пакетов. Пакет-маркер обозначает...

Операционная система LynxOS

LynuxWorks поставляет пакеты поддержки целевых архитектур в LynxOS 4.0 (BSPs) для широкого спектра платформ, таких, как любые AT- и CompactPCI-платы с процессором Intel, Motorola Sand-point 750, Intel XScale IQ80310, IBM 440GP, Motorola FADS-ZU, Thales VM-PC6a/c, Force PowerCore 680 G3 & G4, Motorola CompactPCI for PPC MCP750, MCPN750...

Основные этапы объектно-ориентированного проектирования

Пакет (package) -- основной способ организации элементов модели в языке UML. Каждый пакет владеет всеми своими элементами, т. е. теми элементами, которые включены в него...

Применение информационных систем в колледже

Конфигурация «Информационная система предприятия» предназначена для организации работы с корреспонденцией и внутренними документами организации, а так же для автоматизации ряда действий...

Применение пакетов прикладных программ в экономике

Одним из направлений внедрения информационных технологий в вузовское образование является применение прикладного программного обеспечения в учебном процессе...

Разработка программного продукта, оптимизирующего создание отчетов по базе данных

1) Операционная система: Microsoft Windows 7 Корпоративная. Среда разработки: Borland C++ Builder 6. Офисные пакеты: MS Office 2010. Дополнительное ПО: Mozilla Firefox 12.0, Toad for Oracle 10.6...

Разработка программной системы для автоматизации информационного обмена между страховыми медицинскими организациями

Информационный пакет - это защищенный паролем, архивный файл типа ZIP, в котором содержится фрагмент базы данных в виде набора взаимосвязанных таблиц формата DBF III (dBASE RUS cp866). Формат имени информационного пакета имеет следующий вид: NNNNNSSK.YMD...

Самым распространенным в мире офисным пакетом является Microsoft Office. По данным IDC, это приложение установлено более чем на 95% персональных компьютеров...

Экономическая эффективность внедрения информационных технологий (на примере ОАО "Сбербанк")

Для того, чтобы отправить в Банк созданные Вами документы, надо сформировать их в пакет. Для этого Вам нужно нажать кнопку «Пакеты». Вашему вниманию будет предоставлена таблица с отправленными Вами пакетами в банк...

Cвободная математика

Александр Бикмеев разбирается, насколько свободна компьютерная математика и насколько свободное ПО является математическим.

Любая наука, от физики до филологии, использует достижения математики. В связи с этим специалистам не-математикам необходимы средства, которые позволяли бы ставить задачи в математической форме и получать решения в виде формул или набора значений, то есть нужны системы компьютерной математики, способные взять на себя труд решения математических задач различными методами.

К сожалению, в нашей стране подобные программы распространены в достаточно узкой области научной деятельности, и не в последнюю очередь это обусловлено тем, что школьников и студентов не знакомят с профессиональными математическими пакетами, стоимость только одной лицензии на которые зачастую исчисляется тысячами и десятками тысяч рублей.

Мы предлагаем вам заглянуть в мир свободных математических пакетов, которые можно бесплатно загрузить из сети Интернет, использовать для любого вида изысканий (иногда с оговорками), а также, благодаря наличию исходных текстов, изучать их внутреннее устройство и, при желании, расширять их функциональность собственными силами.

Символьные вычисления

Системы компьютерной математики (СКМ) разрабатываются давно, и Maxima () была одной из первых. Изначально это был коммерческий продукт, но, не выдержав конкуренции, система перешла в разряд свободных.

Оболочка wxMaxima и пункт меню, позволяющий вывести или убрать с экрана панели математических операций.

Основное преимущество Maxima перед другими свободными системами – это поддержка символьных вычислений. То есть, введя аналитическое выражение или уравнение, вы можете получить результат также в аналитическом виде.

Maxima позволяет решать алгебраические уравнения, системы уравнений, выполнять операции интегрирования, дифференцирования, разложения в ряд и так далее. Кроме того, она умеет решать дифференциальные уравнения, граничные задачи, задачи Коши, выполнять алгебраические вычисления с матрицами, строить графики и поверхности, заданные различными функциями в декартовой и полярной системах координат. Все возможности перечислить трудно.

Для СКМ Maxima разработано несколько оболочек, наиболее удобной из которых (для начинающего пользователя) является wxMaxima (см. рис. 1). Начиная с версии 0.8.0, она стремительно меняется в лучшую сторону. Последняя версия (0.8.3) содержит черты таких известных коммерческих пакетов, как Maple и MathCAD . Работа в данной оболочке достаточно проста и позволяет получать приемлемые результаты уже через несколько минут использования. Многие операции, названия которых присутствуют в меню и на панелях инструментов, снабжены удобными мастерами, позволяющими решать задачи, даже не зная встроенного языка и команд Maxima . Ну и еще один немаловажный факт – все оболочки для данной СКМ русифицированы. Кроме того, изучив свободный пакет Maxima , обучающиеся смогут легче освоиться в коммерческих пакетах, что обусловлено как относительной схожестью интерфейса, так и используемым синтаксисом (особенно это касается Maxima и Maple ).

Система прекрасно документирована, но справочный материал представлен только на английском языке. Наш журнал публиковал учебные материалы о работе в СКМ Maxima (LXF81–86). Будучи консольным приложением, Maxima может работать в пакетном режиме, то есть ей можно передавать на обработку текстовый файл со списком команд и получать опять же текстовый файл с результатами, а если учесть, что вывод может быть оформлен средствами системы разметки TeX , то это позволяет использовать ее в качестве базы для построения собственных приложений. Одним из примеров такой разработки является расширение TeXmacs .

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

Дело в том, что наряду с большим количеством положительных моментов у Maxima присутствуют и отрицательные. Во-первых, конечный результат, особенно при решении сложных задач, во многом зависит от уровня знания математики и опыта использования данной СКМ, потому как иногда требуется выполнить предварительные преобразования самостоятельно. Во-вторых, Maxima очень хорошо работает с алгебраическими выражениями, но трансцендентные, логарифмические и подобные им вызывают у нее значительные трудности. Впрочем, если нельзя получить аналитическое решение, то всегда можно воспользоваться численным расчетом. В-третьих, возможности Maxima по построению сложных графиков или визуализации, например, векторного поля, не идут ни в какое сравнение с возможностями Maple . И, наконец, в-четвертых, для полноценной работы необходимо изучить многочисленные команды и константы Maxima , а это требует времени и терпения.

СКМ Maxima входит во многие дистрибутивы Linux или, по крайней мере, обязательно присутствует в репозиториях. Она включена в состав таких образовательных продуктов, как AltLinux Школьный, Edubuntu и EduMandriva.

Окно SMath Studio , в котором определена функция, вычислена ее производная и построен график.

Следует отметить, что инженеры все-таки привыкли работать с таким мощным приложением-калькулятором, как MathCAD . Это система инженерных расчетов, доступная для любых платформ (см. Коммерческие пакеты), но за серьезные деньги. Однако работодатели требуют, чтобы выпускники умели работать в этой системе. Как же быть образовательным учреждениям?

В нашей стране родился спасительный проект: SMath Studio (http://ru.smath.info/forum/). Это бесплатный, но, к сожалению, пока не свободный продукт, разработчик которого, Андрей Ивашов, пытается создать альтернативу монстру MathCAD , и у него это получается (см. рис. 2). Приложение разработано для среды .NET , а затем адаптировано для Mono .

SMath Studio позволяет выполнять аналитические вычисления, операции с матрицами, строить графики и вычислять производные, и даже поддерживает функции программирования. К сожалению, аналитическое интегрирование пока не поддерживается, но продукт успешно развивается, и осенью 2009 г. автор заканчивает разработку инфраструктуры, которая позволит использовать сторонние подключаемые модули. Возможно, тогда развитие приложения выйдет на новый уровень, и мы получим полноценную альтернативу MathCAD .

Следует также отметить, что весной 2009 года, по соглашению с автором, продукт был включен в состав образовательного дистрибутива EduMandriva. Несмотря на ограниченную функциональность, данное приложение позволяет выполнять повседневные вычисления на уровне школьников и студентов младших курсов, а также простые инженерные расчеты. А если учесть, что SMath Studio прекрасно чувствует себя на карманных компьютерах и смартфонах, управляемых Windows Mobile, то знакомство с ним для школьников и студентов просто обязательно.

На официальном сайте всегда присутствует документация в форматах DOC и ODT, а на официальном форуме можно задать вопросы разработчику или сообществу и обсудить использованные при разработке приложения алгоритмы.

Окно wxMaxima с результатами символьных вычислений и графиком функции

В завершение данного раздела хочется заострить внимание на том, что пакеты символьной математики в качестве результата выдают выражение, а не число. Рассмотрим пример, показанный на рис. 3, в котором определена пользовательская функция и для нее найдена вторая производная; затем функция проинтегрирована. Заодно построен график. Таким образом, школьники и студенты могут наглядно выполнить полный анализ функции. И это далеко не все: Maxima умеет упрощать выражения путем раскрытия скобок, приведения подобных слагаемых, выполнения подстановок и задания некоторых условий и допущений, накладываемых на выражение. Добавьте сюда возможность символьного решения уравнений и систем уравнений, а также дифференциальных уравнений, и поймете, что современному студенту без этих инструментов не обойтись, а преподаватели естественных дисциплин могут оживить уроки и практические занятия за счет ввода интерактивных заданий или демонстрационного материала.

Численные расчеты

Как известно, не каждую задачу можно решить аналитически, то есть получить решение в виде некой формулы. Тогда на помощь приходят различные численные методы, для получения решения с некоторой точностью. Наиболее известным представителем приложений для численных расчетов является система компьютерной алгебры (СКА) Matlab .

Matlab широко распространен по всему миру (см. Сравнение в LXF109), но стоимость даже образовательных лицензий не по карману не только школам, но и многим российским вузам. За рубежом также предпочитают считать деньги – и вкладывают человеческие ресурсы в разработку свободных аналогов Matlab . Рассмотрим некоторые из них.

Прежде всего, на мой взгляд, стоит остановится на проекте GNU Oсtave (http://www.gnu.org/software/octave/). Разработчики позиционируют эту систему как «высокоуровневый язык программирования для численных расчетов». Как и многие свободные *nix-проекты с давней традицией, она предоставляет интерфейс командной строки. Введите в терминале octave – и (если, конечно GNU Octave установлена на компьютере) перед вами появится приглашение данной системы. Начните вводить команды, и в терминале будут выводится результаты вычислений.

Интерфейс командной строки имеет свои преимущества, так как он практически не отнимает вычислительных ресурсов компьютера, оставляя всю мощь процессора на сами вычисления, а не на красивое отображение текста команд и результата расчетов. И все же современный пользователь редко готов мириться с этим.

. Оболочка qtOctave с выполненными вычислениями.

Долгое время GNU Octave не имела графического интерфейса, пока, наконец, не появился qtOctave (см. рис. 4). Эта оболочка весьма напоминает интерфейс Matlab и позволяет автоматизировать выполнение некоторых рутинных операций (например, построения графиков) при помощи мастеров.

Язык системы сделан максимально схожим с языком Matlab ; следовательно, человек, освоивший GNU Octave , сможет практически без переобучения работать и в Matlab , а именно это и необходимо работодателям. Кроме того, энтузиастами движения свободного ПО для системы создано достаточное количество пакетов расширений. За счет этого функционал самой СКА постоянно растет. Ну, а наличие исчерпывающей документации (пусть и на английском языке) как для системы, так и для пакетов расширений делает данный продукт не только выгодным, но и доступным для изучения.

К минусам относится не совсем удобный интерфейс оболочки qtOctave , тем более, что версия не обновлялась с осени 2008 года (создается впечатление, что проект заброшен). Пакеты расширений не богаты функциями и не блещут графическими возможностями; кроме того, они не равнозначны, поскольку ситуация такова, что один проект разработан студентом-первокурсником, а второй, например, командой преподавателей вуза. Зато это полностью свободный проект, с которым можно не беспокоиться о лицензионной чистоте получаемых решений.

Следующий пакет, который хотелось бы рассмотреть, называется Scilab (http://www.scilab.org), само имя которого указывает на схожесть с Matlab . Изначально это был также коммерческий продукт, и назывался он Blaise , а затем Basile . Его создателей вдохновили первые версии Matlab , и некоторое время они конкурировали. Однако в начале 90‑х фирма Simulog прекратила его продажу, и тогда шесть разработчиков французского национального исследовательского института (INRIA) основали проект Scilab .

Scilab выгодно отличается от своих собратьев по цеху проработанным интерфейсом, наличием достаточно большого числа специализированных пакетов расширений, а также тем, что он поддерживается Консорциумом Scilab , в состав которого входят крупные образовательные и научные учреждения со всего мира.

Интерфейс Scilab 5

Scilab – единственная свободная система, аналогичная Matlab , имеющая свой собственный инструмент для блочного моделирования под названием Scicos . В дистрибутиве продукта имеется встроенный редактор скриптов и функций с возможностью отладки. Scilab обладает развитыми графическими возможностями для создания высокотехнологичных приложений. С функциональностью системы можно ознакомиться, рассмотрев демонстрационные примеры – некоторые из них весьма впечатляют (выберите пункты меню ? > Демонстрация возможностей ).

Scilab имеет в своем составе функции не только для выполнения всевозможных операций над матрицами, но и для построения графиков и трехмерных поверхностей в различных системах координат, функции для работы с генетическими алгоритмами, решения задач на графах, статистические функции, средства имитационного моделирования и многое другое. Ежегодно проходит несколько конференций, посвященных использованию СКА Scilab в науке, образовании и на производстве.

Во всем мире вышло несколько книг, посвященных описанию работы в Scilab , а также решению ряда специализированных задач. К сожалению, ни одна из них не была переведена на русский язык. В России вышло всего две книги, одна – в рамках национального проекта, а во второй Scilab описывается наряду с несвободными пакетами. Наш журнал также неоднократно печатал учебники о работе в Scilab (LXF106–109 и ), и все же документации пока не хватает, а справочные материалы не всегда позволяют понять, как работает та или иная функция.

Freemat - впечатляющий результат того, на что способна команда из трех единомышленников.

Выход пятой версии Scilab ознаменовал собой начало нового этапа в развитии системы. Изменился интерфейс приложения (разработчики отказались от GTK -интерфейса), начал меняться инструмент блочного моделирования Scicos , который в октябре 2009 года должен поменять свое имя на Xcos .

Еще одной вариацией на тему Matlab является Freemat (); этот пакет имеет другую немаловажную общую черту с Matlab , а именно поддержку объектно-ориентированного программирования. Интерфейс программы достаточно приятен. В основном окне реализовано автодополнение команд. На официальном сайте присутствует полное руководство по работе с системой (на английском языке). Дистрибутив программы имеет небольшой, по нынешним меркам, объем – 18 МБ.

Система позволяет выполнять численное решение уравнений и систем уравнений, как линейных, так и нелинейных, и числовую обработку сигналов (см. рис. 6); способна работать с многомерными матрицами. Основными положительными моментами Freemat , по сравнению со Scilab и Octave , являются большая совместимость внутреннего языка системы с языком Matlab и использование OpenGL для построения графиков и поверхностей, в результате чего они выглядят более качественно.

Минусами же Freemat являются низкое быстродействие (некоторые задачи решаются в разы медленнее, чем в других пакетах) и отсутствие пакетов расширений. Данная система развивается только усилиями команды из трех человек. Большого сообщества у проекта не наблюдается.

Дистанционная математика

Упомянутые выше системы представляют собой локальные проекты, то есть работа с ними ведется на одной машине. Но это бывает неудобно – например, при дистанционном обучении; кроме того, не все студенты согласятся (а иногда и смогут) поставить данные приложения на своих домашних компьютерах. В этом случае необходимы средства для удаленной работы с математическими пакетами.

SMath Studio Live : считайте, не выходя из браузера (пусть и не очень быстро).

Среди рассмотренного нами такую возможность предоставляет SMath Studio . В разделе Live официального сайта (http://smath.info/live) располагается виртуальный рабочий лист, на котором любой желающий может выполнить свои вычисления. Система очень удобна, хотя и не блещет быстродействием.

И все же более профессиональна в этом плане система SAGE (http://www.sagemath.org/). Данная система состоит из web-сервера, обеспечивающего графический интерфейс для взаимодействия с кодом Python , на котором написано ее ядро. Любой пользователь при помощи своего любимого web-браузера может подключиться к серверу, зарегистрироваться и получить в свое владение личное пространство. Оно может быть и открытым, и закрытым, то есть доступным только администратору сервера и самому владельцу. В личном пространстве могут создаваться рабочие листы, на них и выполняются все вычисления.

В рамках рабочего листа можно использовать любой доступный язык, а таких немало. По умолчанию система SAGE объединяет следующие продукты: GAP, Maxima, Python, R, LaTeX . Кроме этого, могут быть подключены Octave, Axiom, Magma, Mathematica, Matlab, Maple, Mupad и другие. В результате мы получаем единый сервер удаленной работы, позволяющий обучать любым математическим пакетам и выполнять вычисления с помощью как свободных, так и коммерческих систем компьютерной математики.

. По непонятным причинам, Sage отказывается работать в Firefox , но в остальном это удачное решение для удаленной работы.

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

В настоящее время в сети существует несколько публичных SAGE -серверов – к ним можно подключиться, посмотреть листы, выложенные в общий доступ, завести свое личное пространство и, в случае трудностей, попросить помощь у сообщества. Для этого просто сделайте рабочий лист публичным. Уверяю вас: желающих помочь достаточно много, единственная проблема в том, что рабочий язык – английский.

На официальном сайте присутствуют ссылки на тестовый публичный сервер (http://www.sagenb.org), а также на учебные материалы и книги, созданные с помощью данной системы. Зарегистрируйтесь и опробуйте SAGE – может быть, это то, что вы ищете? Стоит также отметить, что у нас не получилось войти на сервер в Firefox , но в других браузерах проблем не возникло.

Итак, мы рассмотрели наиболее популярные свободные системы компьютерной математики. Можно ли их использовать в обучении и для работы – решать вам. Мы свой выбор уже сделали, и не жалеем об этом.

Коммерческие системы

Среди коммерческих систем наиболее популярны три: Matlab (численные вычисления), Maple (основной упор сделан на символьные вычисления) и Mathematica (удачно сочетает устремления первых двух). Особняком стоит мощный инженерный пакет MathCAD , поскольку это скорее большой инженерный калькулятор, и он не предназначен для решения сложных задач математической физики или теории шифрования, обработки сигналов и так далее.

Все эти пакеты имеют версии под наиболее распространенные платформы: Windows, Linux и Mac OS X. Приведем стоимость одной лицензии данных пакетов для академических учреждений, согласно прайс-листу Softline:

  • Matlab – 30 765 руб;
  • Mathematica – 9002 руб;
  • Maple – 36 286 руб;
  • MathCAD – 5290 руб.

Выводы вы можете сделать сами.

тождественные преобразования выражений (в том числе упрощение), аналитическое решение уравнений и систем;

дифференцирование и интегрирование, аналитическое и численное;

решение дифференциальных уравнений;

проведение серий расчетов с разными значениями начальных условий и других параметров.

При этом спектр задач, решаемых подобными системами, очень широк:

  • проведение математических исследований, требующих вычислений и аналитических выкладок;
  • разработка и анализ алгоритмов;
  • математическое моделирование и компьютерный эксперимент;
  • анализ и обработка данных;
  • визуализация, научная и инженерная графика;
  • разработка графических и расчетных приложений.

Принципы построения математических моделей. Основные этапы моделирования.

Математическое моделирование –создание математического описания реального объекта и изучение этого описания.

Принципы построения математических моделей

Основные этапы моделирования

Весь процесс моделирования можно подразделить на следующие этапы:

постановка задачи моделирования;

построение схемы модели, выделение основных частей и процессов;

определение критерия оптимизации или значения, которое надо рассчитать;

выделение основных изменяемых параметров;

математическое описание основных частей и процессов;

построение решения, связывающего изменяемые параметры и критерий оптимизации или рассчитываемое значение;

исследование решения на экстремум или расчет искомого параметра.

Постановка задачи моделирования

Постановка задачи обычно формулируется в виде словесного описания. На этапе постановки должен быть описан объект моделирования, цели построения модели и критерии оптимизации.

Построение схемы модели, выделение основных частей и процессов

На этом этапе, на базе постановки задачи, объект моделирования делится на основные части и определяется перечень процессов взаимодействия этих частей.

Здесь пакеты общего назначения также ничем помочь не могут. Специализированные пакеты, обычно, уже содержат элементы деления модели на части для своей предметной области.

Должен быть сформулирован поддающийся количественной оценке критерий оптимизации или искомый количественный параметр.

Должен быть сформулирован перечень всех изменяемых параметров и их характерное количественное выражение.

Математическое описание основных частей и процессов

Взаимодействие частей модели должно быть выражено математическими формулами. Раздел математики, который будет использован для описания, выбирается из соображений удобства. Т.е. прежде всего, этот раздел должен иметь возможность количественного описания данного типа взаимодействий.

Результатом этого этапа является система уравнений или иных математических выражений формально описывающая взаимодействие частей и допускающая решение, т.е. получение зависимости: критерий оптимизации как функция изменяемых параметров.

В частности, желательна замкнутость системы уравнений и наличие формального доказательства существования решения.

Здесь пакетам общего назначения предоставляют только аппарат. Специализированные пакеты, обычно, имеют предопределенный математический аппарат и опираются на готовое математическое описание задачи.

Построение решения, связывающего изменяемые параметры и критерий оптимизации

Строится РЕШЕНИЕ, т.е. определяется явная функциональная связь: критерий оптимизации или расчетный параметр как функция изменяемых параметров.

Именно этот этап и есть основное поле приложения сил прикладных пакетов математического моделирования. Это связано с тем, что аналитические решения для математического описания сложных объектов обычно невозможны. И построение решения сводится к построению «численного решателя», который по заданным значениям изменяемых параметров может вычислить значение критерия оптимизации.

В редких случаях существования аналитического решения модели, роль прикладных пакетов математического моделирования низводится до определения функции-решения.

Существуют особые подсистемы прикладных пакетов математического моделирования - системы аналитических (символьных) вычислений - эти подсистемы могут использоваться для максимизации аналитичности решения, т.е. замены численных методов на поиск функционального выражения решений. Аналитические решения практически всегда «лучше» численных, ибо позволяют выразить искомые закономерности через известные функции, что сильно ускоряет расчеты и повышает точность вычислений.

Исследование решения на экстремум

Сложность исследования решения на экстремум чаще всего связана с значительными затратами времени на вычисление критерия оптимизации по заданным значениям изменяемых параметров и/или многочисленностью допустимых сочетаний изменяемых параметров, приводящему к огромному количеству вычислений и, опять же, значительным затратам времени.

Этот этап - еще одно поле приложения сил пакетам. Методы исследования функций на экстремумы хорошо разработаны в математике и могут быть формально применены к любой заданной функции.

Parametric Surface Creator

Surfer

пакет Simulink

gnuplot ImageMagick

Parametric Surface Creator

Программа предназначена для наглядного представления геометрических объектов, описываемых параметрически задаваемыми поверхностями, таких как сфера, тор, лента Мёбиуса и прочие. Для описания объектов используется Паскаль-подобный язык с поддержкой всех стандартных математических функций языка Паскаль и нескольких дополнительных. Полученный объект отображается в векторной форме с использованием оригинального алгоритма растеризации векторов, позволяющим получить плавное и естественное изображение даже на низком разрешении монитора и не требующим никакой аппаратной поддержки. Возможен экспорт изображения в BMP файл.

Surfer - программа для создания трехмерных поверхностей. Коммерческие программы-симуляторы для задач с преобладанием "логических аспектов": AutoMod, Process Model, SIMFACTORY и др.

пакет Simulink , ориентированный именно на задачи имитационного моделирования.

gnuplot 1 – популярная программа для создания двух- и трёхмерных графиков. gnuplot имеет собственную систему команд, может работать интерактивно (в режиме командной строки) и выполнять скрипты, читаемые из файлов. Используется gnuplot в качестве системы вывода изображений в различных математических пакетах: GNU Octave, Maxima и многих других. ImageMagick – кроссплатформенный пакет программ для пакетной обработки графических файлов. Поддерживает огромное количество графических форматов. Может использоваться с языками Perl, C, C++, Python, Ruby, PHP, Pascal, Java, в скриптах командной оболочки или самостоятельно.

Использование компонентов

В документах-программах Mathcad есть возможность вставки модулей (component

) других приложений для расширения возможностей визуализации, анализа данных, выполнение специфических вычислений.

Для расширенной визуализации данных предназначен компонент Axum Graph. Для работы с табличными данными - Microsoft Excel .

Компоненты Data Acquisition, ODBC Input позволяют пользоваться внешними базами данных .

Предлагаются также бесплатные модули (add-in) для интеграции Mathcad с программами Excel, AutoCAD .

Для статистического анализа предназначен компонент Axum S-PLUS Script.

Значительное расширение возможностей пакета достигается при интеграции со сверхмощным приложением MATLAB.

Комплектации

Версии Mathcad могут отличатся комплектацией и лицензией пользователя. В разное время поставлялись версии Mathcad Professional , Mathcad Premium , Mathcad Enterprise Edition (отличаются комплектацией). Для академических пользователей предназначена версия Mathcad Academic Professor (обладает полной функциональностью, но отличается лицензией пользователя и имеет в несколько раз меньшую стоимость).

Некоторое время выпускались также упрощенные и заметно «урезанные» студенческие версии программы.

Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MatLab и даже малютке Derive. Однако по программе MathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Сегодня эта система стала буквально международным стандартом для технических вычислений и даже многие школьники осваивают и используют MathCad. Для небольшого объема вычислений MathCad идеален - здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутри MathCad-документа.

В общем, MathCad - это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.

В качестве более дешевых, простых, но идеологически близких альтернатив программе MathCad можно отметить такие пакеты, как уже упомянутый YaCaS, коммерческую систему MuPAD (http://www.mupad.de/ ) и бесплатную программу KmPlot

Математический пакет Mupad

Что касается программы MuPAD (Рисунок 2.6), то она представляет собой современную интегрированную систему математических вычислений, при помощи которой можно производить численные и символьные преобразования, а также чертить двумерные и трехмерные графики геометрических объектов. Однако по своим возможностям MuPAD значительно уступает своим маститым конкурентам и является, скорее, системой начального уровня, предназначенной для обучения.

MuPAD Pro 3 – это сравнительно новая система компьютерной алгебры с обширным набором инструментов, включающая математические алгоритмы для символьных и численных расчётов, и инструментарий для визуализации, анимации и интерактивных манипуляций с двумерными и трёхмерными графиками и другими математическими объектами.

Ключевые возможности Matlab

· Платформонезависимый высокоуровневый язык программирования ориентированный на матричные вычисления и разработку алгоритмов

· Интерактивная среда для разработки кода, управления файлами и данными

· Функции линейной алгебры, статистики, анализ Фурье, решение дифференциальных уравнений и др.

· Богатые средства визуализации, 2-D и 3-D графика.

· Встроенные средства разработки пользовательского интерфейса для создания законченных приложений на MATLAB

· Средства интеграции с C/C++, наследование кода, ActiveX технологии

В базовый набор MatLab входят арифметические, алгебраические, тригонометрические и некоторые специальные функции, функции быстрого прямого и обратного преобразования Фурье и цифровой фильтрации, векторные и матричные функции. MatLab «умеет» выполнять операции с полиномами и комплексными числами, строить графики в декартовой и полярой системах координат, формировать изображения трехмерных поверхностей. MatLab имеет средства для расчета и проектирования аналоговых и цифровых фильтров, построения их частотных, импульсных и переходных характеристик и таких же характеристик для линейных электрических цепей, средства для спектрального анализа и синтеза.

Библиотека C Math (компилятор MatLab) является объектной и содержит свыше 300 процедур обработки данных на языке C. Внутри пакета можно использовать как процедуры самой MatLab, так и стандартные процедуры языка C, что делает этот инструмент мощнейшим подспорьем при разработке приложений (используя компилятор C Math, можно встраивать любые процедуры MatLab в готовые приложения).

Библиотека C Math позволяет пользоваться следующими категориями функций:

· операции с матрицами;.

· сравнение матриц;

· решение линейных уравнений;

· разложение операторов и поиск собственных значений;

· нахождение обратной матрицы;

· поиск определителя;

· вычисление матричного экспоненциала;

· элементарная математика;

· функции beta, gamma, erf и эллиптические функции;

· основы статистики и анализа данных;

· поиск корней полиномов;

· фильтрация, свертка;

· быстрое преобразование Фурье (FFT);

· интерполяция;

· операции со строками;

· операции ввода-вывода файлов и т.д.

При этом все библиотеки MatLab отличаются высокой скоростью численных вычислений. Однако матрицы широко применяются не только в таких математических расчетах, как решение задач линейной алгебры и математического моделирования, обсчета статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Именно универсальность аппарата матричного исчисления значительно повышает интерес к системе MatLab, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. Поэтому MatLab давно уже вышла за рамки специализированной матричной системы, превратившись в одну из наиболее мощных универсальных интегрированных систем компьютерной математики.

Математический пакет Maple.

Maple (http://www.maplesoft.com/ )

Процессор Pentium III 650 МГц;

400 Мбайт дискового пространства;

Операционные системы: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.

Программа Maple (последняя версия 10.02) - своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. (Рисунок 2.15,2.16) Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде.

Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MatLab, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word. Пакет Maple - совместная разработка Университета Ватерлоо (шт. Онтарио, Канада) и Высшей технической школы (ETHZ, Цюрих, Швейцария).

Для его продажи была создана специальная компания - Waterloo Maple, Inc., которая, к сожалению, больше прославилась математической проработкой своего проекта, чем уровнем его коммерческой реализации. В результате система Maple ранее была доступна преимущественно узкому кругу профессионалов. Сейчас эта компания работает совместно с более преуспевающей в коммерции и в проработке пользовательского интерфейса математических систем фирмой MathSoft, Inc. - создательницей весьма популярных и массовых систем для численных расчетов MathCad, ставших международным стандартом для технических вычислений.

Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты.

Пакет позволяет создавать интегрированные среды с участием других систем и универсальных языков программирования высокого уровня. Когда расчеты произведены и требуется оформить результаты, то можно использовать средства этого пакета для визуализации данных и подготовки иллюстраций для публикации. Для завершения работы остается подготовить печатный материал (отчет, статью, книгу) прямо в среде Maple, а затем можно приступать к очередному исследованию. Работа проходит интерактивно - пользователь вводит команды и тут же видит на экране результат их выполнения. При этом пакет Maple совсем не похож на традиционную среду программирования, где требуется жесткая формализация всех переменных и действий с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных и проверяется корректность выполнения операций, так что в общем случае не требуется описания переменных и строгой формализации записи.

Пакет Maple состоит из ядра (процедур, написанных на языке С и хорошо оптимизированных), библиотеки, написанной на Maple-языке, и развитого внешнего интерфейса. Ядро выполняет большинство базовых операций, а библиотека содержит множество команд - процедур, выполняемых в режиме интерпретации.

Интерфейс Maple основан на концепции рабочего поля (worksheet) или документа, содержащего строки ввода-вывода и текст, а также графику (Рисунок 2.17).

Работа с пакетом происходит в режиме интерпретатора. В строке ввода пользователь задает команду, нажимает клавишу Enter и получает результат - строку (или строки) вывода либо сообщение об ошибочно введенной команде. Тут же выдается приглашение вводить новую команду и т.д.

Вычисления в Maple

Систему Maple можно использовать и на самом элементарном уровне ее возможностей - как очень мощный калькулятор для вычислений по заданным формулам, но главным ее достоинством является способность выполнять арифметические действия в символьном виде, то есть так, как это делает человек. При работе с дробями и корнями программа не приводит их в процессе вычислений к десятичному виду, а производит необходимые сокращения и преобразования в столбик, что позволяет избежать ошибок при округлении.

Для работы с десятичными эквивалентами в системе Maple имеется специальная команда, аппроксимирующая значение выражения в формате чисел с плавающей запятой. Система Maple вычисляет конечные и бесконечные суммы и произведения, выполняет вычислительные операции с комплексными числами, легко приводит комплексное число к числу в полярных координатах, вычисляет числовые значения элементарных функций, а также знает много специальных функций и математических констант (таких, например, как «е» и «пи»). Maple поддерживает сотни специальных функций и чисел, встречающихся во многих областях математики, науки и техники.

Программирование в Maple.

Система Maple использует процедурный язык 4-го поколения (4GL). Этот язык специально предназначен для быстрой разработки математических подпрограмм и пользовательских приложений. Синтаксис данного языка аналогичен синтаксису универсальных языков высокого уровня: C, Fortran, Basic и Pascal.

Maple может генерировать код, совместимый с такими языками программирования, как Fortran или C, и с языком набора текста LaTeX, который пользуется большой популярностью в научном мире и применяется для оформления публикаций. Одно из преимуществ этого свойства - способность обеспечивать доступ к специализированным числовым программам, максимально ускоряющим решение сложных задач. Например, используя систему Maple, можно разработать определенную математическую модель, а затем с ее помощью сгенерировать код на языке C, соответствующий этой модели. Язык 4GL, специально оптимизированный для разработки математических приложений, позволяет сократить процесс разработки, а настроить пользовательский интерфейс помогают элементы Maplets или документы Maple со встроенными графическими компонентами.

Одновременно в среде Maple можно подготовить и документацию к приложению, так как средства пакета позволяют создавать технические документы профессионального вида, содержащие текст, интерактивные математические вычисления, графики, рисунки и даже звук. Вы также можете создавать интерактивные документы и презентации, добавляя кнопки, бегунки и другие компоненты, и, наконец, публиковать документы в Интернете и развертывать интерактивные вычисления в Сети, используя сервер MapleNet.

Пакет Mathematica.

Mathematica (http://www.wolfram.com/ )

Минимальные требования к системе:

процессор Pentium II или выше;

400-550 Мбайт дискового пространства;

операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003x64/XP/XP x64.

Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica (Рисунок 2.27,2.28), по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica (текущая версия 5.2) повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).

Mathematica объединяет в единое целое числовое и символьное вычислительное ядро, графическую систему, язык программирования, систему документации и возможность взаимодействия с другими приложениями. Для всей среды Mathematica нет единственного конкурента. Вообще говоря, конкуренты делятся на следующие группы: численные пакеты, системы компьютерной алгебры, приложения дл набора текста и подготовки документации, графические и статистические системы, традиционные языки программирования (средства разработки интерфейсов) и электронные таблицы. С тех пор, как Mathematica впервые появилась, другие математические пакеты существенно расширили спектр собственных возможностей, первоначально они предназначались для решения задач, относящихся лишь к одной или двум вышеперечисленным категориям.
Однако вряд ли эта мощная математическая система, претендующая на мировое лидерство, нужна секретарше или даже директору небольшой коммерческой фирмы, не говоря уже о рядовых пользователях. Но, несомненно, любая серьезная научная лаборатория или кафедра вуза должна иметь подобную программу, если там всерьез заинтересованы в автоматизации выполнения математических расчетов любой степени сложности. Несмотря на свою направленность на серьезные математические вычисления, системы класса Mathematica просты в освоении и могут использоваться довольно широкой категорией пользователей - студентами и преподавателями вузов, инженерами, аспирантами, научными работниками и даже учащимся математических классов общеобразовательных и специальных школ. Все они найдут в подобной системе многочисленные полезные возможности для применения.

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

Отметим, что в разработках различных версий системы Mathematica, наряду с головной фирмой Wolfram Research, Inc., принимали участие другие фирмы и сотни специалистов высокой квалификации, в том числе математики и программисты. Есть среди них и представители пользующейся уважением и спросом за рубежом математической школы России. Система Mathematica является одной из самых крупных программных систем и реализует наиболее эффективные алгоритмы вычислений. К их числу, например, относится механизм контекстов, исключающий появление в программах побочных эффектов.

Система Mathematica сегодня рассматривается как мировой лидер среди компьютерных систем символьной математики для ПК, обеспечивающих не только возможности выполнения сложных численных расчетов с выводом их результатов в самом изысканном графическом виде, но и проведение особо трудоемких аналитических преобразований и вычислений.

Mathematica имеет несколько основных особенностей и предназначена для решения широкого спектра задач. Вот некоторые классы задач, решаемых с помощью Mathematica:

1. Работа с символьными комплексными вычислениями, использующими сотни тысяч или миллионы членов.
агрузка, анализ и визуализация данных.

2. Решение обычных и дифференциальных уравнений, а также задач численной или символьной минимизации.

3. Численное моделирование и имитация, построение систем управления, начиная от простейших и заканчивая столкновениями галактик, финансовыми убытками, сложными биологическими системами, химическими реакциями, изучением влияния на окружающую среду и магнитными полями в ускорителях элементарных частиц.

4. Простая и быстрая разработка приложений (RAD) для технических компаний и финансовых учреждений.

5. Создание профессиональных, интерактивных, технических отчетов и документов для распространения в электронном виде или на бумаге.

6. Подробная техническая документация, например, для патентов США.

7. Проведение специальных презентаций и семинаров.

8. Иллюстрирование математических или научных концепций для учащихся, начиная от колледжа и заканчивая аспирантурой.

Версии системы под Windows имеют современный пользовательский интерфейс и позволяют готовить документы в форме Notebooks (записных книжек). Они объединяют исходные данные, описания алгоритмов решения задач, программ и результатов решения в самой разнообразной форме (математические формулы, числа, векторы, матрицы, таблицы и графики).

Mathematica была задумана как система, максимально автоматизирующая труд научных работников и математиков-аналитиков, поэтому она заслуживает изучения даже в качестве типичного представителя элитных и высокоинтеллектуальных программных продуктов высшей степени сложности. Однако куда больший интерес она представляет как мощный и гибкий математический инструментарий, который может оказать неоценимую помощь большинству научных работников, преподавателей университетов и вузов, студентов, инженеров и даже школьников.

С самого начала большое внимание уделялось графике, в том числе динамической, и даже возможностям мультимедиа - воспроизведению динамической анимации и синтезу звуков. Набор функций графики и изменяющих их действие опций очень широк. Графика всегда была сильной стороной различных версий системы Mathematica и обеспечивала им лидерство среди систем компьютерной математики.

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

Кстати, центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций, которое позволяет переносить систему на различные компьютерные платформы. Для переноса системы на другую компьютерную платформу используется программный интерфейсный процессор Front End. Именно он определяет, какой вид имеет пользовательский интерфейс системы, то есть интерфейсные процессоры систем Mathematica для других платформ могут обладать своими нюансами. Ядро сделано достаточно компактным для того, чтобы можно было очень быстро вызвать из него любую функцию. Для расширения набора функций служат библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством для развития возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему - Help, которая содержит электронные книги с реальными примерами.

Таким образом, Mathematica - это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемноориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой - интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения (Add-ons) появляется возможность подстраиваться под запросы любого пользователя, (хотя рядовому пользователю эти средства программирования могут и не понадобиться - он вполне обойдется встроенными математическими функциями системы, поражающими своим обилием и многообразием даже опытных математиков).

К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.

FlatGraph - программа для построения графиков функций (обычных и параметрических) с расширенными возможностями (Рисунок 2.33). Дифференцирование любого порядка (с упрощением). Построение касательных к графику. Программа рассчитана как на неопытного, так и на профессионального пользователя, т.к она совмещает в себе интуитивный интерфейс с профессиональными функциями.

FlatGraph позволяет:

Вводить одно или несколько функциональных выражений любой сложности для отображения и (или) их дифференцирования;

Выполнять символьное дифференцирование для указанного порядка производной, а также выполнять упрощение полученной производной;

Исследовать "живое" изменение различных параметров функций с одновременным отображением новых графиков, что позволяет определить влияние параметров функций на их вид;

Использовать автоматическое или ручное масштабирование графиков функций для линейных шкал;

Задавать и выводить графически параметрические функции, отображающие, например, эллипсоиды, кардиоиды, лемнискаты Бернулли и другие подобные графики (где абсцисса и ордината зависят от одного параметра "t");

Решать уравнений, системы уравнений и неравенств графическим способом;

Получать и отображать касательную к графику функции в точке x0(задается пользователем).

FlatGraph имеет простой и понятный интерфейс, снабжен подробнейшей документацией по использованию и примерами работы.

Математические пакеты. Моделирование. Перечислить возможности и основные задачи, решаемые пакетами.

Математические пакеты являются составной частью мира CAE-систем.(Computer Aided Engeneering) В настоящее время в математических пакетах применяется принцип конструирования модели, а не традиционное «искусство программирования». То есть пользователь ставит задачу, а методы и алгоритмы решения система находит сама. Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, а также как генератор графики или даже звука! В настоящее время практически все современные математические имеют встроенные функции символьных вычислений. Однако наиболее известными и приспособленными для математических символьных вычислений считаются Maple, MathCad, Mathematica и MatLab. Математическое моделирование – создание математического описания реального объекта и изучение этого описания.

Первоначально любые расчеты по моделям производились вручную. По мере развития вычислительных устройств, эти устройства применялись для ускорения расчетов.

Компьютер позволяет использовать его как средство автоматизации научной работы и для решения сложных расчетных задач используют различные специализированные программы.

В то же время, в научной работе встречается широкий спектр несложных математических задач, для решения которых можно использовать универсальные профессиональные средства.

К таким несложным задачам относятся, например, следующие:

подготовка научно-технических документов, содержащих текст и формулы, записанные в привычной для специалистов форме;

вычисление результатов математических операций, в которых участвуют числовые константы, переменные и размерные физические величины;

операции с векторами и матрицами;

решение уравнений и систем уравнений (неравенств);

статистические расчеты и анализ данных;

построение двумерных и трехмерных графиков;

тождественные преобразования выражений (в том числе упрощение), аналитическо

Эта статья является второй в цикле, посвященном различным реальным приложениям, которые могут использоваться для тестирования процессоров, компьютеров, ноутбуков и рабочих станций и которые в дальнейшем будут положены в основу нового тестового пакета iXBT Application Benchmark 2017. Напомним, что в первой статье данного цикла мы рассматривали два специализированных приложения LAMMPS и NAMD, которые используются для решения задач молекулярной динамики. В этой статье мы уделим внимание специализированным математическим пакетам FFTW и GNU Octave. Данные приложения, как и LAMMPS и NAMD, входят в состав известного специализированного тестового пакета SPECwpc 2.0. Более того, сами расчетные задачи (workload) и команды запуска программ с соответствующими параметрами мы позаимствовали именно из пакета SPECwpc 2.0.

FFTW 3.3.5

Среда GNU Octave поддерживает работу со скрипт-файлами (), а для запуска скрипта используется команда:

octave-cli-4.0.3.exe

(Файл octave-cli-4.0.3.exe расположен в папке C:\Octave\Octave-4.0.3\bin\ при установке пакета по умолчанию.)

Для тестирования мы используем скриптовый файл, в котором реализуются операции с циклами, вычисление интегралов, быстрое преобразование Фурье и операции с матрицами. Мы не писали этот скрипт «с нуля», а взяли его из пакета SPECwpc 2.0, в который входит тест на основе GNU Octave. Этот скрипт называется obench.m. Результатом теста является время выполнения скрипта.

Тестовый стенд и методика тестирования

Для тестирования с использованием приложений FFTW и GNU Octave мы собрали стенд следующей конфигурации:

  • Процессор: Intel Core i7-6950X (Broadwell-E);
  • Системная плата: Asus Rampage V Edition 10 (Intel X99);
  • Память: 4×4 ГБ DDR4-2400 (Kingston HyperX Predator HX424C12PBK4/16);
  • Видеокарта: Nvidia Quadro 600;
  • Накопитель: SSD Seagate ST480FN0021 (480 ГБ).

В ходе тестирования замерялось время выполнения тестовых задач.

Рассматривалась зависимость результатов тестирования от количества используемых ядер процессора, от частоты ядер процессора и от частоты памяти.

Зависимость результатов от количества ядер процессора

Количество используемых в ходе тестирования ядер процессора Intel Core i7-6950X регулировалось через настройки UEFI BIOS платы Asus Rampage V Edition 10. Напомним, что процессор Intel Core i7-6950X является 10-ядерным, но поддерживает технологию Hyper-Threading, поэтому операционной системой и приложениями он видится как 20-ядерный (имеет 20 логических ядер).

Мы не отключали технологию Hyper-Threading и меняли лишь количество физических ядер процессор от 1 до 10. В дальнейшем мы будем говорить о логических ядрах процессора, количество которых менялось от 2 до 20 с шагом 2.

Частота работы всех ядер процессора фиксировалась и составляла 4,0 ГГц.

Как видим, результаты получились очень странные. Интерпретация результатов для пакета GNU Octave достаточно проста. В этом пакете скорость выполнения тестовой задачи практически не зависит от числа ядер процессора, то есть в варианте процессора Intel Core i7-6950X даже двух логических ядер вполне достаточно для выполнения тестовой задачи. При увеличении числа доступных ядер процессора задача распараллеливается, однако доля загрузки каждого ядра уменьшается пропорционально их количеству. В результате скорость выполнения тестовой задачи не меняется при увеличении числа ядер процессора.

А вот с приложением FFTW все очень странно и нелогично. При 6, 12 и 14 ядрах (логических) время выполнения тестовой задачи становится аномально большим. В остальных случаях время выполнения тестовой задачи примерно одинаковое. Результат довольно странный, однако он многократно перепроверялся.

Если посмотреть, какова загрузка процессора во время выполнения теста, то ситуация такова. Во-первых, задача распараллеливается на все ядра процессора. Во-вторых, в какие-то промежутки времени загрузка ядер процессора оказывается низкой, а в какие-то промежутки - высокой. Причем такое поведение наблюдается при любом числе ядер. И почему при определенном количестве ядер процессора время выполнения теста становится аномально большим - непонятно.

Мы провели дополнительное исследование данного странного поведения теста. Для этого мы отключили у процессора технологию Hyper-Threading и повторили тестирование в приложении FFTW, меняя количество физических ядер процессора от 1 до 10. Результаты тестирования следующие:

При отключенной технологии Hyper-Threading результат получился еще более нелогичным. При 3, 5, 6, 7 и 9 ядрах время выполнения теста было большим, а при 1, 2, 4, 8 и 10 ядрах оно оказалось небольшим. То есть получается, что эффективность распараллеливания задачи зависит от количества ядер процессора, но вовсе не в том смысле, что большее количество ядер позволяет улучшить результат. При каком-то количестве ядер задача распараллеливается хорошо, а при каком-то - плохо.

Впрочем, у нас еще оставались сомнения в правильности наших выводов, поскольку в данном случае речь шла не о реальном двух-, четырех-, шести- и так далее ядерном процессоре, а об искусственном блокировании ядер через BIOS материнской платы. Мы решили повторить тест с другим процессором - шестиядерным (12 логических ядер с учетом Hyper-Threading) Intel Core i7-5820K. Как мы видели, при 6 физических или 12 логических ядрах процессора время выполнения теста становится аномально высоким. И на процессоре Intel Core i7-5820K этот результат был подтвержден. Процессор работал на частоте 3,6 ГГц. При всех активированных ядрах с технологией Hyper-Threading (12 ядер) время выполнения тестовой задачи получается аномально большим: 1886 с. Если последовательно отключать ядра, то при 10, 8, 4 и 2 ядрах время выполнения теста составляет 200-400 с, а при 6 ядрах - 1235 с.

Как видим, на процессоре Intel Core i7-5820K получается такой же странный результат, как и на процессоре Intel Core i7-6950X.

Несмотря на такую странную зависимость результатов теста FFTW от числа ядер процессора, мы решили оставить его в пакете приложений, которые будут использоваться в бенчмарке iXBT Application Benchmark 2017. Это приложение наглядно демонстрирует, что не всегда много ядер - это хорошо. Иногда бывает и по-другому.

Возможно, в окончательном варианте мы уменьшим размер самого преобразования Фурье, дабы исключить варианты, когда такой тест длится более 30 минут.

Зависимость результатов от частоты процессора

Теперь рассмотрим, как результаты тестирования в приложениях FFTW и GNU Octave зависят от частоты процессора.

Частота ядер процессора Intel Core i7-6950X менялась в настройках UEFI BIOS платы Asus Rampage V Edition 10 путем изменения коэффициента умножения. Частота работы всех ядер фиксировалась (то есть режим Turbo Boost отключался). Использовались все ядра процессора (10 физических/20 логических). Частота менялась от 3,0 ГГц до 4,2 ГГц с шагом 200 МГц. Результаты тестирования следующие:

Как видно по результатам тестирования, и в пакете FFTW, и в пакете GNU Octave время выполнения теста зависит от частоты процессора. В пакете FFTW при увеличении частоты процессора от 3 до 4,2 ГГц (увеличение на 40%) время выполнения теста уменьшается на 21%. В пакете GNU Octave аналогичное увеличение частоты процессора приводит к уменьшению времени выполнения тестовых задач на 24%.

Таким образом, зависимость результатов тестов FFTW и GNU Octave от частоты процессора вполне типичная. Тестовая задача в пакете GNU Octave чуть лучше масштабируется по частоте процессора, а задача в пакете FFTW - чуть хуже.

Зависимость результатов от частоты памяти

Теперь рассмотрим зависимость скорости выполнения тестовых задач от частоты работы памяти. Память DDR4 работала в четырехканальном режиме (по одному модулю на канал), а частота памяти менялась в настройках UEFI BIOS в диапазоне от 1600 МГц до 2800 МГц c шагом в 200 МГц. Тайминги памяти фиксировались и не менялись при изменении частоты. Все ядра процессора работали на частоте 4,0 ГГц.

Результаты тестирования следующие:

Как видим, скорость выполнения тестовых задач в пакетах GNU Octave и FFTW никак не зависит от частоты работы памяти. По крайней мере, в четырехканальном режиме работы пропускной способности памяти DDR4 вполне достаточно даже на частоте 1600 МГц, и дальнейшее увеличение частоты памяти не позволяет ускорить выполнение тестовых задач.

Это типичный для большинства приложений результат. Приложения, скорость работы которых зависит от частоты памяти - это, скорее, исключение из правил.

Заключение

Итак, во второй статье нашего нового цикла мы рассмотрели два теста на основе специализированных математических приложений FFTW и GNU Octave. На примере 10-ядерного процессора Intel Core i7-6950X было показано, что тестовые задачи в этих пакетах распараллеливаются на все ядра процессора, однако не могут загрузить их на 100%. Результат теста в приложении GNU Octave практически не зависит от числа ядер процессора, а результат теста в приложении FFTW, наоборот, сильно зависит от числа ядер процессора, однако зависимость эта очень странная. При некотором числе ядер (14, 12 и 6) время выполнения тестовой задачи становится аномально большим, а во всех остальных случаях время выполнения тестовой задачи от числа ядер зависит слабо.

Кроме того, было показано, что скорость выполнения тестовых задач в пакетах FFTW и GNU Octave линейным образом зависит от частоты ядер процессора (при изменении частоты в диапазоне от 3 до 4,2 ГГц).

Наконец, было показано, что время выполнения тестовых задач в приложениях FFTW и GNU Octave никак не зависит от частоты памяти DDR4 (в четырехканальном режиме и в диапазоне от 1600 до 2400 МГц).

Есть еще одно замечание, которое можно сделать относительно приложений FFTW и GNU Octave при их использовании для тестирования. Пакет GNU Octave имеет плохую повторяемость результатов и для получения результата с низкой погрешностью желательно делать пять прогонов теста. Приложение FFTW дает более стабильные результаты, но и для этого приложения необходимо как минимум три прогона теста.

В следующей статье данного цикла мы рассмотрим три приложения, которые используются для рендеринга 3D-сцен: POV-Ray 3.7, LuxRender 1.6 и Вlender 2.77a.



Понравилась статья? Поделитесь ей