Parçacık ayrışma ve etki alanı ayrışma paralelleştirme algoritmalarının avantajları ve dezavantajları nelerdir?


15

Gromacs ve DL_POLY gibi çeşitli yazılım paketleri kullanarak moleküler dinamik (MD) simülasyonları kullanıyorum.

Gromac'lar artık hem partikül ayrışma hem de alan ayrışma algoritmalarını desteklemektedir. Varsayılan olarak, Gromacs simülasyonları alan ayrışmasını kullanır, ancak uzun yıllar öncesine kadar Gromac'larda uygulanan tek yöntem parçacık ayrışmasıydı. Gromacs gazetelerinden birinde (DOI 10.1002 / jcc.20291), yazarlar ilk partikül ayrıştırma seçimleri için bir neden verir:

"Tasarımın erken bir kararı, işleyicileri dağıtmak için etki alanı ayrıştırması yerine parçacık ayrışması ile çalışma seçeneğiydi . İkinci durumda, uzamsal alanlar, yalnızca yerel iletişim yoluyla mekansal komşuları hızlı bir şekilde bulmayı sağlayan işlemcilere atanır, ancak Etki alanı ayrışması, yalnızca doğrusal sistem boyutu, moleküler dinamiklerde nadiren görülen etkileşim aralığını önemli ölçüde aştığında daha iyi bir seçimdir, parçacık ayrışması ile her işlemci, kuvvetleri ve koordinat / hız güncellemelerini hesaplar işlemcilere eşit olarak dağıtılmış önceden hesaplanmış bir komşu listesini kullanarak parçacıkların atanmış bir kısmı için. parçacıkları arasındaki çift etkileşimi sonucu ortaya çıkan ı ve j , her iki parçacık hızı güncelleştirme için gerekli olan, I ve jFbenjbenjbenj, yalnızca bir kez hesaplanır ve diğer işlemcilere iletilir. Her işlemci, depolamayı ihtiyaç duyduğu koordinatlarla sınırlamak yerine yerel belleğinde sistemin tüm koordinat setini tutar. Bu daha basittir ve iletişim yükünü azaltırken, bellek talebi milyonlarca parçacık için bile genellikle sınırlayıcı bir faktör değildir. Öte yandan, parçacık sayısının 1000 katına kadar içerebilen komşu liste, işlemciler üzerine dağıtılır. İletişim esas olarak, işlemci halkası etrafındaki adımda koordinatları ve kuvvetleri göndermekle sınırlıdır. Bu seçeneklerin zaman içinde sağlam olduğu ve modern işlemci kümeleri için kolayca uygulanabilir olduğu kanıtlanmıştır. "

"Doğrusal sistem boyutu, ancak doğrusal sistem boyutu, moleküler dinamiklerde nadiren görülen etkileşim aralığını önemli ölçüde aştığında" etki alanı ayrışması daha iyi bir seçimdir? Yukarıdaki paragraftan, parçacık ayrışmasının, alan sınırları boyunca hareket eden parçacıklarla uğraşmak zorunda olmadığı avantajına sahip olduğu fikrini alıyorum; bunun yerine, her bir işlemci için toplam sistem yapılandırmasını depolamak için yeterli belleğe sahip olmanız yeterlidir . Bu nedenle, parçacık ayrışması çok elverişli görünürken, etki alanı ayrışması çok elverişsiz görünmektedir.

Bunun çok karmaşık bir soru olduğundan eminim (ve muhtemelen birçok kitabın konusu), ama sadece temel olarak, parçacık ayrışması çok uygun görünüyorsa, neden alan ayrıştırması kullanmanız gerekir? Etki alanı ayrıştırması yalnızca sistemin boyutu çok büyükse (her yapılandırmada toplam yapılandırmayı depolamayı zorlaştırmak veya imkansız kılmak) uygun mudur? Yukarıdaki alıntılanan paragrafa dayanarak, etki alanı ayrışmasının neden şimdi, Gromacs'ta varsayılan paralelleştirme algoritması olduğundan emin değilim.

Öyle görünüyor ki DL_POLY şimdi (sürüm 4) ayrıca alan ayrışması kullanıyor. Sürüm 4 kılavuzundan:

"Konfigürasyon verilerinin bu şekilde bölünmesi, atomların simülasyon hücresindeki konumuna dayanmaktadır, sistem verilerinin böyle bir geometrik tahsisi DD algoritmalarının ayırt edici özelliğidir. Bu stratejinin verimli çalışması için, simüle edilmiş sistem makul derecede düzgün bir yoğunluğa sahip olmalıdır, böylece her işlemciye atom verilerinin neredeyse eşit bir kısmı tahsis edilir (mümkün olduğu kadar) Bu yaklaşımla, hareket denklemlerinin kuvvetlerinin hesaplanması ve entegrasyonu (makul olarak) işlemciler arasında eşit olarak paylaşılır ve büyük ölçüde her işlemci üzerinde bağımsız olarak hesaplanabilir.Yöntem, programlamak zor olsa da kavramsal olarak basittir ve özellikle verimliliğin en yüksek olduğu büyük ölçekli simülasyonlar için uygundur.

