Чему равна сумма векторов: Как найти сумму векторов? Ответ на webmath.ru

что это такое в геометрии, правила суммы, примеры решения задач

Понятие суммы векторов

Определение 1

Вектор в геометрии является таким отрезком, для которого задано направление, а также начало и конец, определенные граничными точками.

Обозначают вектор, например, таким образом: \overrightarrow{AB}. В этом случае началом вектора является точка А, конец обозначен точкой В. Допускается и такое верное обозначение вектора: \overrightarrow{a}, которое можно встретить в задачах на сложение и вычитание.

Источник: shkolkovo.net

В некоторых источниках понятие вектора сформулировано, как движение из точки А в точку В, что можно отметить в конспекте.

Определение 2

Длина (или модуль) вектора AB→ представляет собой длину отрезка АВ, который соответствует рассматриваемому вектору:

|AB→|=AB.

Определение 3

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

Определение 4

Коллинеарные вектора — вектора, расположенные на единой прямой, либо на прямых, которые являются параллельными.

Примеры коллинеарных векторов:

a→,b→ и c→.

Если записанное ранее условие, при котором вектора коллинеарны, не выполняется, вектора называют неколлинеарными. В качестве примера можно представить следующие неколлинеарные вектора:

a→ и d→

Источник: shkolkovo.net

Определение 5

Пара векторов, которые коллинеарны друг другу, совпадают по направлению, являются сонаправленными.

На рисунке изображены сонаправленные вектора:

a→ и c→.

Если предыдущее условие, при котором вектора сонаправлены, не выполняется, то такие вектора называют противоположно направленными. Например, противоположно направлены следующие вектора:

a→ и b→.

В задачах на уроке можно встретить следующее обозначение того, как соотносятся между собой вектора:

a→↑↑c→,a→↑↓b→.

Определение 6

Равными векторами являются такие векторы, которые сонаправлены и равны по длине.

Правила нахождения суммы векторов

Формула 1

Формула сложения векторов a→=ax;ay и b→=bx;by, которую можно применять в случае решения плоских задач:

a→+b→=ax+bx;ay+by.

Формула 2

Формула сложения векторовa→=ax;ay;az и b→=bx;by;bz, которую можно применять в случае решения пространственных задач:

a→+b→=ax+bx;ay+by;az+bz.

Формула 3

Формула сложения векторов a→=ax;ay;…;an и b→=bx;by;…;bn, которую можно применять в случае решения задач с n-мерными векторами:

a→+b→=ax+bx;ay+by;…;an+bn.

Рассмотрим правила, которые целесообразно использовать при решении заданий в классе и самостоятельно на сложение коллинеарных векторов.

Правило 1

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

Источник: shkolkovo.net

Правило 2

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

Источник: shkolkovo.net

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

Правило 3

Правило треугольника. Если даны два неколлинеарных вектора a→ и b→, сумму которых нужно вычислить, то необходимо отмерить вектор b→ от конечной точки, принадлежащей вектору a→. Результатом сложения таких векторов a→+b→ является вектор с началом, расположенным в начальной точке вектора a→ и концом, который совпадает с концом вектора b→.

Источник: shkolkovo.net

Правило 4

Правило параллелограмма. Если даны два неколлинеарных вектора a→ и b→, сумму которых нужно вычислить, то необходимо отмерить вектор b→ от начальной точки, принадлежащей вектору a→. Результатом сложения векторов a→+b→ является вектор, совпадающий с диагональю, проведенной в параллелограмме, который построен с помощью векторов a→ и b→.

Источник: shkolkovo.net

Действие по сложению векторов обладает рядом характерных свойств. Представим их описание:

  1. Наличие вектора, который является нейтральным: для какого-либо вектора a→ выполняется следующее: a→+0→=a→.
  2. Наличие вектора, который является обратным: для какого-либо вектора a→ выполняется следующее: a→+(-a→)=0→.
  3. Ассоциативность: для каких-либо векторов a→,b→ и c→ выполняется следующее: (a→+b→)+c→=a→+(b→+c→).
  4. Коммутативность: для каких-либо векторов a→ и b→ выполняется следующее: a→+b→=b→+a→.

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

