Anasayfa » Daha hızlı bilgisayar programları için yeni bir veri sıkıştırma tekniği

Makaleyi Paylaş

Haberler

Daha hızlı bilgisayar programları için yeni bir veri sıkıştırma tekniği



MIT Üniversitesi (Massachusetts Teknoloji Enstitüsü)araştırmacıları tarafından geliştirilen, ilk kez bellekteki “nesneleri” sıkıştırarak bilgisayarların kullandığı daha fazla belleği serbest bırakarak daha hızlı çalışmalarını ve aynı anda daha fazla görevi yerine getirmesine olanak sağlayan yeni bir teknik. Kredi: Christine Daniloff, MIT

MIT araştırmacıları tarafından geliştirilen, bilgisayarlar ve mobil aygıtlar tarafından kullanılan daha fazla belleği boşaltarak daha hızlı çalıştırmalarına ve eşzamanlı olarak daha fazla iş yapmalarına olanak sağlamak için donanımsal veri sıkıştırmasını tekrar gözden geçirilen yeni bir teknik.

Veri sıkıştırma , depolama kapasitesini boşaltmak için bilgi işlem hızlarını artırmak ve diğer avantajları sağlamak adına gereksiz verilerden yararlanır. Mevcut bilgisayar sistemlerinde, ana belleğe erişim güncel hesaplamayla karşılaştırılırsa çok masraflıdır. Bu nedenle, bellekte veri sıkıştırmanın kullanılması performansın artmasına yardımcı olur, çünkü programların ana bellekten alması gereken veri sıklığını ve miktarını azaltır.

Modern bilgisayarlardaki bellek, üzerinde geleneksel sıkıştırma tekniklerinin çalışması gereken sabit boyutlu parçalardaki verileri yönetir ve aktarır. Ancak, Yazılım verilerini sabit boyutlu parçalarda doğal olarak saklamaz. Bunun yerine, çeşitli veri türlerini içeren ve değişken boyutlara sahip “nesneler” veri yapılarını kullanır. Bu nedenle, geleneksel donanım sıkıştırma yöntemlerindeki nesnelerin işleyişi çok sağlıklı olmaz.

Bu hafta ACM Uluslararası Program Dilleri ve İşletim Sistemlerini Programlamak için Mimari Destek(Architectural Support) Konferansında sunulan bir makalede MIT araştırmacıları, nesneleri bellek hiyerarşisi boyunca sıkıştırmaya yönelik ilk yaklaşımı açıklası. Bu, performansı ve verimliliği artırırken hafıza kullanımını azaltır.

Sponsor

Programcılar, kodlarını değiştirmeden nesnelerde veri depolayan ve yöneten herhangi bir modern programlama dilinde (Java, Python ve Go gibi) programlama yaparken bu teknikten yararlanabilirler. Böylece kullanıcılar çok daha hızlı çalışabilen ya da daha fazla uygulamayı aynı hızda çalıştırabilen bilgisayarları göreceklerdir. Çünkü her uygulama daha az bellek kullandığından, daha hızlı çalışır, böylece bir cihaz, ayrılan hafızasında daha fazla uygulamayı destekleyebilir.

Bu metot kullanılarak yapılan denemelerde, Java sanal makinesi, geleneksel önbellek tabanlı yönteme göre iki kat daha fazla veri sıkıştırarak daha hızlı çalıştığı gözlenmiştir.

 “Bu fikir, modern programlama dillerinin veri yönetmesini baz aldığından önbellekleme yöntemli veri sıkıştırması yerine  yeni nesne tabanlı sıkıştırmaya dayanan hafıza hiyerarşisini ortaya çıkarıyor” diyor  ilk savunucusu olan CSAIL’dan (XXX üniv., Bilgisayar Bilimleri ve Yapay Zeka Laboratuvarları) Po-An Tsai

