Dans la plupart des estimateurs sur scikit-learn, il existe un n_jobs
paramètre dans fit
/ predict
methods pour créer des emplois parallèles à l'aide de joblib
. J'ai remarqué que le définir sur -1
crée un seul processus Python et maximise les cœurs, ce qui fait que l'utilisation du processeur atteint 2500% en plus. Ceci est très différent de le définir sur un entier positif> 1, ce qui crée plusieurs processus Python à une utilisation de ~ 100%.
Comment le paramétrer affecte-t-il l'utilisation du CPU et du cœur sur un serveur Linux multi-CPU? (par exemple, si n_jobs=8
alors 8 CPU sont complètement verrouillés ou les CPU réservent-ils encore des cœurs pour d'autres tâches / processus?)
De plus, je reçois MemoryError
occasionnellement lors de la définition n_jobs=-1
de grands ensembles de données. Cependant, l'utilisation de la mémoire oscille généralement autour de 30 à 40% pour le processus Python unique. Comment les données et la mémoire sont-elles gérées / copiées en fonction de la valeur de n_jobs
?