<?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=K-means_clustering%2C_scalability2</id>
	<title>K-means clustering, scalability2 - История изменений</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=K-means_clustering%2C_scalability2"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=K-means_clustering,_scalability2&amp;action=history"/>
	<updated>2026-10-22T18:04:48Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=K-means_clustering,_scalability2&amp;diff=29177&amp;oldid=prev</id>
		<title>ASA в 13:14, 19 июля 2022</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=K-means_clustering,_scalability2&amp;diff=29177&amp;oldid=prev"/>
		<updated>2022-07-19T13:14:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 13:14, 19 июля 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;Строка 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 48:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Статьи в работе]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Статьи в работе]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[En:K-means clustering, scalability2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[En:K-means clustering, scalability2&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=K-means_clustering,_scalability2&amp;diff=29176&amp;oldid=prev</id>
		<title>ASA: Новая страница: «{{level-i}}  Основные авторы описания: [https://algowiki-project.org/ru/Участник:IanaV&lt;b&gt;Я.А.Валуйская&lt;/b&gt;], [https://alg...»</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=K-means_clustering,_scalability2&amp;diff=29176&amp;oldid=prev"/>
		<updated>2022-07-19T13:13:50Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{level-i}}  Основные авторы описания: [https://algowiki-project.org/ru/Участник:IanaV&amp;lt;b&amp;gt;Я.А.Валуйская&amp;lt;/b&amp;gt;], [https://alg...»&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;
Основные авторы описания: [https://algowiki-project.org/ru/Участник:IanaV&amp;lt;b&amp;gt;Я.А.Валуйская&amp;lt;/b&amp;gt;], [https://algowiki-project.org/ru/Участник:GlotovES&amp;lt;b&amp;gt;Е.С.Глотов&amp;lt;/b&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
Исследовалась [https://github.com/like-a-bauss/kmeans параллельная реализация алгоритма &amp;lt;i&amp;gt;k&amp;lt;/i&amp;gt;-means на MPI].&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;
Исследование проводилось на суперкомпьютере &amp;quot;Ломоносов&amp;quot;&amp;lt;ref name=&amp;quot;Lom&amp;quot;&amp;gt;Воеводин Вл., Жуматий С., Соболев С., Антонов А., Брызгалов П., Никитенко Д., Стефанов К., Воеводин Вад. Практика суперкомпьютера «Ломоносов» // Открытые системы, 2012, N 7, С. 36-39.&amp;lt;/ref&amp;gt; [http://parallel.ru/cluster Суперкомпьютерного комплекса Московского университета].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Набор данных для тестирования состоял из 946000 векторов размерности 2 (координаты на сфере)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Набор и границы значений изменяемых параметров запуска реализации алгоритма:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* число процессов (виртуальных ядер) [8 : 512];&lt;br /&gt;
* число кластеров [128 : 384].&lt;br /&gt;
В результате проведённых экспериментов был получен следующий диапазон эффективности реализации алгоритма:&lt;br /&gt;
&lt;br /&gt;
* минимальная эффективность реализации &amp;lt;math&amp;gt;2,47%&amp;lt;/math&amp;gt; достигается при делении исходных данных на 128 кластеров с использованием 512 процессов;&lt;br /&gt;
* максимальная эффективность реализации &amp;lt;math&amp;gt;7,13%&amp;lt;/math&amp;gt; достигается при делении исходных данных на 352 кластера с использованием 8 процессов.&lt;br /&gt;
На рисунках 1 и 2, соответственно, представлены графики зависимости производительности и эффективности параллельной реализации &amp;lt;i&amp;gt;k&amp;lt;/i&amp;gt;-means от числа кластеров и числа процессов.&lt;br /&gt;
&lt;br /&gt;
[[file:kmeans_performance.jpg|thumb|center|720px|Рис. 1. График зависимости производительности параллельной реализации алгоритма от числа кластеров и числа процессов.]]&lt;br /&gt;
&lt;br /&gt;
По рис. 1 можно отметить практически полное отсутствие роста производительности с увеличением числа процессов от 256 до 512 при минимальном размере задачи. Это связано с быстрым ростом накладных расходов по отношению к крайне низкому объёму вычислений. При росте размерности задачи данный эффект пропадает, и при одновременном пропорциональном увеличении числа кластеров и числа процессов рост производительности становится близким к линейному.&lt;br /&gt;
&lt;br /&gt;
[[file:kmeans_efficiency.jpg|thumb|center|720px|Рис. 2. График зависимости эффективности параллельной реализации алгоритма от числа кластеров и числа процессов.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Были получены следующие оценки масштабируемости реализации алгоритма &amp;lt;i&amp;gt;k&amp;lt;/i&amp;gt;-means:&amp;lt;/p&amp;gt;&lt;br /&gt;
*&amp;lt;i&amp;gt;По числу процессов:&amp;lt;/i&amp;gt; &amp;lt;math&amp;gt;-0.02209&amp;lt;/math&amp;gt;. Следовательно, с ростом числа процессов эффективность уменьшается. На рис. 7 можно наблюдать плавное и равномерное снижение производительности по мере увеличения числа процессов при неизменном числе кластеров, что свидетельствует об относительно невысоком росте накладных расходов на передачу данных между процессами и преобладании объёма вычислений над объёмом пересылок данных по сети.&lt;br /&gt;
*&amp;lt;i&amp;gt;По размеру задачи:&amp;lt;/i&amp;gt; &amp;lt;math&amp;gt;0.01252&amp;lt;/math&amp;gt;. Следовательно, с ростом размера задачи (числа кластеров) эффективность увеличивается. При этом объём пересылок данных по сети пропорционален &amp;lt;math&amp;gt;(n + k) \cdot p&amp;lt;/math&amp;gt; (где &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; - число кластеров, &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; - число входных векторов, &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - число процессов) таким образом, поскольку &amp;lt;math&amp;gt;k &amp;lt;&amp;lt; n&amp;lt;/math&amp;gt;, рост накладных расходов с ростом числа кластеров при неизменном числе процессов и входных векторов представляет собой незначительную величину.&lt;br /&gt;
*&amp;lt;i&amp;gt;Общая оценка:&amp;lt;/i&amp;gt; &amp;lt;math&amp;gt;-0.00081&amp;lt;/math&amp;gt;. Таким образом, с ростом и размера задачи, и числа процессов эффективность уменьшается. Это связано с тем, что отношение объёма вычислений к объёму передаваемых данных изменяется пропорционально &amp;lt;math&amp;gt;{kn \over (n + k) \cdot p} \thicksim {k \over p}&amp;lt;/math&amp;gt;, что представляет собой невысокий коэффициент, но при этом позволяет параллельной реализации не деградировать до нулевой эффективности при значительном увеличении числа процессов.&lt;br /&gt;
&lt;br /&gt;
= Динамические характеристики и эффективность реализации алгоритма =&lt;br /&gt;
= Результаты прогонов =&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Статьи в работе]]&lt;br /&gt;
&lt;br /&gt;
[[En:K-means clustering, scalability2&lt;/div&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
</feed>