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