a1→+a2→+a3→+a4→=a→.

Примеры решения задач

Задача 1

Даны два вектора, сумму которых требуется найти:

a→=1;2 и b→=4;8.

Решение

Воспользуемся формулой сложения векторов для плоских задач:

a→+b→=1+4;2+8=5;10

Ответ: 5;10.

Задача 2

Даны два вектора, сумму которых требуется вычислить:

a→=1;2;5 и b→=4;8;1.

Решение

Воспользуемся формулой сложения векторов, применимой для решения пространственных задач:

a→+b→=1+4;2+8;5+1=5;10;6

Ответ: 5;10;6.

Задача 3

Даны два вектора, которые требуется сложить:

a→=1;2;5;9 и b→=4;8;1;-20.

Решение

Воспользуемся формулой для решения задач с n-мерными векторами:

a→+b→=1+4;2+8;5+1;9+(-20)=5;10;6;-11

Ответ: 5;10;6;-11.

Задача 4

Имеется некий прямоугольный треугольник ABC. В нем угол А составляет 90°, точка О обозначает центр окружности, описанной около рассматриваемого треугольника. Вектор А→В имеет координаты 1;1. Координаты вектора А→Сравны-1;1. Требуется определить, чему равна сумма координат вектора OC→.

Решение

Заметим, что в данном случае центр описанной окружности совпадает с серединой гипотенузы, так как вписанный треугольник является прямоугольным. В результате точка О расположена посередине ВС. Выполним соответствующий рисунок:

Источник: shkolkovo.net

В данном случае, справедливо, что:

BC→=AC→-AB→

Таким образом:

BC→={-1-1;1-1}={-2;0}

Заметим, что:

OC→=12BC→

В результате:

OC→={-1;0}

Определим сумму координат вектора OC→:

-1+0=-1

Ответ: -1.

Задача 5

Имеется некая геометрическая фигура в виде многоугольника с четырьмя углами АВСD. На сторонах этого четырехугольника отмерены следующие вектора:

AB→,BC→,CD→,DA→.

Необходимо вычислить длину такого вектора в следующем порядке:

AB→+BC→+CD→+DA→.

Решение

Изобразим геометрическую фигуру, согласно условиям задачи:

Источник: shkolkovo.net

Заметим, что:

AB→+BC→=AC→,AC→+CD→=AD→

В таком случае, можно записать, что:

AB→+BC→+CD→+DA→=AC→+CD→+DA→=AD→+DA→=AD→-AD→=0→.

Длина нулевого вектора, согласно определению, имеет нулевое значение. Исходя из альтернативного понятия, вектор представляет собой перемещение. В таком случае, AB→+BC→ обозначает перемещение из A в B, а далее из B в C. В результате получается перемещение из A в C. В итоге:

AB→+BC→+CD→+DA→=0→

Вывод сделан на основании перемещения из точки А в точку А. Вектор обладает длиной, равной нулю и представляет собой 0→.

Ответ: 0.

Задача 6

На рисунке изображен параллелограмм ABCD. Диагонали данной фигуры, обозначенные, как AC и BD, имеют общую точку пересечения O.

Источник: shkolkovo.net

Предположим, что:

AB→=a→,AD→=b→

В таком случае:

OA→=x·a→+y·b→

Здесь x и y являются какими-то числами. Требуется определить число, которое равно:

x + y.

Решение

OA→=12CA→=12(CB→+BA→)=12(DA→+BA→)=12(-b→-a→)=-12a→-12b→⇒x=-12,y=-12⇒x+y=-1.

Ответ: -1.

Задача 7

На рисунке изображен некий параллелограмм ABCD. Точки K и L расположены на сторонах BC и CD соответственно. При этом выполняется следующее соотношение:

