LINUX.ORG.RU

История изменений

Исправление LINUX-ORG-RU, (текущая версия) :

Диванная аналитика.

Попробуй вместо блоба data нааллоцировать отдельных line. Тут линейная локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию в однопоточке, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность памяти ведь ты туда пишешь, а не просто читаешь, вот если бы просто читал то да всё был бы ок. Или выравнивай line по размеру кеш линии проца. Так что-бы размер line был ему кратен если это возможно в твоём алгоритме. Да ты потеряешь время на аллокациях. ИМХО

Исправление LINUX-ORG-RU, :

Диванная аналитика.

Попробуй вместо блоба data нааллоцировать отдельных line. Тут линейная локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию в однопоточке, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность памяти. Или выравнивай line по размеру кеш линии проца. Так что-бы размер line был ему кратен если это возможно в твоём алгоритме. Да ты потеряешь время на аллокациях. ИМХО

Исправление LINUX-ORG-RU, :

Диванная аналитика.

Попробуй вместо блоба data нааллоцировать отдельных line. Тут локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию в однопоточке, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность памяти. Или выравнивай line по размеру кеш линии проца. Так что-бы размер line был ему кратен если это возможно в твоём алгоритме. Да ты потеряешь время на аллокациях. ИМХО

Исправление LINUX-ORG-RU, :

Диванная аналитика.

Попробуй вместо блоба data нааллоцировать отдельных line. Тут локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность памяти. Или выравнивай line по размеру кеш линии проца. Так что-бы размер line был ему кратен если это возможно в твоём алгоритме. Да ты потеряешь время на аллокациях. ИМХО

Исправление LINUX-ORG-RU, :

Попробуй вместо блоба data нааллоцировать отдельных line. Тут локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность. Да ты потеряешь время на аллокациях. ИМХО

Исправление LINUX-ORG-RU, :

Попробуй вместо блоба data нааллоцировать отдельных line. Тут локальность данных ненужна и даже вредна, так как она полезна когда ты текущей итерацией кешируешь часть будующих данных на следующую итерацию, а когда операции явно раскидываются по ядрам, выборка из общего data будет такова что будет захватываться части общих данных просто из за зармера кеш линии и один будет ждать второго и так далее так как должна быть сохранена консистентность. ИМХО

Исходная версия LINUX-ORG-RU, :

Попробуй вместо блоба data нааллоцировать отдельных line. Тут локальность данных ненужна и даже вредна. ИМХО