Я думаю об оптимизации программы, взяв линейный массив и записав каждый элемент в произвольное место (случайное с точки зрения ЦП) в другом массиве. Я делаю только простые записи и не читаю элементы обратно.
Я понимаю, что разрозненное чтение для классического процессора может быть довольно медленным, так как каждый доступ приведет к промаху кеша и, следовательно, к ожиданию процессора. Но я подумал, что разрозненная запись технически может быть быстрой, потому что процессор не ждет результата, поэтому ему, возможно, не придется ждать завершения транзакции.
К сожалению, я не знаком со всеми деталями классической архитектуры памяти ЦП, и поэтому могут быть некоторые сложности, которые могут привести к тому, что это также будет довольно медленным.
Кто-нибудь пробовал это?
(Должен сказать, что я пытаюсь инвертировать проблему, которая у меня есть. В настоящее время у меня есть линейный массив, из которого я считываю произвольные значения — разрозненное чтение — и это невероятно медленно из-за всех промахов кеша. Мои мысли что я могу преобразовать эту операцию в разрозненную запись для значительного выигрыша в скорости.)