BK:KC = 3:1

Точка L расположена на середине стороны CD.

Источник: shkolkovo.net

Предположим, что:

AB→=a→,AD→=b→

В таком случае:

KL→=x·a→+y·b→

Здесь х и y являются какими-то числами. Требуется вычислить такое число, которое равно:

x + y.

Решение

KL→=KC→+CL→=14BC→+12CD→=14AD→+12BA→=14b→-12a→⇒x=-12,y=14⇒x+y=-0,25.

Ответ: -0,25.

Задача 8

На рисунке изображен некий параллелограмм ABCD. Точки M и N расположены на сторонах фигуры, обозначенных, как AD и BC соответственно. При этом выполняется следующее условие:

AM:MD = 2:3

BN:NC = 3:1.

Источник: shkolkovo.net

Предположим, что:

AB→=a→,AD→=b→.

В таком случае:

MN→=x·a→+y·b→

Здесь x и y являются какими-то числами. Требуется определить число, которое равно:

x·y.

Решение

MN→=MA→+AB→+BN→=25DA→+AB→+34BC→=-25AD→+AB→+34BC→=-25b→+a→+34b→=a→+720b→⇒x=1,y=720⇒x·y=0,35.

Ответ: 0,35.

Задача 9

На рисунке изображен некий параллелограмм ABCD. Точка P расположена на диагонали BD, точка Q принадлежит стороне фигуры CD. При этом выполняется следующее условие:

BP:PD = 4:1

CQ:QD = 1:9.

Источник: shkolkovo.net

Предположим, что:

AB→=a→,AD→=b→

В таком случае:

PQ→=x·a→+y·b→.

Здесь х и y являются какими-то числами. Необходимо вычислить значение числа, которое равно:

x·y.

Решение

Ответ: 0,14.

Задача 10

На рисунке изображена геометрическая фигура в виде правильного шестиугольника ABCDEF.

Источник: shkolkovo.net

Предположим, что:

AB→=a→,AF→=b→

В таком случае:

BC→=x·a→+y·b→

Здесь x и y являются какими-то числами. Требуется определить число, которое равно:

x + y.

Решение

Согласно условию задания:

Источник: shkolkovo.net

Заметим пересечение отрезков AD, BE и CF в точке O. Данная точка делит рассматриваемые отрезки на две равные части. В данном случае:

BC∥AD

ABCO представляет собой параллелограмм

AF∥BE

ABOF является параллелограммом.

В результате:

BC→=AO→=AB→+BO→=AB→+AF→=a→+b→⇒x=1,y=1⇒x+y=2.

Ответ: 2.

2

2

2. Линейные операции над векторами.

Линейными операциями называются операции сложения и вычитания векторов и умножения вектора на число.

Определение. Пусть и два свободных вектора (рис. 26, а). Возьмем произвольную точку О и построим вектор = , затем от точки А отложим вектор   = , Вектор , соединяющий начало первого слагаемого вектора с концом второго, называется  суммой этих векторов и обозначается (рис. 26, б). Ту же самую сумму векторов можно получить иным способом.

Отложим от точки О векторы  = и . Построим на этих векторах как на сторонах параллелограмм  О ABC Вектор , служащий диагональю этого параллелограмма, проведенной из вершины

О, является, очевидно, суммой векторов (рис. 26, в). Из рис. 26, в непосредственно следует, что сумма двух векторов обладает переместительным свойством:

.

Действительно, каждый из векторов и равен одному и тому же вектору .

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

Пусть, например, даны три вектора , и (рис. 27, а). Построив сначала сумму векторов , а затем прибавив к этой сумме вектор получим вектор . На рис. 27, б) = , , , и .

Из рис. 27, б видно, что тот же вектор мы получим, если к вектору = прибавим вектор . Таким образом,

Рис.27

( + ) + = + ( + ),

