Farklı işlemcilerde üretilen değerlere paralel olarak bir matris sistemi nasıl monte edilir ve çözülür?


10

Heterojen Çok Ölçekli Metodu (HMM) kullanarak çok ölçekli bir problemi çözüyorum . Esasen, benim özel prosedür aşağıdaki yinelemeli süreci kullanır:

  1. Birçok yerel matris sistemini çözün.
  2. Yerel sistemlerin çözümlerinden ilgilenilen bir değeri hesaplayın.
  3. Yerel "ilgilenilen değerlerden" global bir matris sistemi oluşturun
  4. Global matris sistemini çözme
  5. Yeni yerel matris sistemleri oluşturmak için global matris sisteminin çözümünü kullanın.

Bazı yakınsama kriterleri sağlanana kadar tekrarlayın.

Birçok yerel (bağımsız) denklem sistemi olduğundan ve birden fazla sistem yerel RAM belleğine sığabileceğinden, her işlemciye birden çok "yerel" sistem yüklemek ve her sistemi sırayla çözmek en iyisidir ( bu yayınlanan soruya bakın ).

Sorum, küresel matris sistemini bir araya getirmek ve çözmek için en iyi stratejiyi ele alıyor. Benim özel durumumda, küresel matris sistemi, herhangi bir işlemcinin RAM belleğine tamamen sığabilecek kadar küçük. Ayrıca, yerel ve global matrisler yinelemeler arasındaki boyutu değiştirmez. Bu nedenle, üç olası stratejiden birini öngörüyorum:

  1. "İlgilenilen değerleri" tek bir işlemcide toplayın ve küresel matris sistemini sırayla tek bir işlemcide birleştirin / çözün.
  2. İlgilenilen değerleri her işlemciye kopyalayın ve aynı global matris sistemini her işlemcide sırayla birleştirin / çözün.
  3. Her bir işlemcinin, küresel matrisin bitişik bloklarını üretmek için gerekli olan "ilgilenilen değerlere" sahip olduğunu varsayarsak, küresel matrisin bölümlerini yerel olarak birleştirebilir, sonra bunları paralel olarak çözebiliriz.

Her yöntemin bazı avantajlarını / dezavantajlarını görebiliyorum. Yöntem 1'de, çözme aşamasında iletişim gerekli değildir, ancak kök işlemciye ve kök işlemciden iletişim bir darboğaz haline gelebilir (özellikle ölçekte). Yöntem 2, küresel matrisi monte etmek için birinci yöntemden daha fazla işlemci arası iletişim gerektirebilir, ancak çözme aşamasında veya aşağıdaki yerel matris montaj aşamasında herhangi bir iletişim gerekmez. Yöntem 3, yerel veya global matrislerin birleştirilmesi için işlemci arası iletişim gerektirmez, ancak çözme aşamasında gerektirir.

Her yerel sistemin x düzeyinde olduğunu ve x yerel matris sistemi olduğunu varsayalım . Ayrıca, global matris sisteminin x boyutuna sahip olduğunu varsayalım . Bu varsayımlar altında, yukarıda bahsedilen üç stratejiden hangisi küresel sistemin daha hızlı bir çözümüne yol açacaktır? Global matris için yineleme başına daha hızlı çalışabilecek başka haritalama stratejileri var mı?10310 3 10 3 10 3 10 3103103103103103


Çok ilginç bir soru. Umarım birinin iyi cevapları vardır.
tahkikat

Küresel sistemin yerel sistemlere göre ne kadar büyük olduğu hakkında bir fikriniz var mı? Yani, çözülecek yerel sistem varsa , küresel sistem k n × k n bazı k için mi? N'nin ne kadar büyük olduğuna dair bir fikrin var mı? Sorularınızın cevaplarının büyük ölçüde boyutlara bağlı olması muhtemeldir. nknxknkn
Bill Barth

106

kn

k<100Ö(n)

Yanıtlar:


4

Sıra 0'da çözmek istediğiniz herhangi bir durum olduğunu düşünmüyorum. Yedekli çözüm neredeyse her zaman daha iyidir çünkü küçük şeyler için allreduce azaltma kadar verimli ve yedekli hesaplama sadece iki yerine bir tane içerir.

Ancak, tüm düğümlerde mi, yoksa bir alt kümede mi, yoksa gereksiz altkümelerde mi hesaplanacağı, donanıma ve sistem boyutuna bağlıdır. Bu nedenle, bunlardan herhangi birini yapabilen bir sisteminiz olmalıdır. PETSc içindeki PCREDUNDANT, tüm süreçlerde, bazı süreçlerde veya süreç alt kümelerinde paralel olarak fazladan çözülebilir.

106


N-=4096
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.