Project

General

Profile

Actions

Feature #61573

open

Erasure Code: processing speed down when cacheline not aligned

Added by Chris Jin 12 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
EC Pools
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Component(RADOS):
Pull request ID:

Description

Right now, Erasure Code SIMD_ALIGN variable has been set to 32, since function create_aligned() and rebuild_aligned() all uses SIMD_ALIGN to aligned, thus when cacheline is not aligned, the processing speed will be halved. To resolve this issue, we can simply change the value for SIMD_ALIGN to 64 to ensure the processing speed being constant, however, this will affect the memory allocation. Should we change the value for SIMD_ALIGN under this circumstance?

Testing result:
- test with SIMD_ALIGN = 64
the test result when SIMD_ALIGN = 64, two test with different directories has the same processing speed
- test with SIMD_ALIGN = 32
the test result when SIMD_ALIGN = 32, two test with different directories has different processing speed, the first test's speed is halved compare to the second test
We can see that the processing speed of the first test for SIMD_ALIGN = 32 is halved compare to all 3 other tests, and the addresses are 32 bytes aligned.

Place we rebuild_aligned in ErasureCodeBench::encode():
encode function


Files

test_result_with_align_eq_64.png (43.1 KB) test_result_with_align_eq_64.png the test result when SIMD_ALIGN = 64, two test with different directories has the same processing speed Chris Jin, 06/02/2023 07:28 AM
test_result_with_align_eq_32.png (37.5 KB) test_result_with_align_eq_32.png the test result when SIMD_ALIGN = 32, two test with different directories has different processing speed, the first test's speed is halved compare to the second test Chris Jin, 06/02/2023 07:28 AM
encode_function.png (38.4 KB) encode_function.png encode function Chris Jin, 06/02/2023 07:36 AM

No data to display

Actions

Also available in: Atom PDF