т.е. сумма векторов обладает  сочетательным свойством. Поэтому сумму трех векторов , , записывают просто .

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

Если при сложении нескольких векторов конец последнего слагаемого вектора совпадает с началом первого, то сумма векторов равна нулевому вектору. Очевидно, что для любого вектора имеет место равенство .

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

Из определения суммы двух векторов вытекает правило построения вектора-разности (рис. 28). Откладываем векторы

= и = из общей точки О. Вектор , соединяющий

концы уменьшаемого вектора и вычитаемого вектора и направленный от вычитаемого к уменьшаемому, является разностью . Действительно, по правилу сложения векторов

, или .

Определение. Произведением ( или ) на , называется вектор , коллинеарный вектору , имеющий длину, равную и то же направление, что и вектор , если > 0, и направление, противоположное направление есть вектор, имеющий то же направление, что и вектор , а длину, вдвое большую, чем вектор . В случае, когда = 0 или , произведение представляет собой нулевой вектор. Противоположный вектор можно рассматривать как результат умножения вектора на

Так, западный ветер можно представить как отрицательный восточный ветер. Очевидно, что .

Пусть дан вектор . Рассмотрим единичный вектор , коллинеарный вектору и одинаково с ним направленный. Из определения умножения вектора на число следует, что

,

т.е. каждый вектор равен произведению его модуля на единичный вектор того же направления. Далее из того же определения следует = , где ненулевой вектор, то векторы и коллинеарны.

Очевидно, что и, обратно, из коллинеарности векторов и следует, что .

Таким образом, два вектора и коллинеарны тогда и только тогда, когда имеет место равенство

= .

Легко убедиться, что умножение вектора на число обладает


и сочетательным свойством

.

Справедливость, например, равенства (1) при следует из того, что при изменении сторон параллелограмма в раз в силу свойств подобия его диагональ также изменяется в


Понятие вектора | Линейые операции над векторами | Понятие линейной зависимости векторов|

Линейная зависимость векторов на плоскости |  Линейная зависимость векторов в пространстве

Базис на плоскости и в пространстве | Проекция вектора на ось и ее свойства | Декартова прямоугольная система координат в пространстве| Цилиндрические и сферические координаты| Главная


Сумма векторов Определение и значение

  • Лучшие определения
  • Викторина
  • Примеры
  • Британский

Показывает уровень сложности слова.

Сохрани это слово!

Показывает уровень сложности слова.


сущ. Математика.

вектор, полученный путем сложения векторов двух или более заданных векторов.

ВИКТОРИНА

ВСЕ ЗА(U)R ЭТОГО БРИТАНСКОГО ПРОТИВ. ВИКТОРИНА ПО АМЕРИКАНСКОМУ АНГЛИЙСКОМУ

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

Вопрос 1 из 7

Правда или ложь? Британский английский и американский английский различаются только сленговыми словами.

Происхождение векторной суммы

Впервые записано в 1900–05 гг.

Слова рядом с векторной суммой

векторная функция, векторная графика, векторная графика, векторное произведение, векторное пространство, векторная сумма, vecture, vecturist, Veda, vedalia, Vedanta

Dictionary.com Полный текст На основе Random House Unabridged Dictionary, © Random House, Inc.

2023

