Десять лучших пакетов с открытым исходным кодом для математиков
Оригинал: Top Ten Open Source Tools for Mathematicians
Автор: Deepu Benson
Дата публикации: 25 марта 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2019 г.
За прошедшие много лет мы видели большое количество всяческих списков. Некоторые из них довольно интересны, а другие скучные до умопомрачения. Например, «десять лучших дистрибутивов Linux всех времен» определенно интереснен, тогда как «десять лучших вещей, которые можно сделать со стаканом воды» совершенно бесполезен, если и не скучен. Да, в интернете полно интересных, скучных и глупых списков, но мы никогда не встречали список, в котором перечислены инструменты с открытым исходным кодом, используемые математиками — как профессионалами, так и любителями. Итак, мы перечисляем десятку лучших инструментов с открытым исходным кодом, которые широко используются математиками.
Утилита bc (basic calculator) — это язык для расчетов произвольной точности. Эту утилиту часто называют bench calculator, и ее можно вызвать с помощью команды bc в терминале. В настоящее время используются две важные версии bc: POSIX bc и GNU bc. GNU bc доступен как бесплатное программное обеспечение с открытым исходным кодом, распространяемое под лицензией GNU General Public License. Решение о включении в список такого инструмента, как bc, разработка которого началась в 1975 году, может быть несколько спорным. Конечно, есть гораздо более мощные инструменты. Тем не менее, мы выбрали его, потому что, во-первых, это калькулятор произвольной точности, ограниченный только доступной памятью хост-системы и не ограниченный 8, 16, 32 или 64 битами точности. Это, действительно, важная вещь, и если у вас есть какие-либо сомнения, спросите программистов, работающих в области научных вычислений, которые страдают от неправильного представления чисел с плавающей запятой и от того, насколько трудно их приручить.
Другая причина в том, что, хотя он выглядит очень просто, bc является полным языком Тьюринга, что делает его таким же мощным, как такие языки программирования, как C и Java — по крайней мере, в теории. Последняя причина выбора bc для этого списка в том, что вам не нужен пистолет, чтобы убить муху. Во многих случаях бывает слишком сложно использовать мощные инструменты, такие как Scilab или SageMath, для простых числовых вычислений. На рисунке 1 показан результат операции деления с использованием bc с различными уровнями точности.
Рисунок 1: bc в действии
Что такое суперкомпьютер
СуперЭВМ – название, которое получают специализированные вычислительные машины, превосходящие по характеристикам и скорости вычисления большинство обычных компьютеров.
Суперкомпьютер состоит из большого количества многоядерных систем, объединенных в общую систему для получения высокой производительности. Еще одно отличие от обычных ПК – большие размеры. Техника располагается в нескольких помещениях, занимая целые этажи и здания.
Первым настоящим суперкомпьютером считается собранный в 1974 году в США ПК Cray-1. Благодаря поддержке векторных операций модель выполняла до 180 млн вычислений с плавающей точкой в секунду (флопс). Большая часть суперЭВМ по-прежнему собирается и используется в Соединенных Штатах, следующими по количеству такой техники идут Китай и Япония.
Maxima
Windows, Linux официальный сайт 06 февраль 2016 GNU General Public License — лицензия для личного и коммерческого использования подробнее. Математические пакеты 11
Maxima — это система компьютерной алгебры, созданная на языке программирования Common Lisp, первый запуск которой состоялся в далеком 1982 году. Данная утилита предназначена для проведения аналитических и численных вычислений, а также формирования графиков функций. Эта разработка располагает несколькими графическими интерфейсами юзера (wxMaxima, XMaxima и прочими). Программа осуществляет численные расчеты максимально верно, поскольку применяет дроби, целые числа (как с плавающей точкой произвольной точности, так и без нее). Стоит отметить, что при использовании псевдографики, приложение способно функционировать в режиме командной строки. Система имеет довольно понятный интерфейс, несмотря на то, что современным его назвать сложно. подробнее.
А вот это мой размерчик!
Поскольку наращивать производительность персонального компьютера уже некуда, единственным выходом остается использование распределенных вычислений или параллельной обработки данных. Цель такой обработки — ускорить выполнение вычислений, распределив их на несколько процессоров или компьютеров. Проще говоря, над одним расчетом трудится не один процессор, а два, четыре Скорость вычислений действительно возрастает очень существенно — в разы, а реализовать этот процесс можно одним из нескольких способов…
Обработка с распределенной памятью
Обработка с распределенной памятью (Distributed Memory Processing, DMP) — это архитектура, в которой каждый процессор использует свою собственную память (рис. 1). Другими словами, это некоторое количество компьютеров, объединенных специальной сетью и работающих под операционной системой Unix/Linux. Такая система называется кластером (рис. 2), между компьютерами (узлами) которого и распределяется рассчитываемая задача. Конфигурация требует наличия высокоскоростной сети между процессорами.
Достоинствами кластерных систем являются их высокая производительность и масштабируемость. Количество компьютеров может наращиваться практически без ограничений, со временем компьютеры кластера можно заменять более современными и производительными (включая многопроцессорные). Покупка кластера безусловно оправдана при решении задач особой сложности — например, при расчете моделей, состоящих из сотен миллионов элементов.
К недостаткам следует отнести высокую стоимость кластера. Кроме того, как уже сказано, требуется создание сети, объединяющей компьютеры в единую систему. Кластер нельзя разместить, скажем, в помещении технологического бюро цеха — необходима отдельная комната с микроклиматом. Поддерживать работу кластера должен специалист.
Рис. 2. Вычислительный кластер ПНЦ РАН
Симметричная многопроцессорная обработка
Другая технология, получившая название SMP (Shared Memory Processing), предполагает распределение вычислений по разным процессорам, которые используют общую память (рис. 3). Иными словами, используется один компьютер с нужным количеством процессоров, каждый из которых может иметь несколько ядер. Максимально возможное число процессоров равно 32.
Рис. 3. Симметричная многопроцессорная обработка
Главное достоинство такой системы — невысокая стоимость. Действительно, многоядерные процессоры стоят сегодня даже в ноутбуках. Покупка многопроцессорного и многоядерного системного блока обойдется дешевле, чем приобретение соответствующего числа одноядерных машин, которые впоследствии будут организованы в кластер. Не нужно заботиться о качестве и быстродействии сети, отдельном помещении. Многоядерная станция может быть подключена к ЛВС предприятия, что значительно упрощает обмен данными. Использование системы для решения задач инженерного анализа и анализа технологического процесса существенно, в несколько раз, сократит время математического расчета.
Предлагая программное обеспечение и оказывая техническую поддержку, часто приходится отвечать на вопросы о способах ускорения процесса моделирования. При этом инженер ждет не общих рекомендаций вроде «купи новый компьютер», а определенных данных и цифр. Поэтому было решено сконфигурировать, протестировать и предложить конечному пользователю решение недорогое, но вместе с тем максимально производительное и удобное в работе.
1956-1980 годы: системы обработки данных 2-5 поколений
Programma 101
В эти годы были разработаны языки программирования более высокого уровня, а также принципы работы виртуальной памяти, появились первые совместимые компьютеры, базы данных и многопроцессорные системы. Первый в мире свободно программируемый настольный компьютер был создан компанией Olivetti. В 1965 году стала доступна для покупки электронная машина Programma 101 стоимостью 3200 долларов.
Grid вместо суперкомпьютера
Идея объединить девайсы из разных уголков планеты в большой кластер не нова, но реально достижимой она стала только с развитием скоростного интернета. Один в поле не воин, а мировая паутина легко позволяет собрать цифровое войско. Те, кто встал на темную сторону, создают для своих черных дел ботнеты. Они досят сайты, брутфорсят пароли, рассылают спам и заставляют чужие устройства майнить для них криптовалюту. Те, кто остался на светлой стороне, используют распределенные вычисления для доброго и вечного — развивают исследовательские проекты, двигают науку и улучшают жизнь в целом, как это и подобает настоящим хакерам.
Организация распределенных вычислений — трудоемкое занятие, которое требует специфических знаний. В зарубежной литературе их обычно называют словом grid или гетерогенными вычислениями. Первый термин прижился потому, что каждый компьютер образует узел сети (grid), а второй — поскольку все узлы разные по своей архитектуре и набору установленного софта. Основная сложность заключается именно в том, чтобы заставить этот зоопарк работать как единое целое.
Какой калькулятор лучше купить
Выбрать калькулятор дело нехитрое, однако стоит учитывать особенности и предназначение устройства. Рекомендуется перед покупкой проверять наличие гарантии от производителя и рабочее состояние вычислительной машины. Также можно обратить внимание на элемент солнечной батареи, сборку корпуса, а на крышке не должно быть зазоров и царапин. Подбирая инструмент по роду деятельности можно придерживаться следующих рекомендаций:
- Так для школьников, домохозяек, студентов подойдет вариант карманного вычислительного устройства, такого как Casio LC-401LV-B, с удобными кнопками и стандартным набором функций;
- Бухгалтерам, бизнесменам, продавцам можно порекомендовать купить настольный калькулятор Attache SW-2472CF, с моментальным переходом на другие действия и быстрым набором;
- Для инженеров, школьников студентов сдающих ЕГЭ лучшим станет Casio FX-991ESPlus-Sbehd, с встроенной функцией построения таблиц и численным интегрированием;
- Работникам банковской сферы можно порекомендовать только инструмент с печатью Casio HR-150RCE-WA-EC, который обладает расширенным функционалом и возможностью вывода информации на бумагу.
Рынок оргтехники довольно широк, представленные в рейтинге товары всего лишь рекомендованы для приобретения, как проверенный и протестированный ассортимент.
Наиболее популярные фирмы
Программируемый калькулятор Электроника МК-61 (СССР)
Компаний, занимающихся выпуском таких вычислительных устройств немало. Но, все-таки основными, наиболее известными и популярными являются Citizen, Casio, Canon, Hewlett-Packard, Texas Instrument. Продукция этих компаний появилась на российском рынке несколько десятилетий назад, и, с тех пор заслужила статус надежной, качественной и экономичной. Калькуляторы этих фирм, вне зависимости от типа исполнения и предназначения, всегда востребованы, имеют стильный дизайн и доступную цену. Компании при выпуске товара применяют новые технологии, учитывают все современные тенденции оформления и функциональных возможностей.
Цены на данный вид товара достаточно демократичны. Цена простого карманного калькулятора начинается от 60-70 рублей. Настольный бухгалтерский обойдется немного дороже – 300-400 рублей. Печатающий аппарат стоит немногим более 1000 рублей. Безусловно, программируемый калькулятор для сложных научных расчетов или графический имеют большую стоимость, порядка 4000-5000 тысяч рублей, но их возможности и сфера применения оправдывают эту цену.
Нынешнее время
Примерно с 2013 года началось стремительное развитие машин вычислительного типа шестого поколения. Представлены электронными и оптоэлектронными ЭВМ с работой на основе десятков тысяч микропроцессоров. Они наделены параллелизмом. Способны моделировать архитектуру нейронных биологических систем, благодаря чему возможно успешное распознавание сложных образов.
Сейчас для «крупных» операций в качестве решений используют суперкомпьютеры. Они не предназначаются для стационарного «домашнего» применения. Обладают множеством функций и огромной мощностью. Основная сфера применения – Big Data.
Технологии и IT стремительно развиваются. Неизвестно, какие еще идеи будут реализованы в ближайшее время. Но в эру цифровых технологий разработчики стараются внедрять в свои машины искусственный интеллект.
Тенденции показывают то, что фирмы-производители стараются по сей день совершенствовать рассматриваемые «девайсы». Настоящее время демонстрирует следующее — они больше ориентированы на «рядового пользователя». Наделяются не только красивым интерфейсом, но и обладают неплохими мощностями.
Также вам может быть интересна статья «Компьютер – как все начиналось».
P. S. Интересуют компьютеры и сфера информационных технологий? Обратите внимание на профессиональные курсы Otus!