Harici Bellekte Üstel Hızlanma


15

Arka fon

Harici bellek veya DAM modeli, bir algoritmanın maliyetini gerçekleştirdiği G / Ç sayısına göre (esas olarak önbellek kaçırma sayısı) tanımlar. Bu çalışma süreleri genellikle , belleğin boyutu ve bir kerede belleğe aktarılabilecek kelime sayısı olarak cinsinden verilir . Bazen ve sırasıyla ve için kullanılır . MBLZBM

Örneğin, sıralama maliyeti gerektirir ve saf matris çarpımı . Θ(N/BlogM/BN/B)Θ(n3/BM)

Bu model, veya bilgisi olmayan "önbellek-habersiz algoritmaları" analiz etmek için kullanılır . Genel olarak amaç, önbellek-habersiz algoritmanın harici bellek modelinde en iyi performansı göstermesidir; Permütasyon probleminde olduğu gibi bu her zaman mümkün değildir ( Brodal, Faderberg 2003'te gösterilmiştir ). Sıralama ve matris çarpımı tartışmaları da dahil olmak üzere önbelleksiz algoritmaların daha fazla açıklaması için Erik Demaine'nin bu yazısına bakın .BM

değiştirilmesinin sıralama için logaritmik bir hızlanmaya ve matris çarpımı için bir polinom hızlanmasına neden olduğunu görebiliriz . (Bu sonuç aslında Hong, Kung 1981'den alınmıştır ve aslında hem önbellek kayıtsızlığı hem de harici bellek modelinin resmileştirilmesinden önce gelir).M

Sorum şu:

hızlanmanın üstel olduğu herhangi bir durum var mı M? Çalışma süresi gibi bir şey olacaktır . Özellikle bu tanıma uyan bir önbellek bilmeyen algoritma veya veri yapısı ile ilgileniyorum ancak önbellek kullanan bir algoritma / veri yapısı veya hatta en iyi bilinen alt sınırdan memnun olacağım.f(N,B)/2O(M)

Çoğu modelde, giriş boyutu ve açıkça ise kelimesinin büyüklüğünde olduğu varsayılır . Daha sonra bir hızlanma bir polinom hızlandırması verir . Bu, aradığım sorun var ise polinom olmadığına inanmamı sağlıyor. (Aksi takdirde, önbellek boyutunu sabit bir G / Ç elde etmek için sabit olarak değiştirebiliriz, bu da olası görünmüyor).N M > w 2 M Nw=Ω(günlükN-)N-M>w2MN-


tahmin edebilir, ama ? hızlanma B p o l y l o g ( B ) olarak verilen bir vaka buldum , yeterli mi? N-=BpÖlylÖg(B)
vzn

Maalesef benim amacım için cinsinden olması gerekiyor . Yine de referansla ilgilenirim. M
SamM

önbellek habersiz algoritmalar üzerinde wikipedia . fyi bu alanlarda gösterimde bazı incelikler var. Demaine'nin p7 dipnotu bu alanda problem büyüklüğü olduğunu ve bazen n = N / B'nin burada n blok sayısı olduğunu söylüyor , ancak "küçük harfli gösterim iyilikten düşmüş gibi görünüyor". giriş boyutu olarak yukarıdaki n'yi ve alternatif olarak N'yi kullanırsınız . en azından sorunuzda standartlaştırmanız gerektiğini düşünüyorum. N-n=N-/BnnN-
vzn

Tutarlılık için düzenledim. , girişin boyutudur ve n , yalnızca matris çarpımı için kullanılır, çünkü bu sorunun çalışma süresi genellikle n × n matrisi (yani N = n 2 )N-nnxnN=n2
20'de SamM

literatürü taradıktan sonra bu durumları görmüyorum. belki böyle bir ref yoktur? belki böyle bir algoritma karmaşık olabilir ve bu nedenle böyle bir hızlanma elde etmek için teorik olarak analiz etmek zor olabilir bazı vaka var ...? ya da belki de çıkarılması gerekirdi ...? ya da, belki mümkün değil? belleğe rasgele erişimin mümkün olan en kötü durum olduğu fikri olabilir mi? Bu durumda hız artışı doğrusal gibi görünüyor ...? veya belki de hafızaya erişimin bazı fraktal örüntüsü en kötü durumdur? Bu çalışma hattı on yıldan biraz daha fazla ....M
vzn

Yanıtlar:


3

Soruyu anladığımdan emin değilim. Ama varsayımı altında geliyor bana eğer beri üstel zaman gerektiren problemleri içeren, bu tür problemleri, ihtiyaçlarınızı yerine getireceğine M ise Ç ( log N ) Eğer G / Ç işlemlerinin üstel numarası gerekmektedir ( çünkü O döngüsüne girmeden aynı boyuttaki O ( log N ) bellek bloğunda polinom sayısından daha fazla "kalamazsınız" ve M = N isePSPACEMO(logN)O(logN)M=Nyalnızca doğrusal sayıda G / Ç işlemine ihtiyacınız olacaktır. Ayrıca, gözlem ilgili böyle bir sorun değildir aittir can o hızlanma değerleri için sahip olması gerekir, doğru olduğundan M olan Q'dan ( N ) (biz operasyonların üstel sayıda anlamına geleceğini beri). Ancak hızlanma sadece M'nin daha küçük değerleri için geçerliyse , sezgisel olarak bunun doğru olmadığına inanıyorum, çünkü aslında her biri üstel gerektiren daha küçük O ( log N ) problemlerinin bir araya getirilmesi olan bir problem tasarlamanın mümkün olduğunu düşünüyorum. kendi boyutunda zaman ve üstel sayıda G / Ç işlemi (yani, p oPMΩ(N)MO(logN) , çünkü p o l y ( N ) O'da ( log N ) üsteldir). Uygulamada inanmak P S P A Cı- e gibi -Komple sorunlar T Q B F için koşulu yerine getirmek.poly(N)poly(N)O(logN)PSPACETQBF


Korkarım bazı argümanlarınızı takip etmiyorum. Eğer , harici bellekte bir sorun basittir. Bahsettiğim gibi, M = O ( log N ) biraz saçmadır, çünkü bellek sadece sabit sayıda kelimeye sahiptir (harici belleğin genel olarak nasıl incelendiği mümkün değildir, ancak mümkün değildir). Üstel kazanç olduğunu söylediğinizi görüyorum, ancak bu ara değerler hakkında hiçbir şey söylemiyor. Örneğin, harici bellekteki en uygun Bölüm iki terimin dakikasıdır (esasen her şey hafızaya uyuyorsa, yapamadığından tamamen farklı bir şey yaparız). Bunu ekarte edebilir misiniz? M=Ω(N)M=O(logN)
SamM

1
ise harici bellekteki herhangi bir sorunun neden önemsiz olduğunu anlamıyorum . Eğer M = N / 2 ve algoritma, üstel zaman alır, swap arka zorunda olabilir ve ileri bellek iki yarısı kez üstel bir sayı (adeta) arasındadır. M=Ω(N)M=N/2
user8477

Ah, elbette sabit faktörün önemli olduğu konusunda haklısınız. Bu çok mantıklı; bu kesinlikle iyi bir başlangıç ​​noktasıdır.
SamM

Ara değerler için herhangi bir argümanım yok. Çok yüzeysel bir seviyede, bazı geri izleme algoritmalarının bellek boyutuna üstel bir bağımlılığı olacağını tahmin ediyorum, çünkü arama ağacında daha derin derinlikteki düğümlerde G / Ç işlemleri gerekli olacaktır. Bu bağımlılık ara değerler için geçerlidir. Bu elbette sorunun doğasında var olan karmaşıklık hakkında hiçbir şey söylemiyor. Ayrıca, , yukarıda verilen güvercin deliği (döngü) argümanı yine de T ( N ) / 2 M kazancı verir, burada T ( N ) problemin zaman karmaşıklığıdır.M=ω(logN)T(N)/2MT(N)
user8477

-4

bu sorunun terra incognita, yani keşfedilmemiş topraklara yöneldiği görülüyor . bazı düşünce ve gözden geçirme sonra bu görünüşte çok zor / ince soru umarım akıllı olacak ama kesin olması amaçlanmamış bazı düşünceler / fikirler vardır.

Alıntı yaptığınız Demain, “önbellek kayıtsız algoritmaların] temel fikri basittir: ve M'yi bilmeden harici bellek algoritmaları tasarlayın . Ancak bu basit fikir şaşırtıcı derecede güçlü sonuçlara sahiptir."BM

aynı zamanda şaşırtıcı derecede ince çıkarımlara da sahip gibi görünüyor. bu modeli aşırı davranış için analiz etmek zor görünüyor ve şimdiye kadar hiç kimse bunu yapmadı. bazı anketler var ve şimdiye kadar tüm alanı inceliyor gibi görünüyor. alan sadece ~ 1 on yıl olduğu için bu şaşırtıcı değildir.

  • model henüz daha katı / biçimsel / teorik / genel / standart analizlerin yapılabileceği Turing makinelerine çevrilmiş görünmemektedir. Big-Oh gösteriminin tüm konsepti ve sabitlerin ilgisizliği gibi etkileri ve sezgileri, bu önbellek habersiz algoritmalar alanında otomatik olarak taşınmaz. örneğin model zaten tam bellek boyutlarını ölçen sabitleriyle çalışıyor gibi görünüyor . alanın şu ana kadar dinamiğinin bir dizi temel aksiyomuna sahip olmadığı anlaşılıyor.B,M

  • TM'lere Turing ve Hartmanis-Stearns tarafından 1936 yılında icat edildi zaman / uzay hiyerarşi teoremleri 1965 thats olağanüstü ~ 3 keşfedildi (sen biraz bu soru ima edilir) on yıllardır henüz zaman / uzay hiyerarşi teoremleri şimdi biraz kabul edilir ilköğretim ve lisans derslerinde okutulmaktadır. bu modelde henüz karşılık gelen hiyerarşi teoremleri var gibi görünmüyor ve bunun nasıl yapılması önemsiz bir sorun değil. Bu model aslında standart Turing makinesinden (zaten oldukça karmaşık bir dinamiğe sahip) daha fazla "hareketli parçaya" sahip gibi görünüyor, yani artırılmış bir Turing makinesi gibi.

  • başka bir fikir, bu harici bellek modelini bir şekilde TM'lere dönüştürmektir, bu da yine önbellek kayıtsız algoritmalarla ilgili literatürde / anketlerde görünmüyor ve belki de Hartmanis-Stearns hiyerarşi teoremlerinin nasıl tercüme edilebileceğini görmektir. bir bandın 'M' boyutu ve diğer bandın sonsuz olduğu ve blokların 'B' boyutlarında 'M' 'ye aktarıldığı iki bant TM ile ilişkili olduğu görülmektedir. ama aynı zamanda burada zorluk, kasete sıralı erişim kullanan Turing modelinden çok bir RAM modelidir. diğer yandan bu, tek ve çok bantlı TM'ler arasındaki dönüşümlerle ilişkili inceliklere yol açabilir .

  • literatür üzerinde Kumar tarafından bu büyük araştırmada olarak örneğin odaklanmak eğilimindedir nerede olduğu simülasyonları ile ampirik olarak bu sorunu saldıran önermek Önbellek habersiz algoritmaları (2003). önbellek simülasyonları için çevrimiçi birçok program ve makale vardır ve muhtemelen bazı basitleştirmeleri kullanarak büyük miktarda kod olmadan sorunuzu cevaplayabilirsiniz. temel bir fikir, olasılıklara dayalı olarak belleğin "yakın" alanlarına erişen olasılıksal algoritmalar oluşturmaktır. "yakın" burada bitişik bellek olmak zorunda değildir, bunun yerine en son erişilen sayfalarını takip etmeye dayalı rastgele bellek sayfaları (bloklar) seçen bir algoritmadır. güç yasaları kullanmanızı önerir"en son erişilenler" listesindeki "yakın" sayfaları seçme olasılığını belirlemek için. bu, önbellek tabanlı performans geliştirmelerinin ilişkili olduğu en önemli unsur gibi görünmektedir.

  • temelde disk belleğine karşı "çekirdek bellek" ölçüsü olan 'M' temelli kaba bir argüman. bir algoritma için, çekirdek bellek arttıkça, algoritmik hızdaki doğrusal bir gelişmeye sadece [asimptotik] yaklaşır ve algoritma hızındaki herhangi bir süper doğrusal artışı elde etmek için "çekirdek bellek" eklemek sezgisel olarak hızı aşmak gibi görünür. sınırı ve "boşuna bir şey almak". ancak, bunu kanıtlamak için modeli yeterince iyi kavrama [ama yetkililer / kurucular / uzmanlar da dahil olmak üzere başka hiç kimsenin de olmadığı].

  • bu önbellek-habersiz algoritma literatürü P algoritmalarına odaklanmıştır ve şu ana kadar P olmayan bir algoritmanın analizinde hiçbir durum görmemiştir ve belki de hiç yoktur. bu muhtemelen analiz çok zor olabilir! bu durumda, uzun vadede bu alanda aşırılık davranışı ile ilgili sorular cevapsız kalabilir.

  • L gibi "küçük" karmaşıklık algoritmalarının veya P olmayan (örn. Expspace vb.) gibi "büyük" algoritmaların bu modelde nasıl davrandığı hakkında sezgisel olarak net görünmüyor veya muhtemelen hiç incelenmemiş gibi görünmüyor. model, temelde farklı gibi görünen, ancak zaman ve mekan hiyerarşileri ile iç içe geçmiş bellek yerini ölçüyor.

  • Turing makinesi karmaşıklığının, "tersine karmaşıklık" adı verilen, ilişkili olabilecek bazı çalışma, sonuçlar ve belgelerle biraz belirsiz bir ölçümü vardır. temelde TM belirli bir zaman ve mekan miktarını kapsayabilir, ancak geri dönüşler hesaplama sırasında bant kafasının bir şekilde bağımsız bir ölçümüdür. "yüksek geri dönüşler", "yüksek bellek yeri" ile ilişkili olabilir, çünkü her iki durumda da teyp başlığı, daha büyük bölgelere hareket etmek yerine "daha küçük" bir bölgede kalma eğilimindedir.

  • bu soru ve model bana Amdahls yasasını hatırlatıyor ve azalan getiriler veya bakiyeler / dengesizliklerin bu alanda geçerli olabileceği veya uygulanabileceğine dair henüz keşfedilmemiş benzer bir yasadan şüpheleniyor. kaba akıl yürütme: önbellek kayıtsız algoritma teorisi, sınırlı bir "yerel" bellek ile maliyete dayalı bir harici "sonsuz" disk arasında bir denge / dengeye bakmaktadır. bu temelde "paralel" davranan iki kaynaktır ve aralarında muhtemelen bir çeşit optimal dengesizlik vardır.


2
k

TM modeli, TCS'nin temel modelidir ve karmaşıklık hiyerarşisi (zaman / boşluk, P / NP vb. gibi temel karmaşıklık sınıfları) arasında önbellek kayıtsız algoritmaları bulunan "köprü thms" ifadesi eşleştirilmeye devam etmektedir. harici bellek modelleri ve ilgili önbellek kayıtsız modeller temelde gerçek dünya performans özelliklerini modellemeye çalışıyor ve literatür şu ana kadar soru gibi daha büyük teorik soyutlamalarla ilgilenmiyor.
vzn
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.