Как использовать векторную сумму в предложении

  • Правда ли, что «геи против традиционалистов — игра с нулевой суммой»?

    Должны ли ЛГБТ христианам оливковую ветвь? Попробуйте наоборот|Джей Майклсон|14 декабря 2014 г.|DAILY BEAST

  • Уиллима и Кейт собрали аналогичную сумму на частном ужине всего для 30 благотворителей в воскресенье вечером.

    Гламурные проводы Кейт и Уильяма в Нью-Йорке за 2 миллиона долларов|Том Сайкс|10 декабря 2014|DAILY BEAST

  • С другой стороны, они рассматривают своих доноров и своих будущих детей не как целых людей, а как сумма некоторых частей.

    Есть сперма, буду путешествовать: «естественные осеменители», помогающие женщинам избежать банка спермы|Элизабет Пиччуто|29 ноября 2014|DAILY BEAST

  • Но когда дело доходит до ценности древностей для истории человечества, сумма части не больше целого.

    История расчленения: теневая онлайн-торговля древними текстами|Кандида Мосс|23 ноября 2014 г. |DAILY BEAST

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

    Настоящий психопат-убийца Ловца лис|Марлоу Стерн|18 ноября 2014|DAILY BEAST

  • Это была такая великолепная сумма, что Солу не хотелось знакомиться с ней и упоминать ее вслух.

    Связной|Джордж В. (Джордж Вашингтон) Огден

  • Из которых сумма такова, что все стороны в деле, очевидно, на данный момент являются протестантами!

    Пунш, или Лондонский Шаривари, Том 107, 3 ноября 1894 г.|Разное

  • Я пытался учить многих; кто-то учится быстро, а кто-то никогда не учится; это шутка их не поражает.

    Рамона|Хелен Хант Джексон

  • Теперь король увеличил ее до огромной суммы в два шиллинга и десять пенсов.

    Табак; Его история, разновидности, культура, производство и торговля|E. Р. Биллингс.

  • На эту сумму можно содержать вдвое больше пехоты, чем есть здесь у Вашего Величества.

    The Philippine Islands, 1493-1898, Volume XX, 1621-1624|Various

Определения в Британском словаре для векторной суммы

векторной суммы


параллелограмм, стороны которого представляют заданные векторы См. также результат

Английский словарь Коллинза — полное и полное цифровое издание 2012 г. © William Collins Sons & Co. Ltd., 1979, 1986 © HarperCollins Publishers 1998, 2000, 2003, 2005, 2006, 2007, 2009, 2012

Повышение производительности суммы по вектору векторов — Производительность

DanielVandH

1

Я хочу считать сумму по вектору векторов. Рассмотрим следующие тесты для задачи, включающей суммирование некоторых данных (получение логарифмического правдоподобия): 92 конец функция conv_to_vector_sum(x, μ, σ, n) vector_sum (уменьшить (vcat, x), уменьшить (vcat, μ), σ, n) конец п₁, п₂ = 130, 9 п = п₁ * п₂ х = [ранд (n₁) для _ в 1: n₂] flat_x = уменьшить (vcat, x) μ = [ранд (n₁) для _ в 1: n₂] flat_μ = уменьшить (vcat, μ) σ = 0,1 res1 = @benchmark vector_sum($flat_x, $flat_μ, $σ, $n) res2 = @benchmark vector_of_vector_sum($x, $μ, $σ, $n) res3 = @benchmark conv_to_vector_sum($x, $μ, $σ, $n)

 юлия> res1
BenchmarkTools. Trial: 10 000 образцов с 955 оценками.
 Диапазон (мин…макс): 94,555 нс … 321,885 нс ┊ GC (мин … макс): 0,00% … 0,00%
 Время (медиана): 95,812 нс ┊ GC (медиана): 0,00%
 Время (среднее ± σ): 99,662 нс ± 14,266 нс ┊ GC (среднее ± σ): 0,00% ± 0,00%
  █▅▆▅▄▂
  ███████▇▆▆▅▆▇▆▅▅▅▄▅▄▆▄▅▄▆▆▆▆▆▄▅▅▆▆▆▅▄▅▅▅▄▃▅▄▆▅▆▆▅▆ ▅▄▄▄▃▄▅▅▄▄ █
  94,6 нс Гистограмма: логарифм (частота) по времени 171 нс <
 Оценка памяти: 0 байт, оценка allocs: 0.
