2016-04-11 21 views
-2

gcc numaralı telefondan OpenMP kaynağını öğrenmem gerekiyor. OpenMP (3.0 ve 4.0) belgelerini okudum. Bildiğim kadarıyla OpenMP, work-sharing mekanizmasını kullandı. work-sharing mekanizmasını anladığım gibi, ileti dizileri arasındaki görevleri iletirken, iş parçacığı çalışıyor. Veya iş parçacıkları arasında veri dağıtımı, bu iş parçacıkları yürütmeden önce yürütüyor mu?İş paylaşımı mekanizması (OpenMP'de) iş parçacıkları yürütülürken iş parçacıkları arasındaki işlemleri iletiyor mu?

+0

[İş paylaşımını kendiniz uygulayabilirsiniz çok öğrenebilirsiniz] (http://stackoverflow.com/a/30591616/2542702). –

cevap

1

görevleri ile OpenMP kullanıyorsanız görevleri bir veya daha fazla görev kuyruğunda depolanır. Bir iş parçacığı kendisini boşta bulursa, komşu bir sıradaki görevleri snoop yapar. Bu libgomp iç.

için OpenMP paralel bir statik program ile kullanırsanız, hiçbir görev gözetimi gerçekleşmez. Bir dinamik zamanlama ile için OpenMP paralel kullanırsanız

, takımdaki ipler yüzden boşta evre takımın geri kalanından görevleri alacak dinamik işi böler. Genel olarak, iş parçacığı çalışma zamanında iletişim kurmaya ihtiyaç duyduğunda, döngüler işleme koyulmadan geçirilir.

+0

Çok teşekkürler! –