kuru taş - Dhrystone

Dhrystone , 1984 yılında Reinhold P. Weicker tarafından sistem ( tamsayı ) programlamayı temsil etmesi amaçlanan sentetik bir hesaplama kıyaslama programıdır . Dhrystone büyüdü ve genel işlemci ( CPU ) performansının temsilcisi oldu . "Dhrystone" adı , kayan nokta performansını vurgulayan Whetstone adlı farklı bir kıyaslama algoritmasında bir kelime oyunudur .

Dhrystone ile Weicker, FORTRAN , PL/1 , SAL, ALGOL 68 ve Pascal ile yazılmış programlar da dahil olmak üzere geniş bir yazılım yelpazesinden meta-veri topladı . Yordam çağrıları, işaretçi: Daha sonra çeşitli ortak yapılar bakımından bu programları karakterize indirections temsili bir karışımına eşleşecek şekilde Dhrystone kriter yazdı Bundan vb, atamalar. Dhrystone, Rick Richardson ("sürüm 1.1") tarafından geliştirilen Unix için C versiyonu ile Ada'da yayınlandı ve popülaritesine büyük katkı sağladı.

Dhrystone ve Whetstone

Dhrystone karşılaştırma ölçütü hiçbir kayan nokta işlemi içermez , bu nedenle ad, kayan nokta işlemleri için o zamanlar popüler olan Whetstone ölçütünde bir kelime oyunudur . Karşılaştırmadan elde edilen çıktı, saniyedeki Dhrystone sayısıdır (ana kod döngüsünün saniyedeki yineleme sayısı).

Hem Whetstone hem de Dhrystone, bazı yaygın program setlerinin işlemci kullanımını istatistiksel olarak taklit etmek için dikkatle tasarlanmış basit programlardır, yani sentetik karşılaştırma ölçütleridir. 1972'de geliştirilen Whetstone, başlangıçta 1970'teki ölçümlere dayanan tipik Algol 60 programlarını taklit etmeye çalıştı, ancak sonunda 1960'larda hesaplamanın yüksek sayısal yönelimini yansıtan Fortran versiyonunda en popüler hale geldi.

Dhrystone tarafından ele alınan sorunlar

Yeni bilgisayarların genel amaçlı ("tamsayı") performansının bir göstergesi olarak Dhrystone'un nihai önemi, onu ticari derleyici yazarları için bir hedef haline getirdi. Çeşitli modern derleyici statik kod analiz teknikleri ( ölü kodun ortadan kaldırılması gibi : örneğin, işlemciyi kullanan ancak kullanılmayan veya çıktı almayan dahili sonuçlar üreten kod) sentetik kıyaslamaların kullanımını ve tasarımını zorlaştırır. Weicker ve Richardson tarafından Mart 1988'de yayınlanan kıyaslamanın 2.0 sürümü, bir dizi derleyici tekniğini bozmayı amaçlayan bir dizi değişikliğe sahipti. Yine de, temel ölçütü değiştirmemek için özenle hazırlanmıştı. Derleyicileri engellemeye yönelik bu çaba yalnızca kısmen başarılı oldu. Aynı yılın Mayıs ayında yayınlanan Dhrystone 2.1, bazı küçük değişikliklere sahipti ve Temmuz 2010 itibariyle Dhrystone'un mevcut tanımı olmaya devam ediyor.

Derleyici optimizasyonu ile ilgili sorunlar dışında, Dhrystone ile ilgili çeşitli diğer konulara değinilmiştir. Küçük kod boyutu ve küçük veri seti boyutu da dahil olmak üzere bunların çoğu, 1984'te yayınlandığı sırada anlaşılmıştı. Daha incelikli olanı, büyük ölçüde dille ilgili olan dize işlemlerinin hafif aşırı temsilidir: hem Ada hem de Pascal, dizeleri dilde normal değişkenler olarak kabul ederken, C bunu yapmaz, bu nedenle referans karşılaştırmalarında basit değişken ataması olan şey, C kitaplığında arabellek kopyalama işlemleri haline geldi. Diğer bir sorun da, raporlanan puanın, hangi derleyicinin kullanıldığı ve hangi optimizasyonların yapıldığı gibi sistemleri karşılaştırırken kritik olan bilgileri içermemesidir.

