<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="ru">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Библиотека параллельной арифметики многократной точности для высокопроизводительных систем \ast</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">К</forename><forename type="middle">С</forename><surname>Исупов</surname></persName>
						</author>
						<author>
							<persName><forename type="first">В</forename><forename type="middle">С</forename><surname>Князьков</surname></persName>
						</author>
						<title level="a" type="main">Библиотека параллельной арифметики многократной точности для высокопроизводительных систем \ast</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">ECBD97485EDF4FDB14643FA5203BEBE7</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:04+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>При решении больших задач на высокопроизводительных системах 64-битной арифметики с плавающей точкой IEEE часто оказывается недостаточно для получения корректных результатов. Возникает необходимость использования высокоточных вычислений. В этой работе рассмотрены актуальные приложения высокоточных вычислений. Представлен обзор существующего программного обеспечения. Обсуждаются требования к перспективным программным средствам. Рассмотрена новая библиотека высокоточной арифметики MF-Library. В этой библиотеке для представления чисел с плавающей точкой произвольной длины используется система остаточных классов. Это обеспечивает эффективное выполнение основных высокоточных арифметических операций с распараллеливанием обработки отдельных цифр мантиссы. MF-Library реализует концепцию потоковой безопасности, что позволяет использовать ее на системах с общей памятью. Представлены экспериментальные оценки эффективности MF-Library.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="ru">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Введение</head><p>Рост производительности современных компьютеров позволяет решать все более и более сложные задачи, что приводит к необходимости выполнять большое количество операций с плавающей точкой, почти каждая из которых сопровождается ошибкой округления. Экзафлопсный уровень скорости вычислений (10 18 операций в секунду), вероятно, будет достигнут в ближайшие десять лет и получить точные результаты на таких вычислительных системах в машинной арифметике IEEE-754 будет непростой задачей <ref type="bibr" target="#b0">[1]</ref>.</p><p>Уже сейчас многие научные и промышленные вычисления требуют использования арифметики многократной точности. Перечислим наиболее распространенные из них.</p><p>1. Плохо обусловленные линейные системы. Многие проблемы нехватки точности связаны с необходимостью решения плохо обусловленных систем большого порядка. Например, в задачах строительной механики возникают системы с десятками миллионов неизвестных и с числом обусловленности 10 9 -10 13 <ref type="bibr" target="#b1">[2]</ref>. Также задачи данного класса возникают при изучении кулоновских атомных систем <ref type="bibr" target="#b2">[3]</ref> и при исследовании электромагнитного рассеяния <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>. В задаче среднеквадратичной аппроксимации непериодических функций неортогональным степенным базисом возникает необходимость решения систем с матрицей Гильберта, которая известна плохой обусловленностью <ref type="bibr" target="#b5">[6]</ref>.</p><p>2. Рекуррентные формулы и большие суммы. Аномальные результаты часто связаны с потерей ассоциативности при суммировании, особенно при его выполнении на параллельной компьютерной системе, где порядок суммирования не может контролироваться <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b7">8]</ref>. Необходимость вычисления больших сумм возникает, в частности, при использовании квадратурных формул для интегрирования полиномов высоких степеней на сетках с малым шагом. К практическим задачам, основанным на вычислении рекуррентных соотношений, чувствительных к ошибкам округления, относится реализация дискретного преобразования Фурье в форме рекурсивного фильтра -алгоритм Гёрцеля <ref type="bibr" target="#b8">[9]</ref>, а также рекурсивное дискретное косинус-преобразование <ref type="bibr" target="#b9">[10]</ref>. Эти задачи имеют большое значение в цифровой обработке сигналов. В теории приближений \ast Работа выполнена при финансовой поддержке РФФИ в рамках научного проекта № 14-07-31075 мол_а.</p><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org важную роль играют полиномы Чебышева, которые также вычисляются с помощью рекуррентных соотношений.</p><p>3. Жесткие системы дифференциальных уравнений. Такие системы возникают в задачах химической кинетики с одновременным присутствием очень медленно и очень быстро протекающих химических реакций <ref type="bibr" target="#b10">[11]</ref>, при исследовании суточных колебаний озона в атмосфере <ref type="bibr" target="#b11">[12]</ref>, а также в задачах расчета динамики многозвенных систем <ref type="bibr" target="#b10">[11]</ref>.</p><p>4. Крупномасштабное моделирование. Вычисления, устойчивые на небольших задачах, выполняемые на однопроцессорных системах, могут сопровождаться значительными численными ошибками при масштабировании до уровня массивно-параллельных систем. К крупномасштабным задачам относится моделирование климата <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b13">14]</ref>, моделирование атмосферы сверхновых звезд <ref type="bibr" target="#b6">[7]</ref>, моделирование процессов, протекающих в ядерных реакторах, расчет дозвукового обтекания летательного аппарата <ref type="bibr" target="#b12">[13]</ref>.</p><p>5. Продолжительное моделирование. Практически любой процесс физического моделирования, выполняемого в течение длительного времени, в конечном итоге отходит от реальности. Это связано с накоплением ошибок округления в дополнение к ошибкам, связанным с дискретизацией по времени и пространству. Показательным примером является задача численного исследования орбитальной эволюции небесных тел <ref type="bibr" target="#b14">[15,</ref><ref type="bibr" target="#b15">16]</ref>.</p><p>6. Экспериментальные математические расчеты. Многие результаты в этой сравнительно молодой области научных исследований (например, формула Бэйли -Боруэйна -Плаффа для вычисления числа \pi ) не могли быть получены без использования вычислений с очень высокой точностью <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b15">16]</ref>.</p><p>Приведенные области применения высокоточных вычислений характеризуются, как правило, большой размерностью задач. Вместе с тем, даже при малом объеме вычислений в машинной арифметике может быть получен результат, не содержащий ни одной значащей цифры <ref type="bibr" target="#b16">[17]</ref><ref type="bibr" target="#b17">[18]</ref><ref type="bibr" target="#b18">[19]</ref>. Таким образом, проблема обеспечения приемлемой точности вычислений актуальна в настоящее время и с ростом объемов производимых вычислений, ее значение, несомненно, будет возрастать.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Программное обеспечение высокоточных вычислений</head><p>Одним из способов повышения точности в настоящее время является 128-битный IEEE формат <ref type="bibr" target="#b19">[20]</ref>, в котором поле мантиссы расширено до 113 разрядов. Однако аппаратная поддержка этого формата требует значительных затрат <ref type="bibr" target="#b15">[16]</ref> и, судя по всему, не предвидится в ближайшей перспективе. Более распространенным вариантом является длинная арифметика -программная обработка чисел, разрядность которых превышает стандартную длину машинного слова вычислительной машины. В настоящее время существует достаточно широкий спектр библиотек длинной арифметики. К наиболее известным относятся следующие. Ознакомиться с представленными критериями эффективности высокоточного программного обеспечения, а также найти другие критерии, можно найти в работе <ref type="bibr" target="#b15">[16]</ref>, которая и взята за основу изложенного материала.</p><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Следует отметить, что в настоящее время значительно возрастает роль векторных (SIMD) вычислений, в том числе и на центральных процессорах, длина векторных регистров которых неизменно увеличивается. В связи с этим важным требованием является возможность распараллеливания высокоточных арифметических операций на уровне отдельных цифр многоразрядных мантисс. Но такая задача весьма трудоемка в рамках модели позиционной длинной арифметики, которая предполагает в процессе вычислений учет возможных переносов между соседними блоками цифр многоразрядной мантиссы. В результате этого алгоритмы обработки длинных чисел сильно ветвятся и не распараллеливаются, что противоречит основной концепции SIMD-вычислений. Распараллеливание на уровне отдельных цифр мантиссы наиболее актуально при реализации операций с очень высокой точностью, которые выполняются во много раз медленнее операций машинной точности.</p><p>Далее рассматривается новая библиотека высокоточных вычислений, нацеленная на удовлетворение перечисленных требований. В основе библиотеки лежит формат представления длинных чисел, ориентированный на параллельную обработку.</p><p>3. MF-Library -программная библиотека параллельных высокоточных вычислений</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Тип данных</head><p>В библиотеке MF-Library для внутреннего представления длинных чисел с плавающей точкой используется модулярно-позиционный формат (MF-формат) <ref type="bibr" target="#b26">[27,</ref><ref type="bibr" target="#b27">28]</ref>, описание полей которого представлено в таблице 1. В MF-формате для представления длинной мантиссы M используется система счисления с параллельной структурой -система остаточных классов (СОК) <ref type="bibr" target="#b28">[29,</ref><ref type="bibr" target="#b29">30]</ref>. В соответствии с этим, мантисса представляется набором остатков residue 1 , residue 2 , . . . , residue n по модулям СОК p 1 , p 2 , . . . , p n , где residue i \equiv M mod p i . Обработка residue i по различным модулям p i выполняется параллельно. Мантисса может принимать значения из диапазона [0, P ), где P -произведение всех p i . Следовательно, варьирование количества модулей позволяет задавать произвольную точность вычислений. Обеспечить достаточно большой динамический диапазон, что важно в научных вычислениях, где часто требуется обработка величин очень большого или очень малого масштаба, позволяет двоичный порядок (exp). Значение числа в MF-формате определяется следующим выражением: </p><formula xml:id="formula_0">x = ( - 1)</formula><formula xml:id="formula_1">где B i = P i \cdot | P - 1 i | p i , P i = P/p i и | P - 1 i | p i -мультипликативная инверсия P i по модулю p i .</formula><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org MF-формат обладает следующими основными характеристиками точности: машинный эпсилон -\epsilon = 2 - \lfloor \mathrm{ \mathrm{ \mathrm{ 2 (P - 1)\rfloor , unit in the last placeulp(x) = 2 \mathrm{ \mathrm{ \mathrm{ - \lfloor \mathrm{ \mathrm{ \mathrm{ 2 ((P - 1)/M )\rfloor , где M -десятичное значение мантиссы. Абсолютные и относительные ошибки округления ограничены, соответственно, величинами ulp(x) и 2\epsilon при округлении мантиссы усечением <ref type="bibr" target="#b26">[27]</ref>. Точность вычислений (в терминах IEEE-754 точность соответствует разрядности мантиссы) определяется половиной длины диапазона изменения мантиссы, т.е. величиной log 2 \surd P -1. Дополнительно в MF-формат включена атрибутивная информация -интервальнопозиционная характеристика (ИПХ) мантиссы, представленная двумя направленно округленными двоичными числами с плавающей точкой -нижней (ic_bot) и верхней (ic_top) границами. ИПХ не участвует в образовании значения числа, но позволяет в значительной степени преодолеть основной недостаток СОК -высокую сложность немодульных операций, таких как сравнение, определение знака, контроль переполнения, масштабирование и пр. ИПХ локализует отношение величины мантиссы M к произведению модулей P так, что ic_bot \leq M/P \leq ic_top. Вопросы использования ИПХ в немодульных вычислениях обсуждаются в <ref type="bibr" target="#b26">[27,</ref><ref type="bibr" target="#b30">31]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Структура и функциональность</head><p>Структурно MF-Library включает в себя три слабосвязанных уровня, каждый из которых объединяет однотипные модули (Рис. 1). Связь уровней реализуется посредством API, который также доступен пользователю. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Рис. 1. Структура MF-Library</head><p>Центральной частью пакета является модуль ядра. В подмодуле MF-формата объявлен основной тип данных, реализованы функции по выделению и освобождению памяти, а также подпрограммы инициализации основных статичных объектов, используемых другими подмодулями. Арифметический подмодуль реализует следующие алгоритмы высокоточных вычислений: сложение, вычитание, умножение, деление, выравнивание порядков, сравнение. Подробное описание этих алгоритмов с оценками эффективности можно найти в <ref type="bibr" target="#b26">[27,</ref><ref type="bibr" target="#b27">28]</ref>. Подмодуль IPC реализует алгоритмы вычисления и анализа интервально-позиционных характеристик, необходимые для быстрого выполнения немодульных операций над мантиссами. Подмодуль округления включает в себя подпрограммы модулярного масштабирова-ния степенью двойки, проверки необходимости округления и округления чисел. Подмодуль ввода / вывода обеспечивает следующие возможности: ручной ввод MF-числа, установка MF-числа из форматов double и mpfr_t (многоразрядный тип данных библиотеки MPFR), установка случайного MF-числа, преобразование MF-числа в тип double (с возможной потерей точности), форматированная печать. В подмодуле служебных констант объявлены идентификаторы статичных объектов, вычисляемых при инициализации пакета. В подмодуле основных параметров содержатся управляющие флаги и константы, определяющие все аспекты работы пакета. К их числу относятся: точность вычислений, модули СОК, флаг векторизации, флаг режима отладки, флаг работы в "тихом" режиме, в котором игнорируются некоторые некритичные исключения арифметики с плавающей точкой.</p><p>модуле служебных подпрограмм содержатся утилиты для управления режимами округления, генераторы случайных чисел, функции преобразования типов, базовые алгоритмы модулярной арифметики: получение мультипликативной и аддитивной инверсии, алгоритм Евклида, преобразование в позиционную систему, алгоритм генерации оснований для заданной точности вычислений и пр. Для отладки ядра в состав пакета включен модуль низкоуровневых тестов. Для автоматической конфигурации MF-Library и перехода на другой базис СОК (при изменении точности вычислений) используется вспомогательный модуль длинной позиционной арифметики (MPFR+GMP).</p><p>Промежуточный уровень реализует итерационные методы высокоточного вычисления математических констант и некоторых классов элементарных функций.</p><p>На прикладном уровне реализованы высокоточные матричные, матрично-векторные и векторные операции, входящие в состав BLAS (GEMM, GEMV и пр.), метод сопряженных градиентов для решения больших систем уравнений и конечно-разностный метод решения краевой задачи теплопроводности.</p><p>В настоящее время завершена работа над нижним уровнем пакета. Ведутся работы по расширению функциональности промежуточного и прикладного уровней. В результате этих работ ожидается, что на промежуточном уровне будут реализованы все представленные в предыдущем разделе функции, а также будут определены оптимизированные примитивы для эффективного хранения и обработки плотных и разреженных матриц. На прикладном уровне будут реализованы методы численного интегрирования, дифференцирования и методы решения некоторых задач для дифференциальных уравнений.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Экспериментальная оценка MF-Library</head><p>Для экспериментальной оценки корректности и эффективности методов каждого уровня пакета MF-Library были разработаны и выполнены соответствующие тесты. Остановимся на рассмотрении результатов некоторых из них <ref type="foot" target="#foot_0">1</ref> .</p><p>Расчеты с катастрофической потерей точности. Исследовалась корректность MF-Library при решении задач, которые даже при незначительном объеме вычислений сопровождаются возникновением катастрофических погрешностей. Такие задачи часто используются для верификации высокоточных программных средств. Первая задача заключалась в вычислении следующего полинома восьмой степени (S.M. <ref type="bibr">Rump, 1988 [17]</ref>):</p><formula xml:id="formula_2">f (a, b) = 333.75b 6 + a 2 (11a 2 b 2 -b 6 -121b 4 -2) + 5.5b 8 + a/(2b),<label>(1)</label></formula><p>при a = 77617.0 и b = 33096.0. В качестве эталонного использовалось решение, полученное с использованием 4096-битной арифметики библиотеки MPFR. Результаты представлены в таблице 2. Более высокая точность MF-Library по сравнению с MPFR (256 бит) объясняется использованием предвычислительной схемы округления <ref type="bibr" target="#b27">[28]</ref>, которая позволяет использовать для представления мантисс весь динамический диапазон, а не его половину. Вторая исследованная задача -вычисление рекуррентного соотношения Мюллера <ref type="bibr" target="#b17">[18]</ref>:</p><formula xml:id="formula_3">f (y, z) = 108 -(815 -1500/z)/y,</formula><p>x 0 = 4.00, x 1 = 4.25,</p><formula xml:id="formula_4">x i = f (x i - 1 , x i - 2 ).<label>(2)</label></formula><p>Параметры этого соотношения подобраны таким образом, что при точных вычислениях lim n\rightar\infty x n = 5.0. Однако из-за влияния ошибок округления последовательность \{ x n \} отходит от верного ответа к неподвижной для данного рекуррентного соотношения точке x \ast = 100.0. Номер итерации, с которой начинается такой переход, прямо пропорционален точности вычислений. Результаты эксперимента представлены на Рис. 2. Эффективность векторизации. Исследованы операции сложения (add), вычитания (sub), умножения (mult), сравнения (cmp), сложения с накоплением (aac, x \leftarr x + y), вычитания с накоплением (sac, x \leftarr x -y), умножения с накоплением <ref type="bibr">(</ref> Эффективность векторизации оценивалась по формуле  В работах <ref type="bibr" target="#b26">[27,</ref><ref type="bibr" target="#b27">28]</ref> представлены результаты других экспериментов по исследованию эффективности библиотеки MF-Library.</p><formula xml:id="formula_5">E \pi (n) = S \pi (n) \pi = T 1 (n) \pi T \pi (n) , где S \pi (n) = T 1 (n)/T \pi (n) -полученное ускорение, T 1 (n) -</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Выводы</head><p>С ростом производительности вычислительных систем и размерности решаемых задач возрастает значимость вычислений многократной точности. Уже сейчас имеется целый ряд актуальных приложений, которые требуют оперировать числами с разрядностью, на несколько порядков превосходящей длину машинного слова. Следует полагать, что с течением времени количество таких приложений будет увеличиваться. В связи с этим, проблема обеспечения приемлемой точности отмечается многими исследователями, как одна из наиболее актуальных проблем программного обеспечения экзафлопсных суперкомпьютеров.</p><p>Современный этап развития вычислительной техники приводит к новым требованиям, предъявляемым к высокоточному программному обеспечению. К числу основных из таких требований относятся высокая скорость, потоковая безопасность и эффективное использование современных параллельных архитектур. В этой статье рассмотрен новый программный пакет высокоточных вычислений MF-Library, нацеленный на удовлетворение этих требований. В основе пакета лежит модулярно-позиционный способ представления длинных чисел, изначально ориентированный на параллельную обработку. Алгоритмы, заложенные в MF-Library, лишены недостатков аналогов, связанных с необходимостью затратной обработки переносов между соседними цифрами длинной мантиссы, и соответствуют архитектуре современных центральных процессоров, позволяя эффективно использовать как многоядерность, так и возможности SIMD-обработки в пределах ядра. Благодаря потоковой безопасности, MF-Library может эффективно использоваться на параллельных системах с общей памятью, что подтверждается представленными результатами экспериментов.</p><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org В настоящий момент ведутся работы по расширению функциональности MF-Library. Одновременно с этим начата работа по созданию версии пакета для графических процессоров. Конечной целью исследований является создание унифицированного алгоритмического и программного обеспечения, позволяющего эффективно выполнять высокоскоростные параллельные расчеты с плавающей точкой многократной точности на современных и перспективных высокопроизводительных системах с гибридной архитектурой.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Литература</head></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Таблица 1 .</head><label>1</label><figDesc>MF-формат для представления чисел с плавающей точкой произвольной длины</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Таблица 2 .</head><label>2</label><figDesc>Результаты вычисления полинома<ref type="bibr" target="#b0">(1)</ref> </figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Рис. 2 .</head><label>2</label><figDesc>Результаты вычисления рекуррентного соотношения<ref type="bibr" target="#b1">(2)</ref>. Графики показывают, что точность MF-Library сопоставима с точностью MPFR (256 бит).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Рис. 4 .Рис. 5 .</head><label>45</label><figDesc>Зависимость времени высокоточного выполнения операции GEMM от порядка матриц n. Зависимость времени высокоточного выполнения операции GEMV от размера векторов n</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Из существующих программных пакетов высокоточных вычислений потоковая безопасность задекларирована лишь в MPFUN2015 и GMP. Также библиотеки MPFR и MPFR C++ предусматривают потоково-безопасный вариант сборки.3. Поддержка современных параллельных архитектур. В основе большинства суперкомпьютеров лежит гибридная архитектура, которая предполагает совместное использование центральных (CPU) и графических (GPU) процессоров. Сегодня уже очевидно, что вычислительные архитектуры экзафлопсной производительности будут гибридными. Поэтому одно из главных требований к перспективным алгоритмам и программному обеспечению арифметики многократной точности -высокая эффективность при реализации как на CPU-, так и на GPU-узлах. Существующие же средства ориентированы, главным образом, на универсальные процессоры, а GPU-реализации представлены слабо. Из высокоточных библиотек, реализующих все арифметические операции, тригонометрию и ряд других математических функций, отмечаются лишь GARPREC и GQD<ref type="bibr" target="#b25">[26]</ref>, причем в основе GARPREC лежат весьма затратные алгоритмы, а GQD поддерживает только расширенную точность (форматы "double-double" и</figDesc><table><row><cell>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org</cell></row><row><cell>3. GMP [22]. Библиотека произвольной точности, имеет обширный набор оптимизиро-</cell></row><row><cell>ванных процедур для поддержки вычислений с целыми, рациональными и веществен-</cell></row><row><cell>ными числами. Режимы округления, совместимые со спецификациями IEEE-754, не</cell></row><row><cell>поддерживаются. Имеет интерфейс языка C. Доступна на сайте http://gmplib.org.</cell></row><row><cell>4. MPFR [23]. Расширение GMP, обеспечивающее вычисления многократной точности с</cell></row><row><cell>возможностью использования одного из четырех режимов округления, соответству-</cell></row><row><cell>ющих стандарту IEEE-754. Точность может быть установлена отдельно для каждой</cell></row><row><cell>переменной. Нормализованные числа не поддерживаются. Выпускается под лицензией</cell></row><row><cell>GNU LGPL. Доступна по адресу: http://www.mpfr.org. Обладает высоким быстро-</cell></row><row><cell>действием, по сравнению со многими аналогами.</cell></row><row><cell>5. NTL [24]. Портативная C++ библиотека для решения задач теории чисел. Включа-</cell></row><row><cell>ет структуры данных и алгоритмы обработки целых чисел любой длины, векторов,</cell></row><row><cell>матриц и полиномов над целыми числами и над конечными полями, а также арифме-</cell></row><row><cell>тику с плавающей точкой произвольной точности. Достоинство NTL -согласованный</cell></row><row><cell>интерфейс с большим разнообразием классов, представляющих математические объ-</cell></row><row><cell>екты. Доступна по адресу http://www.shoup.net/ntl/doc/tour-intro.html.</cell></row><row><cell>6. MPFUN2015 [25]. Пакет произвольной точности, являющийся развитием MPFUN90.</cell></row><row><cell>Имеет интерфейс языка Фортран-90, планируется частичная поддержка интерфейса</cell></row><row><cell>C++. Поддерживает вещественные и комплексные типы данных. К основным заде-</cell></row><row><cell>кларированным преимуществам пакета относится потоковая безопасность. Для со-</cell></row><row><cell>хранения приемлемой производительности при работе в режиме крайне высокой точ-</cell></row><row><cell>ности используются алгоритмы на базе быстрого преобразования Фурье. В состав</cell></row><row><cell>пакета входят подпрограммы вычисления алгебраических, трансцендентных и неко-</cell></row><row><cell>торых специальных функций, таких как гамма-функция, неполная гамма-функция,</cell></row><row><cell>дзета-функция. Доступен по адресу: http://www.davidhbailey.com/dhbsoftware.</cell></row><row><cell>Представленные программные средства высокоточной арифметики являются в целом</cell></row><row><cell>более эффективными и надежными, чем их предшественники. Вместе с тем, возникают</cell></row><row><cell>новые требования, которые необходимо учитывать при разработке перспективного высоко-</cell></row><row><cell>точного программного обеспечения, эффективно работающего на вычислительных системах</cell></row><row><cell>экзафлопсного класса. Рассмотрим эти требования.</cell></row><row><cell>1. QD [21]. Пакет расширенной точности, поддерживает два формата данных: double-</cell></row><row><cell>double (\approx 32 десятичные цифры) и quad-double (\approx 64 десятичные цифры). Имеет \bullet гипергеометрические функции;</cell></row><row><cell>высокоуровневые интерфейсы языков C++ и Fortran-90, что обеспечивает конверта-\bullet функции Эйри;</cell></row><row><cell>цию существующих программ с минимальным изменением исходного кода. Доступен \bullet эллиптические интегралы; для скачивания по адресу: http://crd-legacy.lbl.gov/~dhbailey/mpdist. \bullet эллиптические функции Якоби и Вейерштрасса;</cell></row><row><cell>2. ARPREC [21]. Пакет произвольной точности, включает процедуры арифметических \bullet тэта-функции.</cell></row><row><cell>вычислений, а также многих алгебраических и трансцендентных функций. Поддер-</cell></row><row><cell>живает вычисления с вещественными, целыми и комплексными числами. Имеет ин-</cell></row><row><cell>терфейсы C ++ и Фортран-90. Доступен по адресу: http://crd-legacy.lbl.gov/</cell></row><row><cell>~dhbailey/mpdist.</cell></row></table><note>1. Высокая скорость. Данный параметр является основополагающим. К недостаткам современного программного обеспечения высокоточной арифметики относится ярко выраженная зависимость времени вычислений от точности. Отмечается, в частности, что вычисления в формате double-double в среднем в 5 раз медленнее, чем в 64-битном формате, в формате quad-double -в 25 раз медленнее. При использовании библиотек произвольной точности время вычислений может возрастать в сотни и тысячи раз [16]. Это недопустимо при решении многих крупных задач, критичных к ошибкам округления и скорости вычислений. 2. Потоковая безопасность. При решении крупных задач расчеты многократной точности могут выполняться параллельно с использованием Message Passing Interface (MPI). Однако высокая производительность современных систем, построенных на базе многоядерных процессоров, обеспечивается, во многом, за счет использования разделяемой памяти. Поэтому важно иметь возможность распараллеливать высокоточные вычисления в пределах одного узла, даже если MPI используется для параллелизма между узлами. Это требует от программных средств потоковой безопасности, что означает, среди прочего, отсутствие глобальных переменных, в которые происходит запись. Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org "quad-double"). Поэтому при решении прикладных задач расчеты многократной точности выполняются на CPU, а вычислительные мощности GPU-узлов не задействуются, что, с учетом дополнительных задержек на пересылку данных, влечет существенное увеличение времени решения. Такое обстоятельство неприемлемо во многих случаях, особенно при обработке в реальном времени. Кроме этого, необходимы дополнительные исследования, чтобы оценить возможность продуктивного использования для целей высокоточных вычислений многоядерных ускорителей, таких как Intel MIC, и программируемых логических интегральных схем, таких как FPGA. 4. Поддержка произвольного уровня точности и широкого перечня функций. Уже сейчас некоторые развивающиеся приложения требуют очень высокого уровня точности (10000, 50000 или более цифр). Поэтому перспективные средства высокоточной арифметики должны использовать передовые структуры данных и алгоритмы на их основе, которые остаются эффективными, в том числе и для очень высокой точности вычислений. В этом направлении уже недостаточно реализации основных арифметических операций с произвольной точностью, так как возникает удивительно широкий спектр трансцендентных и специальных функций, требующих высокоточной оценки. Выделяется, в частности следующий перечень функций, которые должны поддерживать перспективные высокоточные пакеты [16]: \bullet основные трансцендентные функции -exp, log, sin, cos, tan, гиперболические функции и соответствующие им обратные функции; \bullet гамма, дигамма, полигамма, неполная гамма, бета и неполные бета-функции; \bullet дзета-функция Римана, полилогарифмы и L-функция Дирихле; \bullet функции Бесселя (первый, второй и третий виды, модифицированные, и т.д.);</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc>mac, x \leftarr z + xy) и Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org деления (div). Выполнялось 10 7 итераций. Тестовые данные -псевдослучайные числа, генерировались алгоритмом "Вихрь Мерсенна". Тестовая конфигурация: Intel Core i5-3570K Processor / 4 Cores / 8 Gb RAM / Intel C++ Compiler 13.0. Запуск MF-Library выполнялся в двух конфигурациях: при установленном запрете на векторизацию (прописыванием директив #pragma novector) и при использовании средств автоматической векторизации компилятора Intel C++ Compiler (#pragma simd). Во втором случае векторизовались циклы вычисления модулярных мантисс и интервально-позиционных характеристик (в пределах одного вычислительного ядра). Результаты представлены на Рис. 3.</figDesc><table><row><cell></cell><cell>0.60</cell><cell>#pragma simd</cell><cell></cell><cell>#pragma novector</cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.50</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.40</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.30</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.12</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Time ( s)</cell><cell>0.08 0.10</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.06</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.04</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.02</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>0.00</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell>add</cell><cell>sub</cell><cell>cmp</cell><cell>mult</cell><cell>aac</cell><cell>sac</cell><cell>mac</cell></row><row><cell cols="8">Рис. 3. Экспериментальные оценки времени выполнения операций многоразрядной арифметики в</cell></row><row><cell cols="8">MF-Library. Время деления, не представленное на графике, составляет в среднем 6.91 мкс и 6.33</cell></row><row><cell cols="5">мкс соответственно без векторизации и с векторизацией.</cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head></head><label></label><figDesc>Были рассмотрены последовательные и параллельные алгоритмы, что, ко всему прочему, позволяет оценить потоковую безопасность MF-Library. При выполнении операции GEMM (C \leftarr \alpha AB + \beta C) матрицы A, B, C были плотными, их порядок n изменялся с шагом 50 в интервале от 100 до 1000. Корректность выполнения операции оценивалась по норме \| C\| 1 . Полученные результаты представлены на Рис. 4. Среднее ускорение Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org MF-Library по сравнению с MPFR составило 1.9 раза и 2.3 раза соответственно при последовательных и параллельных вычислениях. При распараллеливании скорость вычислений возросла в 5.3 раза.При выполнении GEMV (y \leftarr \alpha Ax + \beta y) векторы x, y и матрица A также были плотно заполнены. Размер векторов варьировался в диапазоне от 500 до 1500 с шагом 100. Корректность операции оценивалась по норме \| y\| 1 . Результаты экспериментов представлены на Рис. 5. В данном случае по сравнению с MPFR получено ускорение 2.4 раза и 2.6 раза соответственно при последовательных и параллельных вычислениях. При распараллеливании скорость MF-Library увеличилась в среднем в 4 раза.</figDesc><table><row><cell>время вычислений без векториза-</cell></row><row><cell>ции, T \pi (n) -время вычислений с векторизацией, \pi -число пар операндов, которые могут</cell></row><row><cell>быть обработаны параллельно с использованием векторных инструкций в пределах одного</cell></row><row><cell>вычислительного ядра (для используемого процессора \pi = 4).</cell></row><row><cell>Средняя эффективность векторизации (за исключением деления) составила 0.60. Это</cell></row><row><cell>означает, что MF-Library обеспечивает эффективное использование более половины доступ-</cell></row><row><cell>ных SIMD-ресурсов вычислительного ядра. При векторизации деления получено ускорение</cell></row><row><cell>лишь в 1.09 раза (эффективность 0.27). Это связано с необходимостью затратного преобра-</cell></row><row><cell>зования модулярных мантисс в двоичную систему. В дальнейшем планируется использовать</cell></row><row><cell>более эффективный алгоритм деления.</cell></row><row><cell>BLAS-операции. Быстродействие MF-Library исследовано при выполнении операций</cell></row><row><cell>обобщенного матричного умножения (GEMM, третий уровень BLAS) и обобщенного вектор-</cell></row><row><cell>ного умножения (GEMV, второй уровень BLAS). В качестве аналога использовался пакет</cell></row><row><cell>MPFR, являющийся одним из наиболее быстрых в своем классе. Исходные данные для</cell></row><row><cell>всех операндов (матриц, векторов и скаляров) были представлены псевдо-случайными 239-</cell></row><row><cell>битными числами с плавающей точкой, что способствовало большей представительности</cell></row><row><cell>теста. Тестовая конфигурация: Intel Core i7-4702MQ (Haswell) / 4 Gb RAM / Intel C++</cell></row><row><cell>Compiler 13.0.</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Во всех экспериментах точность вычислений составляла</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="239" xml:id="foot_1">бит (72 десятичные цифры). Для этого СОК была задана 32 15-битными модулями, обеспечивающими представление 479-битных мантисс.Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A parallel multiple-precision arithmetic library for high performance systems</head><p>Konstantin Isupov and Knyazkov Vladimir Keywords: computer arithmetic, precision, rounding errors, residue number system, modularpositional format, program library</p><p>The IEEE 64-bit floating-point arithmetic is often not sufficient to correctly solve large problems on high performance systems. In this case, high-precision computations should be used. In this paper an actual high-precision applications are presented. A review of the existing software is given. The requirements to prospective high-precision software are discussed. A new multiple-precision arithmetic library MF-Library is considered. A residue number system is used to represent arbitrary-length floating-point numbers in this library. This provides effective implementation of main high-precision arithmetic operations with parallel processing of significand digits. MF-Library implements the thread-safety concept that allows you to use it in shared memory systems. Results of an experimental study on the efficiency of MF-Library are presented.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Reproducible and Accurate Matrix Multiplication for High-Performance Computing</title>
		<author>
			<persName><forename type="first">S</forename><surname>Collange</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Defour</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Graillat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Iakymchuk</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">16th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics (SCAN 2014)</title>
				<meeting><address><addrLine>Würzburg, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014">September 21-26, 2014. 2014</date>
			<biblScope unit="page" from="42" to="43" />
		</imprint>
	</monogr>
	<note>Book of Abstracts</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Решение плохообусловленных симметричных СЛАУ для задач строительной механики параллельными итерационными методами / В</title>
		<author>
			<persName><forename type="first">В</forename><surname>Якушев</surname></persName>
		</author>
		<ptr target="//ВестникННГУ.2012" />
	</analytic>
	<monogr>
		<title level="j">Якушев</title>
		<imprint>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="238" to="246" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Highly Accurate Evaluation of the Few-Body Auxiliary Functions and Four-Body Integrals</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">M</forename><surname>Frolov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">H</forename><surname>Bailey</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Physics B: Atomic, Molecular and Optical Physics</title>
		<imprint>
			<biblScope unit="volume">36</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page" from="1857" to="1867" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">High-Precision Floating-Point Arithmetic in Scientific Computation</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">H</forename><surname>Bailey</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computing in Science and Engineering</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="54" to="61" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">On the Asymptotic Expansion of the Spheroidal Wave Function and its Eigenvalues for Complex Size Parameter / B.E. Barrowes</title>
		<author>
			<persName><forename type="first">B</forename><surname>Barrowes</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Studies in Applied Mathematics</title>
		<imprint>
			<biblScope unit="volume">113</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="271" to="301" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Кузьмина Л.В. Об аппроксимации неортогональными системами // Математ</title>
		<author>
			<persName><forename type="first">Н</forename><forename type="middle">Н</forename><surname>Калиткин</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">моделирование</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="95" to="108" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">High-Precision Computation: Mathematical Physics and Dynamics</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">H</forename><surname>Bailey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Barrio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Borwein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">/ Applied Mathematics and Computation</title>
		<imprint>
			<biblScope unit="volume">218</biblScope>
			<biblScope unit="issue">20</biblScope>
			<biblScope unit="page" from="10106" to="10121" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">In Search of Numerical Consistency in Parallel Programming // Parallel Computing</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">W</forename><surname>Robey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Robey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Aulwes</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="volume">37</biblScope>
			<biblScope unit="page" from="217" to="229" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">В</forename><surname>Оппенгейм</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Шафер</surname></persName>
		</author>
		<title level="m">Цифровая обработка сигналов : пер. с англ</title>
				<editor>
			<persName><forename type="middle">С Я</forename><surname>Под Ред</surname></persName>
		</editor>
		<editor>
			<persName><surname>Шаца</surname></persName>
		</editor>
		<imprint>
			<publisher>Связь</publisher>
			<date type="published" when="1979">1979</date>
			<biblScope unit="page">416</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Compact Recursive Structures for Discrete Cosine Transform</title>
		<author>
			<persName><forename type="first">Yang J.-F</forename><surname>Fan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C.-P</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on CAS-II: Analog and Digital Signal Processing</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="314" to="321" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">Э</forename><surname>Хайрер</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Г</forename><surname>Ваннер</surname></persName>
		</author>
		<title level="m">Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи : пер. с англ</title>
				<imprint>
			<publisher>Мир</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page">685</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">Д</forename><surname>Каханер</surname></persName>
		</author>
		<author>
			<persName><forename type="first">К</forename><surname>Моулер</surname></persName>
		</author>
		<title level="m">Численные методы и программное обеспечение : пер. с англ. М</title>
				<imprint>
			<publisher>Мир</publisher>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page">575</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">В</forename><surname>Воеводин</surname></persName>
		</author>
		<ptr target="//RussianSCDays.org" />
		<title level="m">Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page">168</biblScope>
		</imprint>
	</monogr>
	<note>Вычислительная математика и структура алгоритмов</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Using Accurate Arithmetics to Improve Numerical Reproducibility and Stability in Parallel Applications</title>
		<author>
			<persName><forename type="first">Y</forename><surname>He</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Ding</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Supercomputing</title>
		<imprint>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="259" to="277" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">From Sir Isaac to the Sloan survey: Calculating the Structure and Chaos due to Gravity in the Universe</title>
		<author>
			<persName><forename type="first">G</forename><surname>Lake</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Quinn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">C</forename><surname>Richardson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">// 8th ACM -SIAM Symposium on Discrete Algorithms</title>
				<meeting><address><addrLine>Philadelphia, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1997">1997. 1997</date>
			<biblScope unit="page">10</biblScope>
		</imprint>
	</monogr>
	<note>Proceedings. SIAM</note>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">H</forename><surname>Bailey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Borwein</surname></persName>
		</author>
		<ptr target="http://www.davidhbailey.com/dhbpapers/hp-arith.pdf" />
		<title level="m">High-Precision Arithmetic: Progress and Challenges</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Algorithms for Verified Inclusions -Theory and Practice</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">M</forename><surname>Rump</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Reliability in Computing</title>
				<editor>
			<persName><forename type="first">R</forename><forename type="middle">E</forename><surname>Moore</surname></persName>
		</editor>
		<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>Academic Press</publisher>
			<date type="published" when="1988">1988</date>
			<biblScope unit="page" from="109" to="126" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><forename type="first">W</forename><surname>Kahan</surname></persName>
		</author>
		<ptr target="https://www.cs.berkeley.edu/~wkahan/Mindless.pdf" />
		<title level="m">How Futile are Mindless Assessments of Roundoff in Floating-Point Computation</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Why and How to Use Arbitrary Precision</title>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">R</forename><surname>Ghazi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Lefèvre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Théveny</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Zimmermann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computing in Science and Engineering</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="62" to="65" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m">IEEE Standard for Floating-Point Arithmetic. Introduced 2008-08</title>
				<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>Institute of Electrical and Electronics Engineers</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page">70</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<ptr target="http://crd-legacy.lbl.gov/~dhbailey/mpdist" />
		<title level="m">High-Precision Software Directory</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<ptr target="https://gmplib.org" />
		<title level="m">The GNU Multiple Precision Arithmetic Library</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">MPFR: A Multiple-Precision Binary Floating-Point Library With Correct Rounding</title>
		<author>
			<persName><forename type="first">L</forename><surname>Fousse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Hanrot</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Lefèvre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Pélissier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Zimmermann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Mathematical Software</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">2</biblScope>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<ptr target="http://www.shoup.net/ntl" />
		<title level="m">NTL: A Library for doing Number Theory</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<ptr target="http://www.davidhbailey.com/dhbpapers/mpfun2015.pdf" />
		<title level="m">MPFUN2015: A Thread-Safe Arbitrary Precision Computation Package</title>
				<imprint/>
	</monogr>
	<note>Full Documentation</note>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Supporting extended precision on graphics processors</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>He</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Luo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">// 6th International Workshop on Data Management on New Hardware (DaMoN 2010)</title>
				<meeting><address><addrLine>Indianapolis, Indiana, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010-06-07">June 7, 2010. 2010</date>
			<biblScope unit="page" from="19" to="26" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<author>
			<persName><forename type="first">К</forename><surname>Исупов</surname></persName>
		</author>
		<title level="m">Методы и алгоритмы организации высокоточных вычислений в арифметике остаточных классов для универсальных процессорных платформ : диссертация</title>
				<imprint>
			<publisher>Исупов Константин Сергеевич</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">05</biblScope>
			<biblScope unit="page">15</biblScope>
		</imprint>
	</monogr>
	<note>кандидата технических наук</note>
</biblStruct>

<biblStruct xml:id="b27">
	<monogr>
		<title level="m" type="main">Способ представления чисел с плавающей точкой большой разрядности, ориентированный на параллельную обработку // Вычислительные методы и программирование</title>
		<author>
			<persName><forename type="first">К</forename><forename type="middle">С</forename><surname>Исупов</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Мальцев</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="page" from="631" to="643" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<monogr>
		<author>
			<persName><forename type="first">И</forename><forename type="middle">Я</forename><surname>Акушский</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Д</forename><surname>Юдицкий</surname></persName>
		</author>
		<title level="m">Машинная арифметика в остаточных классах</title>
				<editor>
			<persName><surname>Сов</surname></persName>
		</editor>
		<editor>
			<persName><surname>Радио</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="1968">1968</date>
			<biblScope unit="page">440</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">The Residue Number System // IRE Transactions on Electronic Computers</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">L</forename><surname>Garner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">EC</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="140" to="147" />
			<date type="published" when="1959">1959</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<monogr>
		<author>
			<persName><forename type="first">К</forename><surname>Исупов</surname></persName>
		</author>
		<ptr target="//RussianSCDays.org" />
		<title level="m">Немодульные вычисления в системах остаточных классов с интервально-позиционными характеристиками / К</title>
				<editor>
			<persName><forename type="first">;</forename><surname>Князьков</surname></persName>
		</editor>
		<editor>
			<persName><surname>Вятгу</surname></persName>
		</editor>
		<editor>
			<persName><surname>Киров</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2015-03">2015. 03.2015</date>
			<biblScope unit="page">92</biblScope>
		</imprint>
	</monogr>
	<note>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