юлия> res2
BenchmarkTools.Trial: 10000 образцов с 796 оценок.
 Диапазон (мин … макс): 154,648 нс … 486,432 нс ┊ GC (мин … макс): 0,00% … 0,00%
 Время (медиана): 162,186 нс ┊ GC (медиана): 0,00%
 Время (среднее ± σ): 171,037 нс ± 27,694 нс ┊ GC (среднее ± σ): 0,00% ± 0,00%
   ▆▆█▇▅▄▂ ▃▂ ▂ ▂
  █████████████▇▆▇▆▆▆▅▄▆▆▅▆▆▆▇▅▆▅▅▅▅▄▂▃▅▅▂▅▅▄▅▄▆▇▆▇█ █████▇██▇▆▅ █
  155 нс Гистограмма: логарифм (частота) по времени 272 нс <
 Оценка памяти: 0 байт, оценка allocs: 0.
юлия>
res3 BenchmarkTools.Trial: 10 000 образцов с 10 оценками. Диапазон (мин … макс): 1,530 мкс … 251,670 мкс ┊ GC (мин … макс): 0,00% … 95,73% Время (медиана): 2,120 мкс ┊ GC (медиана): 0,00% Время (среднее ± σ): 2,861 мкс ± 10,145 мкс ┊ GC (среднее ± σ): 18,29% ± 5,15% ▂▇█▇██▇▅▃▂ ▂ ████████████▇▇█▇▇▇▆▆▆▇▇▆▇▅▇▇▇▇▇▅▆▅▅▅▅▅▄▄▅▄▂▅▅▂▄▃▃▄ ▃▄▅▆▇█▇▇▇ █ 1,53 мкс Гистограмма: логарифм (частота) по времени 9,1 мкс < Оценка памяти: 18,88 КиБ, оценка распределения: 4.

Метод, работающий с сокращенным вектором ( res1 ), примерно в 0,66 раза быстрее, чем тот, который работает с каждым вектором за раз (

рез2 ). Метод, который сглаживает, а затем использует первый метод, очевидно, намного медленнее ( res3 ). Как добиться от этого максимальной производительности?

Некоторые дополнительные примечания: мои данные поступают в виде векторов векторов, поэтому первый метод не слишком полезен для моего случая, но я полагаю, что должен быть какой-то способ приблизиться к нему без выравнивания векторов. Входные данные x и μ , которые я использую, всегда будут иметь одинаковую длину в отдельных векторах (т.е. length(x[i]) == length(µ[i]) == length(x[1]) для всех i in 1:length(x) ), хотя я не могу использовать матрицу, так как μ дано мне как вектор векторов для начала.

Лоран Плань

, 9:36

2

Для второй версии я бы добавил @inbounds в первый цикл.

Работает ли @turbo во внешнем цикле?
Вы также можете попробовать использовать MT во внешнем цикле.

1 Нравится

DanielVandH

3

Спасибо за комментарий. @turbo не работает во внешнем цикле, выдает ошибку _x не определено . Я не знаю, как это обойти. @inbounds тут ничего не менял, думаю компилятор уже разобрался.

Что такое MT ? Многопоточность? Сначала я пытался это сделать, но не думаю, что достаточно понимаю многопоточность, чтобы заставить ее работать так же быстро. Я думаю, что это также путается с 92 конец Юлия> res2 = @benchmark vector_of_vector_sum($x, $μ, $σ, $n) BenchmarkTools. Trial: 10 000 образцов с 1 оценкой. Диапазон (мин … макс): 30,200 мкс … 208,900 мкс ┊ GC (мин … макс): 0,00 % … 0,00 % Время (медиана): 68,500 мкс ┊ GC (медиана): 0,00% Время (среднее ± σ): 70,736 мкс ± 15,647 мкс ┊ GC (среднее ± σ): 0,00% ± 0,00% ▂▃▆▆▇█▇▇▅▆▄▃▃ ▂▂▃▃▅▆████████████████▇▅▄▄▄▂▂▂▂▂▂ ▃ ▃ 30,2 мкс Гистограмма: частота по времени 139мкс < Оценка памяти: 5,19 КиБ, оценка распределения: 48.