Dhrystone, basit bir kıyaslama olarak dikkate değer ölçüde esnek olmaya devam ediyor, ancak gerçek performansı belirlemede devam eden değeri sorgulanabilir. Kullanımı kolaydır, iyi belgelenmiştir, tamamen bağımsızdır, iyi anlaşılır ve hemen hemen her sistemde çalışacak şekilde yapılabilir. Özellikle, yakın zamanda geliştirilen EEMBC kıyaslama paketi, CoreMark bağımsız kıyaslama, HINT, Stream ve hatta Bytemark'ın yanı sıra bellek için daha spesifik kıyaslamaların yaygın olarak alıntılanmasına ve kullanılmasına rağmen, gömülü bilgi işlem dünyasında geniş bir kullanımda kalmıştır. alt sistem (Önbellek), TCP/IP (TTCP) ve diğerleri.

Sonuçlar

Dhrystone, MIPS'den (saniyede milyon talimat) daha anlamlı bir sonucu temsil edebilir, çünkü farklı talimat setleri arasındaki talimat sayısı karşılaştırmaları (örneğin RISC ve CISC ) basit karşılaştırmaları karıştırabilir. Örneğin, aynı üst düzey görev, bir RISC makinesinde çok daha fazla talimat gerektirebilir, ancak tek bir CISC komutundan daha hızlı yürütülebilir. Böylece, Dhrystone puanı yalnızca saniye başına program yineleme tamamlama sayısını sayar ve bireysel makinelerin bu hesaplamayı makineye özel bir şekilde gerçekleştirmesine olanak tanır. Dhrystone kriter bir başka temsilidir DMIPS (Dhrystone MIPS Dhrystone mı 1757 ile bölündüğünde elde edilen) (saniye elde başına Dhrystones sayısı VAX 11/780 , normal olarak bir 1 MIPS makinesi).

Sonuçları temsil etmenin başka bir yolu, farklı saat hızlarında çalışan CPU'ların daha kolay karşılaştırılmasını sağlamak için DMIPS sonucunun CPU frekansına bölündüğü DMIPS/MHz'dir .

eksiklikler

Dhrystone'u bir ölçüt olarak kullanmanın sakıncaları vardır:

  • Genellikle modern gerçek hayat programlarını temsil etmeyen olağandışı bir kod içerir.
  • Derleyici optimizasyonlarına duyarlıdır. Örneğin, dizi kopyalama performansını ölçmek için çok sayıda dizi kopyalama yapar. Bununla birlikte, Dhrystone'daki diziler bilinen sabit uzunluktadır ve başlangıçları, gerçek programlarda genellikle bulunmayan iki özellik olan doğal sınırlar üzerinde hizalanmıştır. Bu nedenle, bir optimize edici bir dize kopyasını herhangi bir döngü olmadan bir dizi sözcük hareketiyle değiştirebilir ve bu çok daha hızlı olacaktır. Sonuç olarak bu optimizasyon, sistem performansını bazen %30'dan fazla abartır.
  • Dhrystone'un küçük kod boyutu, modern bir CPU'nun talimat önbelleğine sığabilir , böylece talimat getirme performansı sıkı bir şekilde test edilmez. Benzer şekilde, Dhrystone da veri önbelleğine tamamen sığabilir , böylece veri önbelleği kaçırma performansını kullanmaz. Önbelleğe sığdırma sorununa karşı koymak için, SPECint kıyaslaması 1988'de, o dönemin L1 veya L2 önbelleklerine sığamayan çok daha büyük programlardan (bir derleyici dahil) (başlangıçta 8) oluşan bir takım içerecek şekilde oluşturuldu.

Ayrıca bakınız

Referanslar

Dış bağlantılar