Denektaşları

Denektaşı( sınama programı); Bilgisayar mimarisinde bir bileşenin başarımını, o bileşen üzerinde çeşitli sınamalar yaparak ölçmek için çalıştırılan bir veya bir grup bilgisayar programıdır. Denektaşları ile bilgisayarın bir donanımının karakteristik bir özelliğinin başarımının belirlenmesinde de kullanılır. Örneğin Merkezi İşlem Biriminin (MİB[CPU]) kayan nokta ( floating point ) işlemlerindeki başarımını ölçmek için kullanılır. Ayrıca bazı durumlarda bu sınama yazılımların başarımı için de kullanılabilir. Yazılımlar için kullanılan denektaşlarına örnek olarak derleyiciler ya da veritabanı yönetim sistemlerinin başarımlarını ölçen programlar verilebilir.Denektaşları farklı yonga veya sistem mimarilerinde çalışan alt sistemlerin başarımını karşılaştırmak için yöntemler geliştirmişlerdir. Denektaşları veri tabanı yönetim programlarının değişken durumlardaki tepkilerinin anlaşılmasında yardımcı olurlar. Farklı durumlar için farklı senaryolar üretilerek de başarım ölçülebilir. Örneğin kilitlenme işlemleri, yardımcı programların başarımı, farklı veri yükleme yöntemleri, eklenen yeni kullanıcılarla program hızının değişiminin karakteristiğinin belirlenmesi ve programın yeni sürümünün çıkmasıyla gelen uygulamaların başarımının belirlenmesi için farklı senaryolar üretilerek denektaşlarının farklı özellikleri ya da farklı denektaşları kullanılabilir.Bilgisayar mimarisinde bilgisayarların başarımlarını sadece özelliklerine bakarak belirlemek imkânsızdır. Bu nedenle, farklı testler geliştirilmiştir. Bu testler farklı sistemlerde çalıştırılarak elde edilen sonuçlar farklı mimarilerin karşılaştırılmasında kullanılmaktadır. Örneğin Intel Pentium 4 işlemcilerin saat sıklığı AMD Athlon XP işlemcilerden daha fazla olmasına karşın bu daha yüksek bir başarıma sahip oldukları anlamına gelmemektedir. Denektaşları testlerinde iki işlemcinin de benzer başarım gösterdiği görülmüştür.Denektaşları belirli bir sisteme ya da bileşene, belli bir tür iş yükü yükleyecek şekilde tasarlanırlar. “Yapay (Synthetic)” denektaşları bir bileşenin üzerine bu iş yükünü yüklemek için yazılan özel programlardır. “Uygulama(Application) tür denektaşları sistem üzerinde gerçek programlar çalıştırırlar. “Uygulama” türündeki denektaşları bir sistemin başarımı ölçümünde etkiliyken, “Yapay” denektaşları ise sistem bileşenlerinin ( sabit tekerlek ( sabit disk ) , ağ aygıtları gibi ) tek başlarına başarımlarının ölçümünde etkilidirler.Denektaşları özellikle yarı iletken mikroişlemcilerin tasarımında önemlidir. Denektaşları sayesinde tasarımcılar, mikro mimari düzeyinde aldıkları kararları ölçüp dengelerler.Bilgisayar tasarımcılarının tasarladıkları sistemlerin başarımlarını ölçmek için denektaşlarını kullanması oldukça uzun bir geçmişe sahiptir. Ancak önceleri bu denektaşları testlerinin sonuçları gerçek kullanımla elde edilecek başarımdan farklıydı. 1980'lerde bazı derleyiciler bilinen kayan nokta işlemlerinde kullanılan özel bir matematik işlemini belirleyip daha hızlı olan matematiksel eşitlik işlemleriyle değiştiriyorlardı. Bu değişim 1990'lı yılların ortasına kadar denektaşları dışında kullanışlıydı. Ancak bu kullanışlılık RISC ve VLIW mimarilerinin tasarımcıları derleyici teknolojisinin başarımla ilgisini fark etmelerine kadar sürdü. Günümüzde denektaşları; derleyici şirketleri tarafından sadece kendi denektaşı sonuçlarını yükseltmek için değil, aynı zamanda tasarladıkları uygulamaların başarımlarını artırmak için de kullanılmaktadır.Üreticiler çoğunlukla sadece denektaşlarını ya da denektaşlarının belirli yönlerini kullanarak ürünlerini en iyi şekilde tanıtmaya çalışırlar. Ayrıca bazıları bu denektaşlarının önemliklerini değiştirerek ürünlerini olabildiğince iyi şekilde göstermeye çalışırlar. Bu eylemlerin tamamına İngilizce bench-marketing adı verilir.Denektaşları kullanılarak yapılan kıyaslamalar kolay değildir. Beklenen ve kullanışlı sonuçlar elde edebilmek için tekrarlanan döngüler içerirler. Ayrıca denektaşlarının yorumlanması da oldukça zordur. Aşağıda genel olarak karşılaşılan bir takım zorluklar listelenmiştir:Sağlayıcılar ürünlerini endüstriyel standartlı denektaşlarına göre ayarlamaları gerekmektedir. Norton SysInfo (SI) esas olarak çoklu işlemlerin hızlarına yöneliminden dolayı bu ayarlama biraz daha kolay yapılmaktadır. Bu tür sonuçların yorumlanmasında aşırı dikkat edilmesi gerekmektedir.Denektaşları genellikle bileşenlerinin özelliklerinin ham başarısından başka şeylere itibar etmezler. Bu özelliklere örnek olarak güvenlik, kullanılabilirlik, güvenilirlik, uygulamaların çalışmasında bütünlük, yararlılık, ölçeklenirlik gibi özellikler gösterilebilir. Bu özelliklerin hepsi iş dünyasında hepsi önemlidir ve bunlar arasında denge kurulmaya çalışılmaktadır. TPC (Transaction Processing Performance Council) denektaşı şartnamesine göre bu işlem ACID özellik testi, veritabanı ölçeklenirlik kuralları ve servis seviye gereksinimi gibi işlemlerin yapılmasıyla belirlenir.Genellikle denektaşları TCO yu(toplam sahiplik masrafı) ölçmezler. TPC denektaşı şartnamesine göre TCO’nun basit şekilde formüle edilmesi için ham başarım ölçüsünün belirlenmesi gerekir. Bunun için de eder/başarım ölçüsünün belirlenmesi gerekir.Denektaşları karışık iş yüklerinin başarımını çoklu işlemleri tam, iş bağlamlı çoklu kısım/çoklu uygulama prensibiyle çalıştırarak ölçer. Ancak elde edilen sonuçlar nadiren gerçek dünyadaki başarımlarına eşdeğerdir.Sağlayıcı denektaşlarının sonucunda bulunan geliştirme, test, ya da yıkım onarımı( disaster recovery ) işlem kapasitesi gibi gereksinimlerle ilgilenmezler. Sağlayıcılar özellikle ilk kazanım ederini olabildiğince az göstermek için gerekli en düşük ürün kapasitesini belirtmek isterler.Denektaşları üretilmiş farklı sunucular ve aşırı hassas ağ ilingelerine (topolojilerine) uyum sağlamakta sorun yaşamaktadırlar. Izgara hesaplamanın( grid computing ) ortaya çıkması denektaşı sınamasının yapılmasını kısmen zorlaştırmıştır.Kullanıcıların denektaşlarının önerdiği başarımlarda farklı şeyler anlaması olasıdır. Denektaşları ufak sapmalarndan çok ortalama başarımlara önem vermelidir. Yani kullanıcı bakış açısından çok bilimsel bakış açısı göz önüne alınmalıdır.Denektaşı kurumları çoğunlukla basit bilimsel metotları izlemezler. Bu da beraberinde küçük örnekleme boyutu, değişken kontrolünde zorlaşma, sonuçların tekrarlanmasında kısıtlama gibi sonuçların ortaya çıkmasına sebep olmaktadır.https://web.archive.org/web/20080205031133/http://www.donutey.com/hardwaretesting.phpBilgisayarın donanım özelliklerini ( yazmaç sayısı, ön bellek boyutu, bellek gecikme süresi vb.) otomatik olarak belirlenir.Sonuçları KWIPS (saniye başına kilo whetstone komutları) şeklinde belirtilir. Bu tür sınama boru hattı (bilgisayar) içeren bilgisayarlar için kullanıma uygun değildir.Paralel denektaşları: çoklu işlemci içeren makinelar ya da çoklu makine içeren sistemlerde kullanılır.miniBench: C++ dilinde yazılmış kapsamlı bir komut satırı denektaşıdır. miniBench 90 farklı sınama içermektedir. miniBench OpenSourceMark’ın bir koludur.OpenSourceMark: Delphi dilinde yazılan güçlü, kapsamlı bir grup açık kaynaklı sistem denektaşları ve altyapı hizmetleridir. OpenSourceMark kullanımı kolay olan bir grafiksel kullanıcı arayüzüne ve esnek bir sonuç gösterim yapısına sahiptir.GliBench: MİB ve sabit tekerlek (sabit disk) başarımını ölçmek için kullanılan grafiksel kullanıcı arayüzü tabanlı denektaşlarıdır.LMbench: İşletim sistemi ve bir takım MİB/ Bellek değiştirgeleri için geliştirilmiş bir takım basit, taşınabilir denektaşlarıdır.Calibrator: C programlama dilinde yazılmış bir küçük ön bellek ve Adres Dönüştürme Önbelleği (ADÖ)( TLB(Translation Lookaside Buffer) ) ayarlama aracıdır. Sonuçlar önbellek boyutu, bulma/bulamama gecikmesi, ADÖ girdileri, sayfa boyutu, bulamama cezası, bellek erişim gecikmesi gibi bilgileri içerir. gnuplot scriptleri ayrıca sonuçları grafiksel olarak da gösterirler.SPLASH: Stanford Parallel Applications for Shared Memory(Paylaşımlı Bellekler için Stanford Paralel Uygulamaları) (SPLASH)Iozone file I/O: Bir dosya sistemi denektaşıdır. Birçok farklı türde dosya işlemini üretir ve ölçer.STREAM: Basit vektör çekirdeklerinin hesaplama hızına bağlı olarak sürdürülebilir bellek bant genişliğini ölçmek için kullanılır.OpenSourceMark: Delphi dilinde yazılan güçlü, kapsamlı bir grup açık kaynaklı sistem denektaşları ve altyapı hizmetleridir. OpenSourceMark kullanımı kolay olan bir arayüze ve esnek bir sonuç gösterim yapısına sahiptir.miniBench: C++ dilinde yazılmış kapsamlı bir komut satırı denektaşıdır. miniBench 90 farklı test içermektedir. miniBench OpenSourceMark’ın bir koludur.Aşağıdaki denektaşları [ http://www.eembc.org/  EEMBC (Embedded Microprocessor Benchmark Consortium)] tarafından özellikle gömülü sistemler ve tüketici araçları için tasarlanmıştır.Jim Gray (Editor), The Benchmark Handbook for Database and Transaction Systems (2nd Edition), Morgan Kaufmann, 1993, ISBN 1-55860-292-5Database Benchmarking Practical Methods for Oracle & SQL Server Dr. Bert Scalzo, Kevin Kline, Claudia Fernandez, Donald K. Burleson, Mike Ault, 2007, ISBN 0-9776715-3-4