Лоран Плань

4

Хорошо, я не смотрел на фактические размеры векторов, которые слишком малы для эффективного машинного перевода.

Также вы должны быть осторожны с синхронизацией с BenchmarkTools в этом случае, потому что данные будут помещаться в кеш (горячий кеш), и это может соответствовать или не соответствовать вашему варианту использования. Если вы хотите протестировать холодный кеш, вам придется использовать установка вариант.

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

Если возможно, вы можете рассмотреть возможность возврата хранилища с x[i][j] на y[j][i], где y — вектор StaticVector размера 9. При этом расположение памяти будет непрерывным .

3 лайков

DanielVandH

5

Я никогда раньше не слышал об этой проблеме BenchmarkTools . Ты это имеешь ввиду?

 res1 = @benchmark vector_sum(flat_x, flat_μ, σ, n) setup=(flat_x = копия($flat_x), flat_μ = копия($flat_μ), σ = копия($σ), n = копия($n) )
res2 = @benchmark vector_of_vector_sum(x, µ, σ, n) setup=(x = копия($x), µ = копия($µ), σ = копия($σ), n = копия($n))
юлия> res1
BenchmarkTools. Trial: 10 000 образцов с 914 оценками.
 Диапазон (мин… макс): 117,834 нс … 2,996 мкс ┊ GC (мин…макс): 0,00%…95,02%
 Время (медиана): 121,882 нс ┊ GC (медиана): 0,00%
 Время (среднее ± σ): 133,761 нс ± 50,992 нс ┊ GC (среднее ± σ): 0,42% ± 1,34%
  ██▆▄▅▅ ▃▂ ▃ ▂ ▂
  ██████████▇▇▇▆▆▆▆▇▇▇▇▇▇▆▆▇▆▅▆▆▄▆▆▆▅▆▆▅▅▅▆▅▄▄▄▆▅▄▅▅ ██████▇█▇▅ █
  118 нс Гистограмма: логарифм (частота) по времени 241 нс <
 Оценка памяти: 16 байт, оценка распределения: 1.
юлия> res2
BenchmarkTools.Trial: 10 000 образцов с 681 оценкой.
 Диапазон (мин…макс): 185,903 нс … 6,893 мкс ┊ GC (мин … макс): 0,00% … 96,55%
 Время (медиана): 194,860 нс ┊ GC (медиана): 0,00%
 Время (среднее ± σ): 210,890 нс ± 80,587 нс ┊ GC (среднее ± σ): 0,32% ± 0,97%
  ▄█▇█▅▃ ▂ ▂ ▂
  ███████▇██▇▇▇▆▇▇█▇███▇▇▇▆▇▆▆▆▇▅▆▆▆▆▆▄▅▆▆▅▅▆▇██████ ███▇▆▅▅▅▃▅ █
  186 нс Гистограмма: логарифм (частота) по времени 379 нс <
 Оценка памяти: 16 байт, оценка распределения: 1.
 

Я также пытался обернуть переменные в Ref , первый способ все еще хорош.

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

Лоран Плань

6

Вы должны передать eval=1, чтобы оценить производительность холодного кэша (т.е. включая время чтения данных из ОЗУ). Обратите внимание, что это не обязательно соответствует вашему варианту использования (временная локализация).

У меня закончились идеи по улучшению вашего кода… может у @Elrod есть дополнительные предложения

1 Нравится

DanielVandH

7

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

. 1 Нравится

LaurentPlagne

8

Кстати, есть ли у вас основания полагать, что ваша реализация еще не оптимальна (например, реализация на другом языке)?
На компьютере Intel я бы предложил использовать VTune (из бесплатного пакета oneAPI) для сравнения кода с аппаратными ограничениями.

DanielVandH

9

Нет особой причины - я просто предположил, что может быть способ сделать регистр векторов векторов эквивалентным регистру векторов, потому что я думал, что в моем случае расположение памяти было непрерывным.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *