Aracılığıyla paylaş


Eşzamanlılık çalýþma OpenMP ' geçiş

Eşzamanlılık çalışma zamanı çeşitli programlama modeli sağlar. Bu modeller üst üste veya Tamamlayıcı diğer kitaplıkları modeller. Bu Belgeleri Karşılaştır bölümünde OpenMP eşzamanlılık çalışma ve eşzamanlılık çalışma zamanı kullanmak için varolan OpenMP kod geçme hakkında örnekler sağlar.

OpenMP programlama modeli, açık bir standart tanımlanan ve Fortran ve c/C++ programlama dilleri için iyi tanımlanmış bağlantılar vardır. OpenMP sürüm 2.0 ve Visual C++ Derleyici tarafından desteklenen, 2.5 yinelemeli paralel algoritmalar için uygun; diğer bir deyişle, bunlar paralel yineleme veri dizisi gerçekleştirin. OpenMP 3.0 yinelemeli görevler yanında yinelemeli olmayan görevler destekler.

OpenMP paralellik derecesini pre-determined ve kullanılabilir sistem kaynakları eşleşen en verimli olur. OpenMP için yüksek performanslı bilgi işlem, özellikle iyi bir eşleşme hesaplama çok büyük sorunlar bir bilgisayarın işlem kaynaklarını burada dağıtılır modelidir. Bu senaryoda, donanım ortamını genellikle sabit ve geliştirici okunmadığından algoritması çalıştırıldığında tüm bilgi işlem kaynaklarını özel kullanım erişimine sahip bekleyebilirsiniz.

Ancak, daha az kısıtlanmış bilgi işlem ortamlarını OpenMP iyi eşleşen olmayabilir. Örneğin, yinelenen sorunları (quicksort algoritması veya ağaç veri arama gibi) OpenMP 2.0 ve 2.5 kullanarak uygulamak daha zordur. Eşzamanlılık çalışma zamanı OpenMP yetenekleri sağlayarak tamamlayan Zaman uyumsuz aracıları kitaplığı ve Paralel desen kitaplığı (ppl). Zaman uyumsuz aracıları kitaplığı coarse-grained görev paralellik destekler; Daha fazla paralel görevleri belirtilecek ppl destekler. Eşzamanlılık çalışma zamanı uygulama mantığını odaklanabilecek biçimde, paralel işlemleri gerçekleştirmek için gerekli altyapıyı sağlar. Eşzamanlılık çalışma zamanı programlama modelleriyle sağladığından, ancak kendi zamanlama yükü diğer eşzamanlılık kitaplıkları OpenMP gibi daha büyük olabilir. Bu nedenle, eşzamanlılık çalışma zamanı kullanmak için varolan OpenMP kodunuzu dönüştürdüğünüzde performansını artırarak sınamanızı öneririz.

Ne zaman eşzamanlılık çalýþma OpenMP ' Yükselt

Aşağıdaki durumlarda eşzamanlılık çalışma zamanı kullanmak için varolan OpenMP kod geçirmek için yararlı olabilir.

Servis talepleri

Eşzamanlılık çalışma zamanı avantajları

Genişletilebilir bir eşzamanlı programlama framework gerektirir.

Eşzamanlılık çalışma zamanında özelliklerin uzatılabilir. Ayrıca, yenilerini oluşturmak için varolan özellikleri birleştirebilirsiniz. OpenMP derleyici yönergeleri edeceğinden kolayca genişletilemez.

Uygulamanızın işbirliği yapan engelleme yararını sağlar.

Kullanılabilir olmayan bir kaynak gerektirdiği için bir görev engellediğinde, ilk görev kaynak için beklerken eşzamanlılık çalışma zamanı diğer görevleri gerçekleştirebilirsiniz.

Uygulamanız, dinamik Yük Dengelemesi'nden yararına.

Eşzamanlılık çalışma zamanı iş yüklerini değiştikçe, bilgisayar kaynakları ayırma ayarlar planlama bir algoritma kullanır. Zamanlayıcı paralel bir bölge bilgi işlem kaynakları ayırır, OpenMP bu Kaynak Tahsisatları SD sabittir.

Özel durum işleme desteği gerektirir.

ppl, hem içindeki hem de paralel bölge veya döngü dışında özel durumları yakalamak sağlar. OpenMP özel durum içinde paralel bölge veya döngü işlemesi gerekir.

İptali mekanizması gerektirir.

ppl iptal etmek hem tek tek görevleri ve çalışma paralel ağaçları uygulamaları etkinleştirir. OpenMP kendi iptali mekanizması uygulamak için uygulama gerektirir.

Başladığı farklı bir bağlamda bitirmek için paralel kod gerektirir.

Eşzamanlılık çalışma zamanı bir bağlamda bir görevi başlatmak ve sonra bekleyin veya başka bir bağlamda bu görevi iptal etmek sağlar. OpenMP tüm paralel çalışma başladığı bağlamında bitmesi gerekir.

Gelişmiş hata ayıklama desteği gerektirir.

Visual Studio sağlar Paralel yığınları ve Paralel görevleri windows daha kolay, çok iş parçacıklı uygulamalar hatalarýný.

Eşzamanlılık çalışma zamanı desteğini hata ayıklama hakkında daha fazla bilgi için bkz: Paralel görevleri penceresini kullanma, Paralel yığınları penceresini kullanma, ve İzlenecek yol: paralel bir uygulama hata ayıklaması.

Ne zaman OpenMP ' eşzamanlılık çalýþma Not Migrate

Eşzamanlılık çalışma zamanı kullanmak için varolan OpenMP kod geçirmek uygun olmayabilir, aşağıdaki durumlarda açıklayın.

Servis talepleri

Açıklama

Uygulama zaten gereksinimlerinizi karşılıyor.

Uygulama performansı ve geçerli hata ayıklama desteği memnun değilseniz geçiş uygun olmayabilir.

Bilgisayarınızın paralel döngü gövdeleri çok az çalışma gerçekleştirin.

Eşzamanlılık çalışma zamanı Görev Zamanlayıcı yükü Döngünün gövdesi görece küçük olduğunda özellikle Döngünün gövdesi paralel olarak çalıştırma yararları aşmak değil.

Uygulamanız, c dilinde yazılmış

Eşzamanlılık çalışma zamanı birçok C++ özellikleri kullandığından, c uygulama tam olarak kullanmasını sağlayan kod yazamıyor, onu uygun olmayabilir.

İlgili Konular

Ayrıca bkz.

Kavramlar

Eşzamanlılık çalışma zamanı

Paralel Desenler kitaplığının (ppl)

Zaman uyumsuz aracıları kitaplığı

Diğer Kaynaklar

Visual C++ OpenMP