"Birleştirme" aynı zamanda birleştirme bellek erişim modellerini de ifade edebilir . Bu kullanımda, birleştirme iş parçacıklarının aynı anda çalıştığından emin olmak için kullanılır, yakınlardaki belleğe erişmeye çalışın. Bunun nedeni genellikle:
- Bellek genellikle RAM'den büyük bloklar halinde alınır.
- Bazı işlem birimleri gelecekteki bellek erişimlerini tahmin etmeye ve önbelleğe devam ederken, daha eski bellek parçalarını işlemeye çalışacaktır.
- Bellek, ardışık olarak daha büyük ama daha yavaş önbellekler hiyerarşisinde önbelleğe alınır.
Bu nedenle, öngörülebilir bellek düzenlerini kullanabilen programlar yapmak önemlidir. İş parçacığı programı ile daha da önemlidir, böylece bellek istekleri her yere atlamaz; aksi takdirde işlem birimi bellek isteklerinin yerine getirilmesini bekleyecektir.
Paralel Programlamaya Giriş'ten ilham alan diyagramlar : Ders 2 GPU Donanımı ve Paralel İletişim Kalıpları :
Altta: Düzgün bellek erişimi olan dört iş parçacığı. Siyah kesikli dikdörtgen, tek bir 4 kelimelik bellek isteğini temsil eder.
Bellek erişimleri yakındır ve bir git / engelle (veya en az sayıda istekte) alınabilir.
Ancak, iş parçacıkları arasındaki erişimin " adımını " artırırsak, daha fazla bellek erişimi gerektirir. Aşağıda: iki adımda dört iplik daha.
Burada bu 4 iş parçacığının 2 bellek bloğu isteği gerektirdiğini görebilirsiniz. Adım ne kadar küçükse o kadar iyidir. Adım ne kadar geniş olursa, potansiyel olarak o kadar fazla talep gerekir.
Tabii ki, büyük bir bellek adımından daha kötüsü rastgele bir bellek erişim paternidir. Bunlar boru hattı, önbellek veya tahmin etmek neredeyse imkansız olacaktır.
TikZ kaynakları: