| Standard Performance Evaluation Corporation | |
|---|---|
| Kuruluş | 1988 |
| Tür | Kâr amacı gütmeyen kuruluş |
| Merkez | Gainesville, Virginia, ABD |
| Üyeler | 120'den fazla donanım ve yazılım üreticisi, eğitim kurumu ve araştırma kuruluşu |
| Resmî site | spec.org |
Standart Performans Değerlendirme Kurumu (İngilizce: Standard Performance Evaluation Corporation, SPEC), bilgisayarların başarımını ölçen tarafsız ve karşılaştırılabilir sınama programları üreten, kâr amacı gütmeyen bir kuruluştur. 1988'de bir grup iş istasyonu üreticisi tarafından kurulmuştur; bugün 120'den fazla donanım ve yazılım üreticisi, eğitim kurumu ve araştırma kuruluşu üyesidir. Ölçüm sonuçları kurumun kendi sitesinde yayımlanır ve gayriresmî olarak SPECmark diye anılır.
SPEC'in sınama programları yapay iş yükleri değil, gerçek uygulamalardan türetilir. Ölçüm yapacak kuruluş kaynak kodu değiştirmeden derler ve çalıştırır; sonuç, işlemcinin yanında bellek alt sisteminin ve derleyicinin başarımını da yansıtır. Bu düzen üreticileri derleyicilerini iyileştirmeye de yöneltir.
Saat hızı ya da saniye başına buyruk sayısı gibi tek bir sayıya dayanan ölçüler, farklı buyruk kümesi mimarilerinde bir buyruğun yaptığı iş değiştiği için sistemleri karşılaştırmakta yetersiz kalır. Gerçek uygulamalardan türetilmiş sınama programı paketleri bu eksikliği gidermek üzere geliştirilmiştir.
SPEC CPU paketi işlemci ve sistem başarımının değerlendirilmesinde yaygın olarak kullanılır; mimari benzetimliklerinde de iş yükü olarak sıkça tercih edilir.
SPEC'in ürünleri kullanım alanlarına göre gruplanır. Kullanımda olan başlıca paketler şunlardır:
Eskiyen paketler kullanımdan kaldırılır ve yalnız geçmiş sonuçların arşivi olarak erişilebilir kalır. SPEC CPU2006, SPEC CPU2000, SPECweb2005, SPECjvm98, SPECjbb2005, SPECmail 2001 ve SPEC JMS 2007 bu durumdadır.
SPEC CPU, kurumun en çok bilinen paketidir ve otuz yedi yıldır sürdürülmektedir. Paket, sistemin işlemcisini, bellek alt sistemini ve derleyicisini birlikte zorlayan hesaplama yoğun programlardan oluşur.
2006 sürümünün yerini 2017'de SPEC CPU2017 aldı. SPEC CPU 2026 ise 5 Mayıs 2026'da yayımlandı. Paketin hazırlanmasında yetmişten fazla aday uygulama değerlendirilmiş, bunlardan otuz sekizi seçilerek elli iki sınama programı oluşturulmuştur.
SPEC CPU 2026'daki elli iki program dört alt pakete ayrılır: SPECrate 2026 Integer, SPECrate 2026 Floating Point, SPECspeed 2026 Integer ve SPECspeed 2026 Floating Point. SPECrate ölçütleri aynı programın birden çok kopyasını koşut çalıştırarak sistemin işlem hacmini ölçer; SPECspeed ölçütleri ise tek bir işin ne kadar sürede bittiğine bakar. Her ölçütün base ve peak olmak üzere iki biçimi vardır: base bütün programların aynı derleyici seçenekleriyle derlenmesini şart koşarken peak program başına ayrı ayar yapılmasına izin verir.
Sınama programları C18, Fortran-2018 ve C++2017 dil standartlarına göre yazılmıştır. SPECspeed paketindeki yirmi altı programın yirmi ikisinde koşutluk kullanılabilir; bunun on üçünde OpenMP, altısında C++ std::thread, birinde Fortran do concurrent yapısı, iki derleyici programında ise süreç düzeyinde çoklu görev kullanılır.
Paketteki programlar derleyicilerden bilimsel benzetime, veritabanından yapay öğrenmeye uzanır. Aralarında GCC ve LLVM derleyicileri, SQLite, Python yorumlayıcısı, satranç ve othello oynayan yapay zekâ programları, akışkanlar dinamiği ve iklim benzetimleri, sinir ağı benzetimi ve makine çevirisi bulunur.
Pakette bilgisayar mimarisi alanının kendi araçları da yer alır. Alanın başlıca benzetimliği olan gem5, 735.gem5_r ve 835.gem5_s adlarıyla tam sayı paketlerine alınmıştır; SPEC sürümü RISC-V mimarisini benzetir. Yonga tasarımında kullanılan alan programlanabilir kapı dizisi yerleştirme aracı VPR ile mantık sentezi aracı ABC de paketin programları arasındadır.
Aşağıdaki çizelgeler paketin tamamını gösterir. SPECrate ve SPECspeed sütunlarındaki adlar aynı uygulamanın iki ayrı ayarını belirtir; bir uygulama yalnız birinde yer alabilir. Satır sayısı yorum ve boş satırları da içerir.
| SPECrate | SPECspeed | Dil | Bin satır | Uygulama alanı |
|---|---|---|---|---|
| — | 801.xz_s | C++, C | 53 | Veri sıkıştırma |
| 706.stockfish_r | — | C++ | 13 | Oyun ve yapay zekâ (satranç): alfa-beta ağaç araması ve sinir ağı |
| 707.ntest_r | 807.ntest_s | C++ | 16 | Oyun ve yapay zekâ (othello) |
| 708.sqlite_r | — | C | 245 | SQL derleyicisi, yorumlayıcısı ve veritabanı |
| 710.omnetpp_r | — | C++, C | 224 | Ayrık olay modelleme: ağ ve kuyruk benzetimleri |
| 714.cpython_r | — | C | 747 | Python yorumlayıcısı |
| — | 817.flac_s | C++, C | 57 | Kayıpsız ses sıkıştırma |
| 721.gcc_r | 821.gcc_s | C++, C | 3.833 | C dili için eniyileyici derleyici |
| 723.llvm_r | 823.llvm_s | C++, C | 3.167 | C ve C++ için eniyileyici derleyici |
| 727.cppcheck_r | 827.cppcheck_s | C++ | 287 | C ve C++ kodunun durağan çözümlenmesi |
| 729.abc_r | 829.abc_s | C++, C | 989 | Ardışıl mantık sentezi ve biçimsel doğrulama |
| 734.vpr_r | 834.vpr_s | C++, C | 210 | FPGA tasarımında yerleştirme ve bağlantı yolu bulma |
| 735.gem5_r | 835.gem5_s | C++, C | 971 | Bilgisayar mimarisi benzetimi |
| — | 838.diamond_s | C++, C | 239 | Biyoenformatik: metagenomik ve protein dizileme |
| — | 846.minizinc_s | C++, C | 372 | Kısıt programlama |
| 750.sealcrypto_r | — | C++, C | 39 | Güvenlik ve gizlilik: homomorfik şifreli sorgu |
| 753.ns3_r | 853.ns3_s | C++ | 942 | İnternet sistemleri için ayrık olay ağ benzetimliği |
| — | 854.graph500_s | C | 10 | Çizge çözümlemesi |
| 777.zstd_r | — | C | 58 | Veri sıkıştırma ve açma |
| SPECrate | SPECspeed | Dil | Bin satır | Uygulama alanı |
|---|---|---|---|---|
| — | 800.pot3d_s | Fortran | 12 | Güneş fiziği: sonlu farklar yöntemi, eşlenik gradyan çözücü |
| — | 803.sph_exa_s | C++ | 3 | Astrofizik: parçacık tabanlı akışkan benzetimi (SPH) |
| 709.cactus_r | 809.cactus_s | C++, C | 187 | Astrofizik: görelilik, sonlu farklar yöntemi, zaman integrasyonu |
| — | 811.tealeaf_s | C | 5 | Yüksek enerji fiziği |
| — | 816.nab_s | C | 26 | Moleküler modelleme |
| — | 820.cloverleaf_s | Fortran | 10 | Açık hidrodinamik |
| 722.palm_r | 822.palm_s | Fortran | 298 | Atmosfer bilimi |
| 731.astcenc_r | — | C++ | 43 | Görüntü sıkıştırma (ASTC doku sıkıştırması) |
| 736.ocio_r | — | C++ | 183 | Görsel efekt ve canlandırmada renk yönetimi |
| 737.gmsh_r | — | C++, C | 721 | Sonlu eleman ağı üretimi |
| 748.flightdm_r | — | C++ | 100 | Havacılıkta uçuş dinamiği modelleri |
| 749.fotonik3d_r | 849.fotonik3d_s | Fortran | 15 | Hesaplamalı elektromanyetik |
| — | 857.namd_s | C++ | 9 | Klasik moleküler dinamik benzetimi |
| 765.roms_r | 865.roms_s | Fortran | 585 | Bölgesel okyanus modellemesi |
| 766.femflow_r | — | C++ | 2.505 | Akışkanlar dinamiği: yüksek dereceli sonlu eleman yöntemi |
| 767.nest_r | 867.nest_s | C++ | 208 | Sinir bilimi: ani darbeli sinir ağı modelleri benzetimliği |
| 772.marian_r | 872.marian_s | C++ | 219 | Yazılı dil için sinir ağı tabanlı makine çevirisi |
| 782.lbm_r | — | C | 1 | Hesaplamalı akışkanlar dinamiği, Lattice Boltzmann yöntemi |
| — | 881.neutron_s | C | 4 | Nükleer reaktörlerde nötron taşınımının fizik benzetimi |
SPEC'in paketleri ücretlidir ve fiyat pakete göre değişir. SPEC CPU 2026 için ücret yeni müşterilerde 3.000 ABD dolarıdır; kâr amacı gütmeyen kuruluşlar için 750 dolara iner. Akredite eğitim kurumlarına ise ücretsiz akademik lisans verilir, ancak başvurunun kurumdaki bir öğretim üyesi ya da tam zamanlı çalışan tarafından yapılması gerekir.