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
Nasıl yapılır: bir OpenMP paralel eşzamanlılık çalışma zamanı kullanmak döngü için dönüştürme
OpenMP kullanan bir döngü verilen paralel ve için emirler eşzamanlılık çalışma zamanı kullanmak üzere dönüştürme gösterilmiştir concurrency::parallel_for algoritması.Nasıl yapılır: iptali eşzamanlılık çalışma zamanı kullanmak için kullandığı bir OpenMP döngüye dönüştürür
Verilen bir OpenMP paraleliçin çalıştırmak için tüm yineleme gerektirmez döngü eşzamanlılık çalışma zamanı iptali mekanizması kullanmak üzere dönüştürme göstermektedir.Nasıl yapılır: eşzamanlılık çalışma zamanı kullanmak için özel durum işleme kullanan bir OpenMP döngüye dönüştürür
Verilen bir OpenMP paraleliçin özel durum işleme gerçekleştirir döngü mekanizması işleme eşzamanlılık çalışma zamanı özel durumu kullanmak üzere dönüştürme göstermektedir.Nasıl yapılır: eşzamanlılık çalışma zamanı kullanılacak azaltma değişken kullanan bir OpenMP döngüye dönüştürür
Verilen bir OpenMP paraleliçin kullanan bir döngü azaltma yan tümcesi, eşzamanlılık çalışma zamanı kullanmak üzere dönüştürme göstermektedir.
Ayrıca bkz.
Kavramlar
Paralel Desenler kitaplığının (ppl)
Zaman uyumsuz aracıları kitaplığı