NUMA, Düzensiz Bellek Erişimi veya Düzensiz Bellek Mimarisi “Non-Uniform Memory Access veya Non-Uniform Memory Architecture” (NUMA) çok işlemcililerde bellek erişim zamanının belleğin işlemci üzerindeki yerine bağlı olduğu bir bilgisayar belleği tasarımıdır. NUMA altında bir işlemci kendi yerel belleğine yerel olmayan bellekten daha hızlı bir şekilde ulaşır, diğer bir ifadeyle, bir başka işlemcinin yerel belleğinden veya işlemciler arasında paylaşılan bellekten daha hızlı erişir.
NUMA mimarileri (SMP) mimarilerinden başlayarak mantıksal bir ölçeklemeyi takip eder. Bu ürünlerin ticari gelişimi 1990’lı yıllarda Convex Computer (daha sonra HP oldu), SGI, Sequent ve Data General ile başladı. Bu şirketler tarafından geliştirilen teknikler çeşitli Unix benzeri işletim sisteminde olduğu gibi bir ölçüye kadar Windows NT ve Microsoft Windows’un ileri versiyonlarında görülmektedir.
Temel kavramlar
Modern CPU’lar bağlı oldukları ana bellekten önemli ölçüde daha hızlı çalışırlar. Yüksek hızlı hesaplamalar ve süper bilgisayarların ilk zamanlarında CPU genellikle bellekten daha yavaş çalışırdı. Bu durum her ikisinin performans çizgilerinin kesiştiği 1970'li yıllara kadar böyle devam etti. O tarihlerden bu yana CPU’lar her geçen gün daha da artan bir şekilde veriye doymuyor, bellek erişiminin tamamlanması için beklemek zorunda kalıyorlar. 1980'lerin ve 1990'ların süper bilgisayar tasarımları daha hızlı işlemciler yerine yüksek hızlı bellek erişimi sağlamak ve bilgisayarları büyük veri kümeleri üzerinde diğer sistemlerin erişemeyeceği hızlarda çalıştırmaya odaklanmıştı.
Modern bir bilgisayardan yüksek performans çıkartmanın anahtarı bellek erişim sayısını sınırlamaktan geçmektedir. Ticari işlemciler söz konusu olduğunda bunun anlamı gittikçe artan miktarda yüksek hızlı ön bellek belleği yerleştirmek ve “ön bellek kayıplarını” önleyebilmek için gittikçe artan karmaşıklıkta sofistike algoritmalar kullanmaktır. Fakat işletim sistemlerinin boyutlarındaki dramatik artış ve üzerlerinde koşan uygulamalar ön bellek işleme konusundaki bu gelişmeleri bir anlamda ikinci planda bırakmıştır. Çok işlemcili sistemler bu sorunu daha da beter hale getirmektedir. Bu yüzden artık bir sistemin birden fazla işlemcisi açlık çekmekte, çünkü her bir işlemci belleğe ayrı zamanlarda erişebilmektedir.
NUMA bu sorunu her bir işlemciye ayrı bir bellek atayarak çözmeye çalışmaktadır. Birden fazla işlemci aynı belleğe erişmeye çalıştığında oluşacak performans düşüşünden de kaçınılmasına çalışmaktadır. Yayılı veri ile ilgili sorunlar söz konusu olduğunda (sunucular ve benzeri uygulamalarda sık görülür), NUMA tek bir paylaşılan bellek üzerindeki performansı kabaca bir hesapla işlemci (veya ayrı bellek bankaları) sayısının bir faktörü kadar artırır.
Tabii ki bütün bunlar tek bir göreve indirgenerek sınırlandırılamaz, yani birden fazla işlemci aynı anda aynı verilere ihtiyaç duyuyor olabilir. NUMA sistemleri bu tür vakalarla başa çıkabilmek için verinin bankalar arasında hareketini sağlamak üzere ilave donanım ve yazılıma sahiptirler. Birden fazla işlemcinin aynı anda aynı belleğe erişmeye çalışması söz konusu bankalara bağlı işlemcilerin hızlarında düşüşlere neden olur. NUMA belirli herhangi bir zaman kesitinde sistemde koşan görevin tabiatına tam olarak uygun harekete yol açacağından sistemin tamamının hızında da bir artışa neden olacaktır.
Ön bellek uyumlu NUMA (ccNUMA)
Hemen hemen bütün CPU mimarileri bellek erişiminde referans lokallemesi kullanımı için ön bellek adı verilen, paylaşılmayan ve çok hızlı bir bellek parçası kullanır. Ön bellek eş evreliliği NUMA ile paylaşılan bellek üzerinde de devam ettirmeye çalışmak önemli ölçüde yük getirir.
Tasarlanması ve üretilmesi daha basit olmasına rağmen ön bellek uyumlu olmayan NUMA sistemleri, standart von Neuman mimarisi programlama modeli içerisinde programlanamayacak kadar karmaşık bir hale geldiler. Bunun sonucu olarak piyasada satılmakta olan bütün NUMA’lı bilgisayarlar ön bellek uyumunun sağlanabilmesi için özel amaçlı donanımlara sahiptir ve bu nedenle “ön bellek uyumlu NUMA” (cache-coherent NUMA) veya ccNUMA diye sınıflandırılırlar.
Bu durum tipik olarak, birden fazla ön bellek aynı bellek lokasyonunu depoladığında ön bellek kontrol birimleri arasında tutarlı bir bellek görüntüsünün sağlanabilmesi amacıyla işlemciler arası iletişim gerçekleştiğinde meydana gelir. Bu nedenle, birden fazla işlemci süratli çalışma ortamında aynı bellek alanına erişmeye çalıştığında ccNUMA kötü bir performans gösterir. NUMA’ya İşletim sistemi desteği sağlanarak bellek ve işlemcilerin NUMA’ya uygun olacak bir biçimde dağıtılması ve bu şekilde NUMA’ya uygun olmayacak erişimlerin engellenmesi, kilitlenmesi veya erişimlerin buna göre planlanması sağlanabilir.
Günümüzde mevcut ccNUMA sistemi uygulamaları AMD Opteron işlemci tabanlı çok işlemcili sistemlerdir. Daha önceki ccNUMA yaklaşımları Digital Equipment Corporation (DEC) şirketinin Alfa İşlemcisi EV7 tabanı üzerine kurulmuştu.
NUMA ile Grup hesaplamanın karşılaştırılması
NUMA çok sıkı çiftlenmiş bir çeşit grup hesaplama olarak görülebilir. NUMA donanımının mevcut olmadığı yerde bir grup mimarisine sanal bellek sayfalamanın ilavesi ile tamamen yazılım olarak NUMA yaratılması mümkündür. Buna rağmen yazılım tabanlı NUMA uygulamasında boğum noktaları arasındaki gecikme süresi muhtelif durumlarda donanım tabanlı NUMA uygulamalarından daha yüksektir.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
NUMA Duzensiz Bellek Erisimi veya Duzensiz Bellek Mimarisi Non Uniform Memory Access veya Non Uniform Memory Architecture NUMA cok islemcililerde bellek erisim zamaninin bellegin islemci uzerindeki yerine bagli oldugu bir bilgisayar bellegi tasarimidir NUMA altinda bir islemci kendi yerel bellegine yerel olmayan bellekten daha hizli bir sekilde ulasir diger bir ifadeyle bir baska islemcinin yerel belleginden veya islemciler arasinda paylasilan bellekten daha hizli erisir NUMA mimarileri SMP mimarilerinden baslayarak mantiksal bir olceklemeyi takip eder Bu urunlerin ticari gelisimi 1990 li yillarda Convex Computer daha sonra HP oldu SGI Sequent ve Data General ile basladi Bu sirketler tarafindan gelistirilen teknikler cesitli Unix benzeri isletim sisteminde oldugu gibi bir olcuye kadar Windows NT ve Microsoft Windows un ileri versiyonlarinda gorulmektedir Temel kavramlarModern CPU lar bagli olduklari ana bellekten onemli olcude daha hizli calisirlar Yuksek hizli hesaplamalar ve super bilgisayarlarin ilk zamanlarinda CPU genellikle bellekten daha yavas calisirdi Bu durum her ikisinin performans cizgilerinin kesistigi 1970 li yillara kadar boyle devam etti O tarihlerden bu yana CPU lar her gecen gun daha da artan bir sekilde veriye doymuyor bellek erisiminin tamamlanmasi icin beklemek zorunda kaliyorlar 1980 lerin ve 1990 larin super bilgisayar tasarimlari daha hizli islemciler yerine yuksek hizli bellek erisimi saglamak ve bilgisayarlari buyuk veri kumeleri uzerinde diger sistemlerin erisemeyecegi hizlarda calistirmaya odaklanmisti Modern bir bilgisayardan yuksek performans cikartmanin anahtari bellek erisim sayisini sinirlamaktan gecmektedir Ticari islemciler soz konusu oldugunda bunun anlami gittikce artan miktarda yuksek hizli on bellek bellegi yerlestirmek ve on bellek kayiplarini onleyebilmek icin gittikce artan karmasiklikta sofistike algoritmalar kullanmaktir Fakat isletim sistemlerinin boyutlarindaki dramatik artis ve uzerlerinde kosan uygulamalar on bellek isleme konusundaki bu gelismeleri bir anlamda ikinci planda birakmistir Cok islemcili sistemler bu sorunu daha da beter hale getirmektedir Bu yuzden artik bir sistemin birden fazla islemcisi aclik cekmekte cunku her bir islemci bellege ayri zamanlarda erisebilmektedir NUMA bu sorunu her bir islemciye ayri bir bellek atayarak cozmeye calismaktadir Birden fazla islemci ayni bellege erismeye calistiginda olusacak performans dususunden de kacinilmasina calismaktadir Yayili veri ile ilgili sorunlar soz konusu oldugunda sunucular ve benzeri uygulamalarda sik gorulur NUMA tek bir paylasilan bellek uzerindeki performansi kabaca bir hesapla islemci veya ayri bellek bankalari sayisinin bir faktoru kadar artirir Tabii ki butun bunlar tek bir goreve indirgenerek sinirlandirilamaz yani birden fazla islemci ayni anda ayni verilere ihtiyac duyuyor olabilir NUMA sistemleri bu tur vakalarla basa cikabilmek icin verinin bankalar arasinda hareketini saglamak uzere ilave donanim ve yazilima sahiptirler Birden fazla islemcinin ayni anda ayni bellege erismeye calismasi soz konusu bankalara bagli islemcilerin hizlarinda dususlere neden olur NUMA belirli herhangi bir zaman kesitinde sistemde kosan gorevin tabiatina tam olarak uygun harekete yol acacagindan sistemin tamaminin hizinda da bir artisa neden olacaktir On bellek uyumlu NUMA ccNUMA Hemen hemen butun CPU mimarileri bellek erisiminde referans lokallemesi kullanimi icin on bellek adi verilen paylasilmayan ve cok hizli bir bellek parcasi kullanir On bellek es evreliligi NUMA ile paylasilan bellek uzerinde de devam ettirmeye calismak onemli olcude yuk getirir Tasarlanmasi ve uretilmesi daha basit olmasina ragmen on bellek uyumlu olmayan NUMA sistemleri standart von Neuman mimarisi programlama modeli icerisinde programlanamayacak kadar karmasik bir hale geldiler Bunun sonucu olarak piyasada satilmakta olan butun NUMA li bilgisayarlar on bellek uyumunun saglanabilmesi icin ozel amacli donanimlara sahiptir ve bu nedenle on bellek uyumlu NUMA cache coherent NUMA veya ccNUMA diye siniflandirilirlar Bu durum tipik olarak birden fazla on bellek ayni bellek lokasyonunu depoladiginda on bellek kontrol birimleri arasinda tutarli bir bellek goruntusunun saglanabilmesi amaciyla islemciler arasi iletisim gerceklestiginde meydana gelir Bu nedenle birden fazla islemci suratli calisma ortaminda ayni bellek alanina erismeye calistiginda ccNUMA kotu bir performans gosterir NUMA ya Isletim sistemi destegi saglanarak bellek ve islemcilerin NUMA ya uygun olacak bir bicimde dagitilmasi ve bu sekilde NUMA ya uygun olmayacak erisimlerin engellenmesi kilitlenmesi veya erisimlerin buna gore planlanmasi saglanabilir Gunumuzde mevcut ccNUMA sistemi uygulamalari AMD Opteron islemci tabanli cok islemcili sistemlerdir Daha onceki ccNUMA yaklasimlari Digital Equipment Corporation DEC sirketinin Alfa Islemcisi EV7 tabani uzerine kurulmustu NUMA ile Grup hesaplamanin karsilastirilmasiNUMA cok siki ciftlenmis bir cesit grup hesaplama olarak gorulebilir NUMA donaniminin mevcut olmadigi yerde bir grup mimarisine sanal bellek sayfalamanin ilavesi ile tamamen yazilim olarak NUMA yaratilmasi mumkundur Buna ragmen yazilim tabanli NUMA uygulamasinda bogum noktalari arasindaki gecikme suresi muhtelif durumlarda donanim tabanli NUMA uygulamalarindan daha yuksektir