Size: a a a

2020 October 13

IZ

Ilia Zviagin in pro.algorithms
Aragaer
когда я пишу код на си и работаю с массивами, то могу увидеть, что вот такой порядок обхода массива будет более эффективным, чем эдакий
Каким образом можешь увидеть?
источник

A

Aragaer in pro.algorithms
и собственно есть даже компиляторные оптимизации на тему перестановки порядка циклов
источник

A

Aragaer in pro.algorithms
оно кому-то непрозрачно, а я просто работаю на том нижнем уровне, где мне с этим приходится иметь дело
источник

A

Aragaer in pro.algorithms
потому что я знаю, что в той архитектуре, под которую я пишу, локальность кеша работает именно так
источник

IZ

Ilia Zviagin in pro.algorithms
Alexey Stepanov
Привет, может быть оффтоп, подскажите пожалуйста
Вопрос по кэшу процессора
Есть матрица 100х100 элементов
Два варианта обхода: последовательно по строкам (a)и последовательно по столбцам (b)
Три варианта ответа (T это затраченное время на полный обход):
Ta > Tb
Tb > Ta
Tb = Ta
Короче, тут правильный ответ -- 3) Ta = Tb
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺... in pro.algorithms
Ilia Zviagin
Когда уже поймёте, что кэш -- это неуправляемая и абсолютно прозрачная для работы программы структура, бессмысленно предсказывать его поведение.
гм
источник

BV

Boris Vinogradov in pro.algorithms
Ilia Zviagin
Когда уже поймёте, что кэш -- это неуправляемая и абсолютно прозрачная для работы программы структура, бессмысленно предсказывать его поведение.
хмм
источник

A

Andrey in pro.algorithms
Ilia Zviagin
Каким образом можешь увидеть?
запустить программу и посмотреть, сколько она работает?
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
запустить программу и посмотреть, сколько она работает?
И что же тебе это даст?
источник

A

Andrey in pro.algorithms
Ilia Zviagin
И что же тебе это даст?
разное время работы
источник

A

Andrey in pro.algorithms
1 секунда и 2 секунды, например
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
запустить программу и посмотреть, сколько она работает?
Это как слепые щупают слона и говорят -- он круглый!
источник

A

Andrey in pro.algorithms
я так задачу один раз сдал — поменяв порядок индексации
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
разное время работы
И что ты далее с этим делать будешь?
источник

A

Andrey in pro.algorithms
Ilia Zviagin
И что ты далее с этим делать будешь?
выберу тот вариант, что работает быстрее
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
выберу тот вариант, что работает быстрее
А в следующий запуск твоя та же программа сработает в 10 раз медленнее....
источник

A

Andrey in pro.algorithms
Ilia Zviagin
А в следующий запуск твоя та же программа сработает в 10 раз медленнее....
нет
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
нет
Ну, да.
источник

IZ

Ilia Zviagin in pro.algorithms
Andrey
нет
Почему  нет-то? у тебя SMP, время работы любой программы -- случайная величина.
Ты её померил один раз, сделал выводы -- неверные. Сделал на их основе изменения в программе.
Запустил программу -- и видишь другие значения той же случайной величины. Это вполне возможно.
источник

A

Andrey in pro.algorithms
Ilia Zviagin
Почему  нет-то? у тебя SMP, время работы любой программы -- случайная величина.
Ты её померил один раз, сделал выводы -- неверные. Сделал на их основе изменения в программе.
Запустил программу -- и видишь другие значения той же случайной величины. Это вполне возможно.
Дисперсия не такая большая
источник