<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=Pairwise_summation_of_numbers%2C_locality</id>
	<title>Pairwise summation of numbers, locality - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=Pairwise_summation_of_numbers%2C_locality"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=Pairwise_summation_of_numbers,_locality&amp;action=history"/>
	<updated>2026-10-23T07:03:03Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=Pairwise_summation_of_numbers,_locality&amp;diff=29065&amp;oldid=prev</id>
		<title>ASA: Новая страница: «{{level-i}}  Основные авторы описания: Вад.В.Воеводин (#Описание локальности...»</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=Pairwise_summation_of_numbers,_locality&amp;diff=29065&amp;oldid=prev"/>
		<updated>2022-07-08T09:45:13Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{level-i}}  Основные авторы описания: &lt;a href=&quot;/ru/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VadimVV&quot; title=&quot;Участник:VadimVV&quot;&gt;Вад.В.Воеводин&lt;/a&gt; (#Описание локальности...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{level-i}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник:VadimVV|Вад.В.Воеводин]] ([[#Описание локальности данных и вычислений|раздел 2]]).&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
Основной фрагмент реализации, на основе которого были получены количественные оценки, приведен [https://gitlab.srcc.msu.ru/vadim/locality/blob/master/benchmarks/vectors/vectors.h здесь] (функция KernelOpD).&lt;br /&gt;
&lt;br /&gt;
= Локальность данных и вычислений =&lt;br /&gt;
== Локальность реализации алгоритма ==&lt;br /&gt;
=== Структура обращений в память и качественная оценка локальности ===&lt;br /&gt;
&lt;br /&gt;
[[file:Sum doub prof.png|thumb|center|700px|Рисунок 1. Суммирование сдваиванием. Общий профиль обращений в память]]&lt;br /&gt;
&lt;br /&gt;
На рис.1 представлен профиль обращений в память для реализации суммирования элементов массива методом сдваивания. Данный профиль устроен достаточно просто – он представляет собой набор итераций, на каждой итерации происходит последовательный перебор элементов массива с некоторым шагом, причем с каждой следующей итерацией шаг увеличивается вдвое. Этим обуславливается тот факт, что на рис.2 каждая следующая прямая расположена под большим углом. Подобный профиль обладает достаточно высокой пространственной локальностью, поскольку большая часть обращений происходит к соседним или близким элементам. Однако при этом временная локальность низка – к половине элементов обращения происходят только однажды, к четверти – дважды и т.д.&lt;br /&gt;
&lt;br /&gt;
=== Количественная оценка локальности ===&lt;br /&gt;
&lt;br /&gt;
Условия запуска описаны [https://gitlab.srcc.msu.ru/vadim/locality/blob/master/README.md здесь].&lt;br /&gt;
&lt;br /&gt;
Первая оценка выполняется на основе характеристики daps, которая оценивает число выполненных обращений (чтений и записей) в память в секунду. Данная характеристика является аналогом оценки flops применительно к работе с памятью и является в большей степени оценкой производительности взаимодействия с памятью, чем оценкой локальности. Однако она служит хорошим источником информации, в том числе для сравнения с результатами по следующей характеристике cvg.&lt;br /&gt;
&lt;br /&gt;
На рис.2 приведены значения daps для реализаций распространенных алгоритмов, отсортированные по возрастанию (чем больше daps, тем в общем случае выше производительность). Можно увидеть, что из-за низкой временной локальности значение daps для данной программы находится на уровне самых неэффективных вариантов реализации перемножения матриц и лишь немногим лучше реализации программы со случайным доступом.&lt;br /&gt;
&lt;br /&gt;
[[file:Sum doub daps.png|thumb|center|700px|Рисунок 2. Сравнение значений оценки daps]]&lt;br /&gt;
&lt;br /&gt;
Вторая характеристика – cvg – предназначена для получения более машинно-независимой оценки локальности. Она определяет, насколько часто в программе необходимо подтягивать данные в кэш-память. Соответственно, чем меньше значение cvg, тем реже это нужно делать, тем лучше локальность. &lt;br /&gt;
&lt;br /&gt;
На рис.3 приведены значения cvg для того же набора реализаций, отсортированные по убыванию (чем меньше cvg, тем в общем случае выше локальность). Можно увидеть, что, согласно данной оценке, локальность реализации суммирования сдваиванием достаточно низка, что согласуется с результатами по оценке daps и анализом самого профиля обращений.&lt;br /&gt;
&lt;br /&gt;
[[file:Sum doub cvg.png|thumb|center|700px|Рисунок 3. Сравнение значений оценки cvg]]&lt;br /&gt;
&lt;br /&gt;
= Масштабируемость алгоритма и его реализации =&lt;br /&gt;
== Масштабируемость алгоритма ==&lt;br /&gt;
== Масштабируемость реализации алгоритма ==&lt;br /&gt;
= Динамические характеристики и эффективность реализации алгоритма =&lt;br /&gt;
= Результаты прогонов =&lt;br /&gt;
&lt;br /&gt;
[[Категория:Статьи в работе]]&lt;br /&gt;
&lt;br /&gt;
[[En:Pairwise summation of numbers, locality]]&lt;/div&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
</feed>