sched_setaffinity
veya pthread_attr_setaffinity_np
OpenMP altında thread benzeşimi ayarlamaya çalışır mı?OpenMP ve CPU benzeşimi
İlgili: CPU Affinity
sched_setaffinity
veya pthread_attr_setaffinity_np
OpenMP altında thread benzeşimi ayarlamaya çalışır mı?OpenMP ve CPU benzeşimi
İlgili: CPU Affinity
Evet, adlandırılmış aramalar iplik ilgi ayarlamak için çalışacaktır. Tek sorun, iş parçacığı numarasını düzeltmek ve doğru iş parçacığına doğru yakınlık ayarlamaktır (bilinen iş parçacığı sayısı için for
döngüsünün statik zamanlamasını kullanmayı deneyebilirsiniz).
Bildiğim kadarıyla, hemen hemen her openmp ortam ile yakınlık ayarlamayı sağlar. Çevre değişkeninin adı değişmektedir (bir süre önce standartlaştırılmamıştır). OpenMP uygulamasını bulmak için http://www.spec.org/omp2001/results/omp2001.html sayfasını kullanıyorum ve belirli bir ortam değişkeni adını arayacak. Affinity, specOMP sonuçlarının yarısında ayarlanır. Sonuçlarda bazı ek OpenMP performans ayar ayarları da vardır.
E.g. For intel compiler değişkendir 63
ve newer OpenMP Standard, version 3.1 değişkeni OMP_PROC_BIND (0 sayıldı) en fazla CPU sayısını tanımlar,
export KMP_AFFINITY=compact,0
export SUNW_MP_PROCBIND=TRUE
export GOMP_CPU_AFFINITY=0-63
(secti görmek 4.4'te, OpenMP'de standartlaştırılmış bir ilişki kurma şeklidir. Kullanımı:
export OMP_PROC_BIND=true
Teşekkürler! pthread_attr_setaffinity_np' gibi dil seviyesinde hiçbir şey yok mu? –
no, openmp standardında iplik bağlama pragma veya işlevleri yoktur. Tek yol (ve tavsiye edilen), konuları çevreci değişkenine, derleyiciye özgü veya openmp3.1 ile bağlamaktır. Bu ayar ana başlamadan önce erken yapılmalıdır. – osgx
Yani, kesinlikle, cevabınız "Hayır" ile başlamalıdır :) –