LXF109:Сравнение
|
|
|
- Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!
Содержание |
Сравнение Числодробилки
- Когда ни бумага с карандашом, ни калькулятор не справляются с расчетами, Уилл Трибби обращается к одной из математических программ.
В старые времена (1980-е) студентам ВУЗов разрешалось производить вычисления, расчеты линейной алгебры и т.п. с помощью калькуляторов – но не для всего, поскольку в основном полагались достаточными бумага и карандаш, а калькуляторы допускались лишь в особо сложных случаях. Аспиранты переходили уже к написанию собственных программ для численных расчетов, просиживая долгие часы перед терминалом за отладкой кода. Но был способ и получше.
То, что начиналось как библиотеки функций для решения численных задач, развилось в мощные, интерактивные и программируемые инструменты, «перемалывающие» сложные математические и инженерные проблемы за несколько минут. Эти платформы численных расчетов сегодня являются рабочими лошадками ученых и инженеров. Они используются практически в любой области современной науки и техники для управления данными, анализа и визуализации.
Золотой стандарт
Среди рассматриваемых здесь платформ, Matlab является золотым стандартом, с которым сравниваются все остальные инструменты. Это сравнение кажется неизбежным для любой платформы численных расчетов, свободной или нет. Однако, по сравнению с ними, Matlab имеет огромный недостаток – дороговизну. Выбор в пользу Matlab зависит от того, много ли дополнений вам нужно и готовы ли вы платить за них. Тем из нас, кто ограничен бюджетом, без мощной и свободной замены не обойтись.
При поиске альтернатив Matlab, две были уже наготове: Scilab и Octave. Обнаружение еще двух потребовало просеивания web-сайтов существующих проектов. Программы с последним обновлением старше года не рассматривались. В обзор попали наиболее обещающие и интересные решения, чьи сайты проявляют активность.
Про наш тест...
У платформ численных расчетов, включенных в это Сравнение, много общих функций. Значение имеет и производительность алгоритмов, что важно при работе с большими объемами данных.
Оценка выводилась по следующим факторам: простота установки, интерфейс пользователя, документация, поддержка сообщества и доступные инструменты. Производительность алгоритмов проверялась путем вычисления разложения по особым значениям (SVD) и по 100-кратному вычислению быстрого преобразования Фурье (FFT, БПФ) для матрицы действительных чисел размера 500х500, и вычисления среднего и стандартного отклонения этих ста попыток.
Тестирование проводилось на ноутбуке HP Pavilion dv5040us с процессором AMD 2,2 ГГц и ОЗУ 2ГБ, работающем под управлением Kubuntu 8.04. Все программы, кроме Matlab и Euler Math Toolbox, перед тестированием компилировались на ноутбуке.
Matlab
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Когда вы заслужиаете (и можете позволить) самого лучшего.
Matlab в завидном положении: все прочие лишь догоняют его, поскольку это основная вычислительная платформа, используемая большинством ученых мира и технических сообществ. Matlab включен в технические и математические курсы многих университетов, разносящих его репутацию также и за свои пределы. Немного поработав в среде Matlab, вы понимаете, почему Matlab устанавливает планку, до которой другим прыгать и прыгать.
Прежде всего, Matlab предоставляет современную IDE для выполнения вашей работы. В ней есть окно команд, окно истории команд и менеджер файлов. Команды помечаются временем и датой, и вы можете выбрать команду или группу команд в окне истории, чтобы выполнить их вновь. Вероятно, тем, кто собирается создавать лишь мелкие приложения в несколько файлов, IDE не так уж и важна. В противном случае –это большой плюс. Matlab часто используют для создания больших и сложных приложений, требующих управления кодом. Ни одна из рассматриваемых в обзоре платформ и близко не подошла к IDE вроде той, что есть в Matlab.
Матричный язык Matlab легок в изучении, и, освоившись с векторами и матрицами, вы сочтете его очень естественным. Несложные матричные операции, требующие нескольких операторов, или запутанные перемножения, подразумевающие целую программу, могут выполняться совместно в одной строке кода. Базовая версия Matlab поставляется с умопомрачительным набором математических функций, с которым остальные продукты стараются идти в ногу. Не так давно в Matlab было добавлено объектно-ориентированное программирование, и это также возвышает его над большинством других платформ обзора. Данный функционал может облегчить создание больших и сложных приложений для тех, кто предпочитает объектно-ориентированный подход. Matlab также может сразу оснастить ваши приложения графическим интерфейсом, что делает разработку более последовательной, чем при добавлении его позднее.
Да он еще и быстр
Производительность – та область, где Matlab трудно удержать лидерство. В SVD-тесте – разложении матриц, важном для многих статистических и численных алгоритмов – производительность Matlab лишь на 20% больше, чем в Scilab или Octave. Удивительно то, что алгоритм Numpy, используемый в Sage, был в среднем быстрее Matlab на 250%. Он не включен в настоящее сравнение, но такое разительное отличие показывает, что в библиотеке Numpy для Python производительности уделено больше внимания. Зато Matlab победил в быстром преобразовании Фурье.
Следует отметить, что измерение производительности зависит от целого ряда факторов и для достоверности требует многокраных повторений. Наши измерения проведены лишь в целях относительного сравнения. Даже отличие в долях секунды может стать убийственным, когда объем вычислений становится больше или требуются тысячи повторений. Однако для небольших приложений или задач эти отличия производительности могут никогда и не возникнуть.
Еще один плюс Matlab – множество пакетов расширений (Toolbox), доступных в виде дополнительных надстроек для базового продукта Matlab. Они покрывают специфические области применения, вроде обработки изображений, вычислительной биологии и экономического моделирования и анализа, и сберегают кучу времени, когда нужен немедленный результат без изобретения велосипеда. MathWorks, изготовитель Matlab, поддерживает в сети сообщество пользователей, где они обмениваются кодом и помогают друг другу. Хотя некоторые другие платформы предоставляют пакеты расширений в стиле Matlab, доступные варианты в Matlab отлажены лучше, чем имеющиеся для свободных платформ.
Дорогое удовольствие
Matlab – потрясающий продукт, и после его тестирования для обзора мы очень расстроились, обнаружив, что он поставляется по заоблачной цене и с ежегодным взносом после первых 12 месяцев. Использование Matlab вне работы или университета, вероятно, чересчур дорого для большинства людей. Многие малые компании сочтут стоимость Matlab, при наличии свободных альтернатив, неоправданной – конечно, если только они не разрабатывают дополнения или сервисы для Matlab. Matlab – очевидный выбор для платформы численных расчетов, если вы можете его себе позволить и вам не нужна открытая лицензия. Иначе уж лучше обойтись чем-то свободным.
Книги
Для любителей пачек бумаги, испещренных черными закорючками, налицо огромный выбор. Если, зайдя в своей любимый магазин в сети, вы поищете книги, описывающие Matlab, вас ими просто завалят. Некоторые учебники по Matlab заодно описывают Scilab и Octave, но есть книги и исключительно о них. Часть книг просто дублирует документацию или учебники из сети, и иногда это удобно – особенно если вы хотите почитать в местах, где ваш ноутбук может быть в опасности. Единственная описываемая платформа, для которой мы не нашли книг – Euler Math Toolbox.
Octave
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Естественно, есть GNU-альтернатива…
Начавшись как побочная идея работы инженеров-химиков в 1988 году, Octave вырос в сильную и недорогую копию Matlab, одну из наиболее известных свободных альтернатив Matlab с открытым кодом, и ныне старается добиться возможно лучшей совместимости с Matlab. Сайт Octave содержит подсказки по совместному использованию файлов пользователями Octave и Matlab.
На нашем тестовом ноутбуке Octave собрался и установился без сучка, без задоринки. Он запускается в окне оболочки, создающем ощущение некоторой пустоты. Однако, покопавшись, мы обнаружили на http://sourceforge.net проект Octclipse. Описание на сайте скудное, но, судя по названию и краткой справке, он основан на открытой IDE Eclipse. QtOctave – другая оболочка для Octave. Таким образом, вы можете заполучить IDE для вашего Octave, но это потребует дополнительных поисков и сборки. Однако, если одна IDE вам не понравилась, всегда можно попробовать другую.
Между базовым языком матриц Octave и языком Matlab имеются некоторые отличия. Для многих файлов программ совместимость – не проблема, но может стать таковой с добавлением объектно-ориентированного программирования в Matlab, если большинство пользователей возжелают эту функцию. В Wiki Octave имеется список функций последней версии Matlab (R2008a), отсутствующих в Octave; часть перечня, касающаяся объектов, содержит 50 пунктов. Если многие пользователи обзаведутся объектно-ориентированным Matlab – прощай, совместимость.
Теперь о хорошем: сайт проекта приводит список уникальных функций Octave. Одна из них – определение функций прямо в строке [inline]. При работе в командном окне данная функция облегчает паковку повторяющихся шагов более выгодным способом, чем написание и сохранение файла программы. В Matlab этого сделать нельзя. Другая приятная функция – использование одиночных или двойных кавычек для определения строк, как делается в Python. Еще одно действие, выполнимое в Octave, но не в Matlab – использование символа # для комментариев. То есть, размещение #! ./usr/bin/Octave -q в начале файла программы приведет к тому, что оболочка выберет Octave для ее запуска; тут просматриваются интересные варианты использования при развертывании приложений. Эти небольшие отличия могут показаться незначительными, но, вероятно, они были добавлены по велению сообщества Octave. Проекты вроде Octave более отзывчивы к запросам пользователей, чем корпоративный элемент вроде The MathWorks.
Приличная скорость
Было бы весьма печально, если бы выбор между свободной и проприетарной платформами означал провал в скорости ваших вычислений. Но Octave – не тот случай: он показал 80% производительности Matlab в тесте SVD и около половины скорости в тесте FFT. При вычислении FFT разница измеряется сотыми долями секунды. Неясно, что внутри Matlab отличает его от Octave (а также Scilab) и позволяет выжать эти сотые. Обнаружение мелких отличий и их ликвидация не проще поиска иголки в стоге сена, так как они обуславливаются множеством факторов, вроде использования памяти, загрузки процессора в момент тестирования, структуры данных и т.д. Главное, что производительность Octave более чем адекватна для любой задачи разумного объема.
На сайте http://octave.sourceforge.net вы найдете дополнительные пакеты для использования в Octave, являющиеся Octave-эквивалентами пакетов расширений (Toolbox) Matlab. Список весьма обширен, а охватываемые предметные области столь же многочисленны, что и для пакетов расширений Matlab. Широкий выбор специализированного кода, который можно получить и использовать без оплаты, в значительной степени обуславливает мощь свободного и открытого ПО. Для пользователей, ценящих свободу и выбор, Octave – образцовый проект.
Статистика
Если ваши интересы – в сфере статистических расчетов, возможно, вам стоит обратить внимание на проект GNU R, задуманный как свободное воплощение языка S, который разработан в бывшей Bell Laboratories (ныне Lucent Technologies). R для S – то же, что Octave для Matlab, но сосредоточен на статистике. R предоставляет удобные программы статистической обработки данных и построение статистических диаграмм и графиков, способных потребовать значительного кодирования даже на языке матриц вроде Octave. R можно найти по адресу http://www.r-project.org, а учебник по R можно найти на страницах LXF
Sage
- Когда нужна серьезная математика.