Bilgisayar ve Elektrik mühendisliği profesörü ve CSAIL’de araştırmacı olan yazar Daniel Sanchez, “Tüm bilgisayar sistemleri bundan faydalanabilir” diyor. Ve ekliyor Belleğin bant genişliği dolayısıyla dar boğaz(bottleneck)oluşması sonucu tıkanması sorunu çözüldüğünden programlar daha hızlı hale geliyor”.

 Araştırmacılar, nesnelerini doğrudan manipüle etmek için bellek mimarisini yeniden yapılandıran önceki çalışmaları üzerine inşa ettiler. Geleneksel mimariler, verileri “önbellek” olarak adlandırılan, giderek daha büyük ve daha yavaş hafız hiyerarşisinde bloklar halinde depolar. Son zamanlarda erişilen bloklar daha küçük, daha hızlı önbelleklere yükselirken, eski bloklar daha yavaş ve daha büyük önbelleklere aktarılır ve sonunda ana hafızaya geri döner. Bu organizasyon esnek olsa da zahmetlidir: Belleğe erişmek için, her önbellek, içerikleri arasında adres aramak zorundadır.

Sanchez “Modern programlama dillerinde doğal veri yönetim birimi nesneler olduğu için, neden sadece nesnelerle ilgilenen bir hafıza hiyerarşisi yapılmıyor”  diyor.

Geçtiğimiz Ekimim ayında yayınlanan bir makalede, Tüm nesneleri sıkı paketlenmiş şekilde, hiyerarşik seviyelerde veya “pad” lerde saklayan, Hotpad denilen bir sistemin detaylarını anlattılar Bu seviyeler (leveller) çip üzerinde, karmaşık araştırma gerektirmeyen,  baştan sona verimli, doğrudan adreslenmiş hafıza birimlerini baz alır.

Programlar daha sonra doğrudan “ped”lerin hiyerarşisi boyunca tüm nesnelerin konumuna referansta bulunur. Hafızada yer ayrılan ve yeni referans edilen nesneler daha hızlı çağrılabilir daha hızlı kalır. Daha hızlı seviye dolduğunda, son zamanlarda başvurulan nesneleri tutan, ancak eski nesneleri daha yavaş seviyelere düşüren ve artık yer açmak için artık kullanışlı olmayan nesneleri geri dönüştüren bir “tahliye” işlemi gerçekleştirir. İşaretçiler daha sonra her nesnede, taşınan tüm nesnelerin yeni konumlarına işaret edecek şekilde güncellenir. Bu şekilde, programlar nesnelere önbellek düzeylerinde arama yapmaktan çok daha kolayca erişebilirler.

Araştırmacılar bu yeni tezleri için nesne sıkıştırma mimarisini (HotPad) kullanan “Zippads” adı verilen yeni bir teknik geliştirdiler. Nesneler ilk önce daha hızlı bir şekilde başladığında, sıkıştırılmamışlardır. Ancak daha yavaş seviyelere aktarılırken hepsi sıkıştırılır. Tüm nesnelerdeki seviyelerdeki işaretçiler daha sonra bu sıkıştırılmış nesnelere işaret edecek şekilde güncellenir, bu da daha hızlı seviyelere geri çağırmayı kolaylaştırır ve önceki tekniklerden daha Araştırmacılar bu yeni tezleri için nesne sıkıştırma mimarisini (HotPad) kullanan “Zippads” adı verilen yeni bir teknik geliştirdiler bir şekilde saklanabilir.

Sıkıştırma algoritması daha sonra nesneler arasında fazlalığı verimli bir şekilde kullanır Bu metod sabit büyüklükteki (fixit-size) hafıza bloklarındaki fazlalıkları bularak önceki tekniklere göre daha fazla sıkıştırma fırsatı sunar.. Algoritma önce birkaç temsili nesneyi “temel” nesneler olarak seçer. Ardından, yeni nesnelerde, yalnızca bu nesnelerle temsili temel nesneler arasındaki farklı verileri depolar.

Carnegie Mellon Üniversitesi’nde elektrik ve bilgisayar mühendisliği profesörü olan Brandon Lucia, “Nesneye yönelik programlama gibi soyutlamalar, programlamayı basitleştirmek için bir sisteme eklenir, ancak genellikle sistemin performansında veya verimliliğinde bir yük getirir” diyerek belleği daha iyi sıkıştırmak için nesneye yönelimli programlama dillerinin özelliklerinden yararlanma çalışmasını övdü. “Bu çalışma ile ilgili ilginç olan şey, mevcut nesne soyutlamasını bellek sıkıştırma işlemini daha etkili hale getirmenin bir yolu olarak kullanması, bunun da sistemi yeni bilgisayar mimarisi özellikleriyle daha hızlı ve daha verimli hale getirmesidir.”

KAYNAK:
https://techxplore.com/news/2019-04-data-compression-technique-faster.html

Makaleyi Paylaş

Cevap bırakın