Je ne fais que quelques tests de performance avec clojure en utilisant pmap et j'aimerais pouvoir contrôler le nombre de threads utilisés avec pmap. Je sais qu'en utilisant quelque chose comme OpenMP on peut définir le nombre de threads en utilisant omp_set_num_threads(). Je me demandais s'il y aurait quelque chose de similaire dans le clojure.Existe-t-il un moyen de contrôler le nombre de threads utilisés avec pmap?
6
A
Répondre
7
Code est ici pour pmap
:
(defn pmap
"Like map, except f is applied in parallel. Semi-lazy in that the
parallel computation stays ahead of the consumption, but doesn't
realize the entire result unless required. Only useful for
computationally intensive functions where the time of f dominates
the coordination overhead."
([f coll]
(let [n (+ 2 (.. Runtime getRuntime availableProcessors))
rets (map #(future (f %)) coll)
step (fn step [[x & xs :as vs] fs]
(lazy-seq
(if-let [s (seq fs)]
(cons (deref x) (step xs (rest s)))
(map deref vs))))]
(step rets (drop n rets))))
Comme vous pouvez le voir, pmap
prend tous les processeurs disponibles et les utilise de manière cyclique. Donc, non, il n'y a aucun moyen de définir le nombre de threads ... mais vous pouvez toujours écrire votre propre pmap
, qui fournira une telle fonctionnalité.
Questions connexes
- 1. limitant le nombre de processeurs utilisés par un processus
- 2. j2me Nombre de threads
- 3. Meilleure façon de contrôler le nombre de threads simultanés dans C#
- 4. Général - Nombre de threads dans le pool de threads
- 5. Comment minimiser le nombre de threads utilisés dans une application serveur tcp?
- 6. Comment obtenir le nombre de threads actifs?
- 7. La bonne façon de contrôler plusieurs threads
- 8. Comment créer un nombre dynamique de threads?
- 9. Nombre de bits utilisés dans int
- 10. Nombre de bits utilisés en Java long
- 11. pthreads: nombre autorisé de threads
- 12. mpirun nombre réel de processeurs utilisés
- 13. Comment contrôler les validateurs utilisés dans un DataGrid
- 14. parallèle C# nombre de cœurs utilisés
- 15. Comment trouver le nombre d'octets utilisés par un pointeur?
- 16. Comment déterminer le nombre optimal de threads de travail
- 17. Réduire le nombre de threads Daemon de Tomcat
- 18. Nombre de threads et nombres de threads dans Grand Central Dispatch
- 19. Nombre de threads de consommation WCM MSMQ
- 20. interaction entre seque et pmap
- 21. Nombre moyen de relations avec XML
- 22. Comment contrôler afficher le nombre de chiffres dans JSP?
- 23. Limiter le nombre de threads dans IMagick (PHP)
- 24. NPTL limite le nombre maximum de threads à 65528?
- 25. Nombre maximal de threads pour une application?
- 26. Meilleur modèle pour créer un grand nombre de threads C#
- 27. Nombre de threads optimal pour un problème hautement parallélisable
- 28. Existe-t-il un moyen de contrôler la RAM utilisée par le serveur Thin de Ruby?
- 29. Contrôler le travail des threads de travail via le thread principal
- 30. html - contrôler le nombre d'options affichées dans un élément de sélection