Project

General

Profile

Actions

Feature #61573

closed

Erasure Code: processing speed down when cacheline not aligned

Added by Chris Jin almost 3 years ago. Updated 5 months ago.

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

0%

Source:
Backport:
Reviewed:
Affected Versions:
Component(RADOS):
Pull request ID:
Tags (freeform):
Fixed In:
v19.3.0-7128-ga11c17909c
Released In:
v20.2.0~1262
Upkeep Timestamp:
2025-11-01T01:21:14+00:00

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
Actions #1

Updated by Radoslaw Zarzynski over 1 year ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 60246
Actions #2

Updated by Bill Scales 11 months ago

  • Status changed from Fix Under Review to Resolved
Actions #3

Updated by Upkeep Bot 8 months ago

  • Merge Commit set to a11c17909c8631ae3ad5f50f64aedff14a80c461
  • Fixed In set to v19.3.0-7128-ga11c17909c8
  • Upkeep Timestamp set to 2025-07-12T10:09:31+00:00
Actions #4

Updated by Upkeep Bot 8 months ago

  • Fixed In changed from v19.3.0-7128-ga11c17909c8 to v19.3.0-7128-ga11c17909c
  • Upkeep Timestamp changed from 2025-07-12T10:09:31+00:00 to 2025-07-14T23:40:13+00:00
Actions #5

Updated by Upkeep Bot 5 months ago

  • Released In set to v20.2.0~1262
  • Upkeep Timestamp changed from 2025-07-14T23:40:13+00:00 to 2025-11-01T01:21:14+00:00
Actions

Also available in: Atom PDF