mapa mongodb reduzir no servidor multicore

Eu tenho um mongodb com milhares de registros contendo vetores muito longos. Eu estou procurando correlações entre um vetor de entrada com meu conjunto de dados MDB usando um determinado algoritmo.

código psudo:

function find_best_correlation(input_vector)
    max_correlation = 0
    return_vector = []
    foreach reference_vector in dataset:
        if calculateCorrelation(input_vector,reference_vector) > max_correlation then:
            return_vector = reference_vector
    return return_vector

Este é um candidato muito bom para o padrão de redução de mapa, pois não me importo com a ordem em que os cálculos são executados.

A questão é que meu banco de dados está em um nó. Eu gostaria de executar muitos mapeamentos simultaneamente (eu tenho uma máquina de 8 núcleos)

Pelo que entendi, o MongoDb usa apenas um thread de execução por nó - na prática, estou executando meu conjunto de dados em série. Isso está correto?

Em caso afirmativo, posso configurar o número de processos / threads por mapa - reduzir execução? Se eu gerenciar vários threads executando map-reduce em paralelo e, em seguida, agregar os resultados, eu terei um aumento substancial de desempenho (Alguém já tentou)? Se não - eu posso ter várias replicações do meu banco de dados no mesmo nó e "truque" mongoDb para executar em 2 replicações?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion