ashvardanian / ashvardanian/StringZilla

Adding reverse-order SWAR search backends

Open
#70 0 comments 1 reaction 0 assignees View on GitHub
enhancement good first issue
Dominant language
C
Stars
3.6k
Forks
135
PR merge metrics
No merged PRs in 30d

Description

StringZilla currently implements several SWAR search optimizations for needles of different length: `_sz_find_2byte_serial`, `_sz_find_3byte_serial`, `_sz_find_4byte_serial`. Those currently lack reverse-order variants and should be implemented to guarantee the same level of throughput on non-SIMD devices in reverse-order operations.

Implementing those is fairly strait-forward, and can be a great first issue for people used to C programming.

Contributor guide

Open the contributing guide

Research direction

Locate the existing _sz_find_2byte_serial, _sz_find_3byte_serial, and _sz_find_4byte_serial SWAR search implementations and their reverse-order callers. Use the forward variants to understand the expected behavior, then verify that reverse-order operations have corresponding implementations for all three needle lengths and preserve non-SIMD search throughput.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance, search
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.