...

DD stratejisi durumunda SHAKE (RATTLE) algoritması, atom konumlarının genel güncellemelerinin (birleştirme ve birleştirme) gerekli olduğu DL_POLY Classic'in Çoğaltılmış Veri yönteminden daha basittir. "

Bu, etki alanı ayrışmasının iyi gibi görünmesini sağlar, çünkü belki de uygulanması daha zor olsa da daha verimli olabilir.

Öte yandan, önceki bir sürüm (DL_POLY Classic), parçacık ayrışması için başka bir isim gibi görünen çoğaltılmış veri paralelleştirmesi kullandı. Bu sürüm kılavuzundan:

Çoğaltılmış Veri (RD) stratejisi, MD'de paralellik elde etmenin birkaç yolundan biridir. Paralel bilgisayarın her düğümde konfigürasyon verilerinin çoğaltma adını almaktadır (örneğin, atomik koordinatları tanımlayan diziler hızları, v i ve kuvvetler f i tüm, NrbenvbenfbenN-benzetilmiş sistemdeki atomlar, her işlem düğümünde yeniden üretilir). Bu stratejide, kuvvet denklemlerinin hesaplanması ve entegrasyonu kuvvetlerin çoğu düğümler arasında kolayca ve eşit olarak paylaşılabilir ve büyük ölçüde her bir düğümde bağımsız olarak işlenebilir. Yöntemin programlanması nispeten basittir ve oldukça verimlidir. Ayrıca, tek bir işlemci üzerinde çok kolay bir şekilde çalışmak “daraltılabilir”. Bununla birlikte, strateji bellekte pahalı olabilir ve yüksek iletişim yüklerine sahip olabilir, ancak genel olarak çok çeşitli uygulamalarda başarılı olduğu kanıtlanmıştır.

Bu paragraf, çoğaltılan verilerin / parçacık ayrışmasının "yüksek iletişim ek yükleri" olduğunu belirtmesi dışında, genel olarak bu sorunun ilk paragrafına uygun görünüyor. Gromacs belgesindeki paragraf tam tersini söylüyor - parçacık ayrışması tercih edilir çünkü etki alanı ayrışmasından daha düşük iletişim yüküne sahiptir.

Bir fikrin var mı?

Yanıtlar:


10

Parçacık ve alan ayrışması, sınırlı aralıklı etkileşimlere sahip sistemler için kuvvet hesaplamalarını hızlandırmanın iki ana yöntemine doğrudan bağlıdır - Verlet komşu listeleri ve hücreye bağlı listeler. Detaylara girmek isterseniz, Allen ve Tildesley'den, Bilgisayar Simülasyonu Sıvıları adlı çok güzel bir kitap var, birçokları tarafından Moleküler Dinamikler ve Monte Carlo çalışmalarının "incili" olarak kabul ediliyor. Sonra Griebel, Knapek ve Zumbusch'un Moleküler Dinamiğinde MD'nin paralel uygulanması için çeşitli tekniklerin derinliklerine giren Sayısal Simülasyon var .

Ö(N-2)Ö(N-)

Ö(N-)Ö(N-) N-daha iyi ölçeklenir. Dolayısıyla doğrusal boyut argümanı. Etki alanı ayrıştırma yöntemi, hücreye bağlı listeler yönteminin basit bir uzantısıdır - hücreler farklı CPU'lar arasında bölünür.

Etki alanı ayrışması ile ilgili sorun, parçacıklar bir hücreden başka bir CPU tarafından bakılan bir hücreye geçtiğinde iletişim kurması gerektiğidir. Bu, partiküllerin denge konumlarından daha uzağa gitme eğilimi gösteren yüksek simülasyon sıcaklıklarında veya bir partikül akışı olduğunda sorun yaratabilir. Ayrıca, etki alanı sınırındaki hücrelerden gelen bilgiler her yinelemede komşu etki alanlarına aktarılmalıdır. Ancak tüm bunlar yerel olarak senkronize iletişimdir ve çok verimli bir şekilde yapılabilir.

Çoğaltılan veriler en kolay yaklaşımdır, ancak maalesef her adımda tüm konum ve hız bilgilerinin küresel olarak senkronize edilmesini gerektirir. Bu gerçekten iyi ölçeklenmiyor ve çok büyük sistem için küresel bellek miktarı, veri yapısının boyutu kullanılan CPU sayısından kat kat, paralel işlemenin amaçlarından biri de her CPU daha az tutacak şekilde verilerin dağıtılmasıdır. küresel veri miktarından daha fazla.

Özetle, simüle edilen tüm sistemler için uygun "tek beden herkese uyar" yöntemi yoktur. Çoğu zaman en iyi paralelleştirme stratejisi sistem geometrisinden çıkarılabilir ve bu duruma uygun MD kodu seçilebilir - sonuçta hepsi aynı temel kuvvet alanlarından ve entegratörlerden daha azını uygular.


