NVIDIA / NVIDIA/cuvs

[FEA] [Java] Threadpool for creating indexes?

Open
#1,088 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Cuda
Stars
854
Forks
236
Avg merge
3d 3h
Merged PRs (30d)
62

Description

For setting the concurrency during building, we use omp_set_num_threads. However, one drawback with this approach could be when multiple indexes are being build in parallel (which could be a realistic use-case in Solr etc.), there would end up being n * omp_set_num_threads where n is the number of parallel indexes being built. This value could easily exceed the number of available CPUs and may cause starvation for the application. One way could be to use a thread pool shared among the parallel indexing processes so that the maximum number of threads can be restricted to the threadpool size.

I'm putting my thoughts on this out for discussion. Thanks!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests; start by locating the current omp_set_num_threads usage and the parallel index-building entry points. Review how concurrent index builds are initiated and document the scope and acceptance criteria for a shared thread-pool design.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.