Nothing
library(RcppHNSW)
context("test parallel")
set.seed(1)
x <- matrix(rnorm(n = 1280 * 10), ncol = 10)
ind_0 <- hnsw_build(
x,
distance = "euclidean",
M = 16,
ef = 200,
verbose = FALSE,
progress = "bar",
n_threads = 0
)
ind_1 <- hnsw_build(
x,
distance = "euclidean",
M = 16,
ef = 200,
verbose = FALSE,
progress = "bar",
n_threads = 1
)
ind_2 <- hnsw_build(
x,
distance = "euclidean",
M = 16,
ef = 200,
verbose = FALSE,
progress = "bar",
n_threads = 2
)
knn_0 <- hnsw_search(x, ind_0, k = 5)
knn_1 <- hnsw_search(x, ind_1, k = 5)
knn_2 <- hnsw_search(x, ind_2, k = 5)
# Seems index which was built using more than 1 thread is not deterministic
# but in general the difference between index built with 1 thread and
# many threads should be small
expect_lt(mean(knn_0$dist - knn_2$dist), 1e-4)
expect_lt(mean(knn_1$dist - knn_2$dist), 1e-4)
# same check for indices
expect_lt(mean(knn_0$idx != knn_2$idx), 1e-2)
expect_lt(mean(knn_1$idx != knn_2$idx), 1e-2)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.