Mükemmel cevap! Düzgün bir atom dağılımına sahip olmak yaygın mıdır? düzgün olmayan dağılımlar için de aynı şekilde çalışır mı?
fcruz

3
Simüle edilen sisteme bağlıdır. Sıvı, gaz veya dökme kristal ise, atomlar daha az düzgün bir şekilde dağılmış olacaktır. Fazlar veya yüksek lokalize partikül agregaları varsa - daha az. Düzgün olmayan bir dağılım için, bazı uyarlanabilir yaklaşımlar alınmadıkça alan ayrışması daha az verimli olabilir.
Hristo Iliev

2
Ö(N-2)Ö(N-günlükN-)ÖrÖ(N-)

4

"Alan ayrışması sadece doğrusal sistem boyutu etkileşim aralığını önemli ölçüde aştığında daha iyi bir seçimdir, bu moleküler dinamiklerde nadiren görülür" (çok eski) GROMACS makalesinin yazarları, komşu listesinin uzamsal boyutu ve simülasyon hücresi sadece birkaç nanometredir, o zaman alan ayrışması yapma yükü çok yüksektir. Ayrıca, parçacık ayrışmasında bir bütün olarak bilgi dağıtımını kabul edebilir ve alan ayrıştırması için tüm defter tutma için zaman harcamanıza gerek yoktur.

GROMACS uygulamasında partikül ayrışması sorunu, zaman içinde her işlemciye atanan partiküllerin uzaya yayılmasıydı. Her etkileşimi hesaplama sorumluluğu başlangıçtaki konumlarına göre belirlendiğinden, difüzyon, komşu listesi tarafından açıklanan toplam hesaplama sabit olsa bile, her işlemcinin komşu listesini oluşturmak için bilmesi gereken toplam alan hacmini yavaş yavaş artırdı. Uygulamada, verileri ve iletişim yerini sıfırlamak için simülasyonu periyodik olarak yeniden başlatacaksınız.

Simülasyonun zaman ölçeğinde difüzyon önemliyse, "partikül ayrışmasının, etki alanı sınırları boyunca hareket eden partiküller ile uğraşmak zorunda kalmaması" avantajı yoktur.

Etki alanı ayrışması, difüzyonla birlikte etkileşim sorumluluğunu taşıyarak, böylece her işlemci üzerindeki veri konumunu iyileştirerek ve iletişim hacmini en aza indirerek bu "ön" ile ilgilenir.

Feragatname: GROMACS'ın geliştirilmesine yardım ediyorum ve muhtemelen önümüzdeki hafta partikül ayrışma uygulamasını parçalayacağım ;-)


0

Hristo Iliev'in cevabına eklemek istiyorum. Görevi çoğunlukla hesaplama karmaşıklığından bahsederken, paralelleşme söz konusu olduğunda, iletişim karmaşıklığı en azından aynı derecede önemlidir - ve alan ayrışmasının ana nedeni budur.

Modern paralel makineler genellikle bir çeşit torus topolojisine sahiptir. Bu, her CPU'nun çok hızlı bir şekilde iletişim kurabileceği bir dizi "komşu" CPU'ya sahip olduğu anlamına gelir. Komşu olmayan bir CPU ile iletişim kurmak daha maliyetlidir. Bu nedenle, yalnızca komşu CPU'larla iletişim kurması gereken bir algoritmaya sahip olmak her zaman elverişlidir.

PÖ(P2) iletişim adımlarının gerekli . Ayrıca, iletişimin çoğu komşu olmayan CPU'larla yapılır.

PÖ(P)

Ö(P)

Bununla birlikte, muntazam olmayan sistemlerin göründüğü kadar yaygın olmadığını, yalnızca vakumda bir şeyi simüle ederken veya örtük bir çözücü kullanırken meydana geldiğini unutmayın. Kristallerin ve sıvıların yoğunlukları, alan bozunmasını sağlayacak kadar yakındır.


Bu çok iyi bir cevap. Sadece bir hassasiyet eklemek istedim. MD benzeri algoritmalara dayanan yöntemleri (Kesikli Eleman Yöntemi gibi) kullanan granüler akış simülasyonları, genellikle parçacıklardan neredeyse uzak olan bölgelere ve bunlarla dolu olan bölgelere sahip olduğunuz durumlarla karşılaşır ...
BlaB

Etkileşim ortaklarının rastgele dağıtılması kesinlikle parçacık ayrışmasının bir gereği değildir. Biri uzamsal olarak kompakt parçacık gruplarına ayrışarak başlayabilir ve sıklıkla başlamalıdır, çünkü ortak etkileşim komşularını paylaşacaklardır. Sonunda difüzyon dağılımın rastgele olacağı anlamına gelir. Bu nedenle, yukarıda belirtilen GROMACS parçacık ayrışma simülasyonları, ayrışmanın yerini yenilemek için periyodik olarak yeniden başlatılacaktır.
mabraham
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.