Sadece pmap kullanarak clojure ile bazı performans testleri yapıyorum ve pmap ile kullanılan iş parçacığı sayısını kontrol edebilmek istiyorum. OpenMP gibi bir şey kullanırken omp_set_num_threads() kullanarak iş parçacığı sayısını ayarlayabilir biliyorum. Clojure'da benzer bir şey olup olmayacağını merak ediyordum.Pmap ile kullanılan iş parçacığı sayısını denetlemenin bir yolu var mı?
6
A
cevap
7
İşte pmap
için kod:
(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))))
Gördüğünüz gibi, pmap
mevcut tüm işlemcileralır ve döngüsel bunları kullanır. Yani, hayır, iş parçacığı sayısını ayarlamak için bir yol yoktur ... ama her zaman bu işlevsellik sağlayacak kendi pmap
yazabilirsiniz.
İlgili konular
- 1. jQuery mevcut değilse document.ready() öğesini denetlemenin bir yolu var mı?
- 2. Jenkins sunucusu için iş parçacığı sayısını değiştir
- 3. Paralel iş parçacığı sayısını sınırla C#
- 4. Kinect ile iş parçacığı
- 5. İyi bir Java iş parçacığı taşıma paketi var mı?
- 6. iş parçacığı içinde yerel depolama iş parçacığı
- 7. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 8. python iş parçacığı oluşturmayacak mı?
- 9. Numpe/openblas üzerinde çalışma zamanında maksimum iş parçacığı sayısını ayarlayın
- 10. Aktif IAP abonelerinin sayısını görmenin bir yolu var mı?
- 11. Yinelenen yinelemede yinelenen yineleme sayısını bulmanın bir yolu var mı?
- 12. Durdurulan bir iş parçacığı mı başlatılıyor?
- 13. Bir iş parçacığı veya iş parçacığı için bir DAO DAO?
- 14. Bir UI iş parçacığının tanımı nedir? Bir .NET uygulamasında yalnızca bir UI iş parçacığı var mı?
- 15. UEFI'da bir iş parçacığı oluşturma
- 16. Bir İş örneğini yeniden kullanmanın bir yolu var mı?
- 17. OpenMP ve MKL iş parçacığı
- 18. Tomcat iş parçacığı havuzundaki iş parçacığı sayısı nasıl artırılır?
- 19. Delphi sınıfında global veya iş parçacığı yerel depolama var mı?
- 20. Programım için iş parçacığı anlamama yardımcı olan var mı?
- 21. başka bir iş parçacığı (Net)
- 22. Bir daemon iş parçacığı yalnızca
- 23. Çıkarılmış iş parçacığı yığınını asla serbest bırakma
- 24. Python iş parçacığı dökümü
- 25. Bir "gerçek" iş parçacığı
- 26. Android'de iş parçacığı havuzu boyutu nasıl seçilir?
- 27. IE6'da JavaScript çoklu iş parçacığı mı?
- 28. iş parçacığı
- 29. Hatalı iş parçacığı
- 30. Perl iş parçacığının çalışması bittiğinde bir şey yapmanın bir yolu var mı?