Научная статья на тему 'Компьютерная математика для вычислительной сети'

Компьютерная математика для вычислительной сети Текст научной статьи по специальности «Математика»

CC BY
758
64
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНАЯ МАТЕМАТИКА / ВЫЧИСЛИТЕЛЬНАЯ СЕТЬ / COMPUTER MATHEMATICS / COMPUTER NETWORK

Аннотация научной статьи по математике, автор научной работы — Малашонок Геннадий Иванович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Computer mathematics for computational network

A project of the computer mathematics system for computational network is stated. The kernel components of this system are obtained by the basic mathematical objects (numbers, polynomials, functions, matrixes, sequences, series). These mathematical objects are kept in internal memory or out-of-core.

Текст научной работы на тему «Компьютерная математика для вычислительной сети»

УДК 004.421

КОМПЬЮТЕРНАЯ МАТЕМАТИКА ДЛЯ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ1 (с) Г. И. Малашонок

Ключевые слова: компьютерная математика, вычислительная сеть.

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

1 Введение

В истории развития вычислительных технологий выделяют два особо важных события — это появление Интернета и появление Суперкомпьютеров. Очередная технологическая революция в вычислительных технологиях происходит сегодня. Она связана с созданием Вычислительных сетей и Гридов, которые связывают многие удалённые суперкомпьютеры в единое вычислительное пространство, с появлением технологии, которые называют «облачные вычисления». Вычислительные сети позволяют не только накапливать информацию и обеспечивать к ней доступ, но и сохранять, поставлять и применять научные знания. Вычислительные сети позволяют получать новые научные знания в результате вычислительного эксперимента с виртуальной моделью реального объекта, задействуя при этом недоступные раннее вычислительные мощности.

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

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

Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект 2.1.1/1853) и Темплана 1.12.09.

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

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

2 Базис системы

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

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

Выделим основные компоненты ядра такой системы.

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

— В силу особой роли, которую играют в математике рациональные функции: полиномы многих переменных и дробно-рациональные функции, эти объекты вместе с элементарными операциями на них образуют важные алгебры рациональных функций. Они могут образовать отдельный «полиномиальный пакет», куда будут входить классы полиномов и рациональных функций над числовыми множествами. Здесь должны решаться задачи нахождения полиномиальных НОД и НОК, нахождения результанта двух полиномов, вычисления базиса полиномиального идеала, выполнения операций над полиномиальными идеалами, задачи разложения полиномов на множители, нахождение корней полиномов и другие полиномиальные задачи.

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

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

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

3 Иерархия математических объектов

Основное математическое понятие «элемент» естественно поставить в вершине иерархии всех объектов такой системы. Это достаточно сильное требование, унифицирующее все объекты такой математической системы. При этом из системы сразу исключаются переменные, которые представляются простыми типами данных. Любой математический объект должен быть наследником класса Element, следовательно, сам должен быть не простым типом, а объектом.

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

Element является главным абстрактным классом, и он не имеет динамических полей. Абстрактные методы в данном классе предназначены для задания основных операций с элементами алгебраических структур. В этом классе предусмотрены методы. add, subtract, multiply, divide, power, GCD, extendedGCD, mod, modlnverse, modPower, divideAndRemainder, random, а также семейство методов типа valueOf, которые предназначены для отображения в ту алгебру, в которой лежит данный текущий представитель элемента, элементов других алгебр. Операций умножения может быть несколько. Например, умножение полиномов или матриц может выполняться разными алгоритмами. Поэтому операции умножения можно снабдить индексом, который будет указывать на

конкретный алгоритм.

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

4 Основные классы

4.1 Числовые классы

Можно выделить 12 основных числовых классов.

Это 6 точных числовых классов и 6 приближённых числовых классов. Набор точных числовых классов составляют классы Z, Q, Cz, Cq, Zp и Zp2>2 . Здесь обозначено:

Z — целые числа;

Q — рациональные числа;

Cz = {а + ib : а,Ъ £ Z,i2 = —1} — кольцо целых комплексных чисел;

Cq = {а + ib : a,b Е Q, г2 — — 1} — поле рациональных комплексных чисел;

Zp = ZjpZ — простое поле характеристики р;

Zp32 = Z/pZ — простое поле, у которого характеристика не превосходит 231 — 1 — максимального положительного числа в четырехбайтном слове. Последний класс чисел часто используется в приложениях компьютерной алгебры, т. к. позволяет существенно ускорить вычисления по сравнению с Zp .

Основные классы для приближённых чисел: R, С, Л64, С64, R128 и С128 . Здесь мы используем следующие обозначения:

R6A — это стандартные 64-разрядные числа с плавающей точкой для хранения приближённых действительных чисел;

R — это числа с плавающей точкой для хранения приближённых действительных чисел с произвольной мантиссой;

R128 — это числа с плавающей точкой для хранения приближённых действительных чисел со стандартной 52-разрядной мантиссой и отельным 32-разрядным полем для хранения порядка.

Три комплексных класса С, С64 и С128 образованы из классов R, Д64 и Ш28 традиционным путем.

4.2 Полиномиальный класс

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

4.3 Класс дробей

Класс дробей является наследником класса Element. У него есть два динамических поля типа Element для числителя и знаменателя дроби. Дочерним классом для дробей служит

класс рациональных чисел Q и класс комплексных рациональных чисел Cq. Числители v знаменатели в классе Q — это целые числа типа Z, а в классе Cq — целые комплексные числа. Динамические поля в этих классах наследуются из класса дробей.

4.4 Класс рациональных функций

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

4.5 Классы трансцендентных функций, последовательностей и рядов

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

4.6 Классы матриц, векторов и тензоров

Классы плотных и разреженных матриц - MatrixD и MatrixS, классы векторов и тензоров имеют элементы типа Element. Основные матричные методы это: adjoint, det, kernel, echelonForm, inverse, charPol. Центральным матричным методом является рекурсивный блочный метод adjDet. Этот метод возвращает определитель матрицы вместе с присоединённой и эшелонной матрицей. Ядро линейного оператора вычисляется исходя из эшелонной матрицы. Обратная матрица вычисляется на основе присоединённой матрицы и определителя. Отдельным методом является метод charPol, который обеспечивает вычисление характеристического полинома матрицы.

5 Структуры данных для внешней памяти

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

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

ЛИТЕРАТУРА

1. Малашонок Г. И. О проекте параллельной компьютерной алгебры. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14, вып. 4, 2009. С.744-748.

Malaschonok G.I. Computer mathematics for computational network. A project of the computer mathematics system for computational network is stated. The kernel components of this system are obtained by the basic mathematical objects (numbers, polynomials, functions, matrixes, sequences, series). These mathematical objects are kept in internal memory or out-of-core.

Key words: computer mathematics, computer network.

Поступила в редакцию 20 ноября 2009г.

УДК 004.421

О КОМПОЗИЦИИ ФУНКЦИЙ и МАШИННОМ ПРЕДСТАВЛЕНИИ 1

© Г. И. Малашонок, Р. А. Смирнов

Ключевые слова: каноническая форма, формат хранения функций, композиция функций.

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

1 О представлении в компьютере композиции функций

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

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

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

1 Работа выполнена при поддержке программы "Развитие потенциала высшей школы" (проект 2.1.1/1853)

i Надоели баннеры? Вы всегда можете отключить рекламу.