УДК 004.41 + 004.222.3

Б. В. Русинка, С. В. Иваница, Л. И. Дорожко

Донецкий национальный технический университет, г. Донецк

кафедра компьютерной инженерии

Организация КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ ПРИ МНОГОКОДОВОМ ПРЕДСТАВЛЕНИИ ЧИСЛОВЫХ ДАННЫХ

Аннотация

Б. В. Русинка, С. В. Иваница, Л. И. Дорожко. Организация компьютерных вычислений при многокодовом представлении числовых данных. Проведен анализ модифицированных форматов чисел с плавающей запятой. Выбраны оптимальные форматы, а также среда разработки для программной реализации тетраарифметики. Предложены алгоритмы работы программы, направленной повышение точности и достоверности компьютерных вычислений.

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

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

В [2, 4] рассмотрены и аргументированы ошибки компьютерных вычислений с числами в формате с плавающей запятой стандарта IEEE 754-2008 в задачах теоретического характера, в числе которых известный «неожиданными» результатами полином Румпа [5], вычисление которого из-за особенностей форматов чисел с плавающей запятой одинарной и двойной точности приводит к неверному результату.

Анализ причин, приводящих к ошибкам компьютерных вычислений (т. е. к их недостоверности), указывает на недостатки, связанные с особенностями использования формата IEEE 754-2008 в современном компьютинге.

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

В цикле научных работ предлагается использовать интервальные анализ и арифметику как средство учета ошибок округления при компьютерных расчетах [6]. Недостаток такого подхода состоит в том, что при отсутствии машинных интервалов в современных ЭВМ необходимо вновь прибегать к вещественным форматам стандарта IEEEE 754 для хранения интервальных чисел.

В работах [4, 7] рассматриваются модифицированные форматы чисел с плавающей запятой с использованием тетралогики и тетракодирования. Использование таких форматов видится наиболее перспективным, поскольку в качестве разряда тетракода выступает тетрит, который по отношению к разряду двоичного кода – биту, – имеет ряд преимуществ, среди которых возможность хранения множественных (в том числе однозначно не определенных) числовых данных [4, стр. 28].

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

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

Постановка задачи исследования. Главной задачей исследования является выделение одного из предложенных в [4, стр. 203–216] модифицированных форматов для его последующего использования как основного типа данных при организации тетравычислений. Вторая задача сводится к выбору программной платформы с отбором необходимых программных библиотек, обеспечивающих дополнительную «вычислительную гибкость» всего проекта. Третья задача – разработка режимов и алгоритмов работы вычислительной среды.

Решение задач и результаты исследований.

Анализ структуры предложенных в [4] модифицированных форматов показал, что для программной реализации тетравычислений с обеспечением многокодового представления данных использование дробного формата одинарной (pbinary128/32fp) и двойной точности (pbinary256/64fp) отвечает всем факторам необходимости и достаточности. Это формат кодирующий число в поля числителя и знаменателя по принципу обыкновенной математической дроби, однако и числитель и знаменатель представлены как числа с плавающей запятой.

Для программной реализации тетраарифметики с числами в форматах pbinary128/32fp и pbinary256/64fp был выбран язык PHP, являющийся скриптовым языком для разработки веб-приложений. Преимущества такого выбора очевидны: вычисления могут быть реализованы в виде веб-приложения, которое будет кроссплатформенным и доступным для пользователей, подключенных к сети Интернет. Преимущества выбора языка PHP также обусловлены его тесным взаимодействием с большим количеством различных систем управления базами данных (например, MySQL).

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

Поэтому в рассмотрение попали библиотеки, реализующие «длинную арифметику»: стандартные библиотеки языков C# и JavaScript, а также внешняя библиотека GMP (GNU Multi-Precision Library) для языков C# и PHP. Проведенные исследования, результаты которых приведены на рис. 1, показали, что связка PHP + GMP оптимальна, поскольку является самой быстрой.

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

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

Рисунок 1 – Результаты исследования быстродействия
(1 – цикличное возведение в степень; 2 – единичное возведение в степень; 3 – операция сложения «длинных» чисел; 4 – перевод из строки в «длинное» число; 5 – перевод «длинного» числа в строку;
6 – операция вычитания «длинных» чисел)

Рисунок 2 – Блок-схема работы предложенного вычислителя
(слева – общий вид, справа – первая часть работы)

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

Список литературы

1. Douglas N. Arnold Some disasters attributable to bad numerical computing / Интернет-ресурс. — Режим доступа: http://www.ima.umn.edu/~arnold/disasters — Загл. с экрана.

2. Brisebarre N. Floating-Point Arithmetic / F. Dinechin, C. Jeannerod, V. Lefevre, G. Melquiond, J. Muller, N. Revol, D. Stehle, S. Torres — Laboratoire LIP, Projet Arenaire CNRS, INRIA, Ecole Normale Superieure de Lyon. — France, 2009 — 16 р.

3. Петров Ю. П. Обеспечение достоверности и надежности компьютерных расчетов. / Ю. П. Петров — СПб.: БХВ-Петербург, 2012. — 160 с.: ил.

4. Аноприенко А. Я. Постбинарный компьютинг и интервальные вычисления в контексте кодо-логической эволюции. / А. Я. Аноприенко, С. В. Иваница — Донецк: ДонНТУ, УНИТЕХ, 2011. — 248 с.

5. Loh E. Walster Rump’s Example Revisited / Eugene Loh, G. William Walster. — Reliable Computing, June 2002, Vol. 8. — pp. 245–248.

6. Шарый С.П. Конечномерный интервальный анализ. — Новосибирск, Институт вычисл. технологий СО РАН, Изд. «XYZ», 2013. — 606 с.

7. Аноприенко А. Я. Тетралогика, тетравычисления и ноокомпьютинг. / А. Я. Аноприенко, С. В. Иваница — Донецк, ДонНТУ, УНИТЕХ, 2012. — 308 с.