Performans. Mikroişlemciler ve Mikrobilgisayarlar



Benzer belgeler
Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

MİKROİŞLEMCİ MİMARİLERİ

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

BM-311 Bilgisayar Mimarisi

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

İŞLETİM SİSTEMLERİ. (Operating Systems)

İşletim Sistemlerine Giriş

İNŞAAT MÜHENDİSLİĞİ YÜKSEK LİSANS PROGRAMI AKIŞ DİYAGRAMI

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Gömülü Sistemler. (Embedded Systems)

1. YARIYIL / SEMESTER 1 2. YARIYIL / SEMESTER 2

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

Bilgisayar Mimarisi Nedir?

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Mikrobilgisayar Sistemleri ve Assembler

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

1. YARIYIL / SEMESTER 1 2. YARIYIL / SEMESTER 2

BM-311 Bilgisayar Mimarisi

Bilgisayar Mimarisi ve Organizasyonu Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği (İngilizce)

ANKARA ÜNİVERSİTESİ ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI ANADAL PROGRAMI İÇİN ÖNERİLEN EĞİTİM PROGRAMI FORMU

MÜFREDAT DERS LİSTESİ

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

İşlem Yönetimi (Process Management)

BİLGİSAYAR ORGANİZASYONU

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Bilgisayar Donanım 2010 BİLGİSAYAR

Bir devrede bellek elemanı olarak kullanılmak üzere tutucuları inceledik.

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

Yrd.Doç.Dr. Celal Murat KANDEMİR

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

2 ANADAL ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ, İKİNCİ DAL BİLGİSAYAR MÜHENDİSLİĞİ YANDAL PROGRAMI

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Yazılım Mühendisliğine Giriş 6. Hafta 2016 GÜZ

BM-311 Bilgisayar Mimarisi

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İşletim Sistemlerine Giriş

Embedded(Gömülü)Sistem Nedir?

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

BM-311 Bilgisayar Mimarisi

KONU 1 BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

ve Sonrası Girişli Öğrenciler için Uygulanacak Ders Program

Bilgisayar Mühendisliği Bölümü Lisans Ders Programı / Computer Engineering Undergraduate Curriculum

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

1st TERM Class Code Class Name T A C. Fizik I Physics I Bilgisayar Programlama I (Java) Computer Programming I (Java)

BM-311 Bilgisayar Mimarisi

Veri ve Dosya Yapıları. Kütük Organizasyonu 1

4. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İşletim Sistemlerine Giriş

Bir devrede bellek elemanı olarak kullanılmak üzere latch leri inceledik.

YEDİTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Laboratuvar Çalışması Veri Depolama Kapasitesini Belirleme

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07

MİKROİŞLEMCİLER. Mikroişlemcilerde Kullanılan Yeni Teknolojiler ve Mikroişlemcilerin Rakipleri

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Bilgisayar Mühendisliği Bölümü Lisans Ders Programı / Computer Engineering Undergraduate Curriculum

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

TEMEL BİLGİTEKNOLOJİLERİ

Çalışma Açısından Bilgisayarlar

Spatial locality nin getirdigi avantaji kullanmak

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

Merkezi İşlem Birimi (CPU)

Bölüm 7. İfadeler ve atamalar ISBN

Eray Özkural. TÜBİTAK UEKAE Bilkent Bilgisayar Mühendisliği Bölümü Paralel Hesaplama Grubu

CPU (Merkezi İşlem Birimi) Nedir?

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

ANKARA ÜNİVERSİTESİ ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

Bilgisayar Programlama. Giriş

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ DOKTORA YETERLİK SINAVI YÖNETMELİĞİ

1 ANADAL ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ, İKİNCİ DAL BİLGİSAYAR MÜHENDİSLİĞİ ÇAP PROGRAMI

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

EXCEL DE BENZETİM ÖRNEKLERİ BMÜ-422 BENZETİM VE MODELLEME

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

Bilgisayar Sistemlerine Genel Bakış

Sanal Bellek (Virtual Memory)

Hız felaket mi? 32-Bit/64-Bit işlemciler üzerine örnek bir çalışma

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

Transkript:

Performans 1

Performans Performans nasıl ölçülür? Hangi faktörler performansı belirler? Modern yazılım sistemlerinin büyüklüğü, karmaşıklığı ve donanım geliştiriciler tarafından ortaya konulan çok farklı yapılar performans değerlendirmesini zorlaştırmaktadır. Bu bilgisayar diğerinden daha performanslıdır. dediğimizde ne demek isteriz? 2

Performans Tanımlama Uçak Yolcu Kapasitesi Menzil (mil) Hız (m.p.h) 1 saatte taşıdığı toplam yolcu kapasitesi (yolcu x mph) Boeing 777 375 4630 610 228,750 Boeing 747 470 4150 610 286,700 BAC/Sud Concorde Douglas DC-8-50 132 4000 1350 178,200 146 8720 544 79,424 Bu uçaklardan hangisi en performanslıdır? 3

Bir programı 2 farklı workstation üzerinde çalıştırıldığı bir durumda da performans için farklı tanımlamar yapılabilir. Örn: Verilen bir işi, ilk önce bitiren bilgisayar hızlıdır. Birçok kullanıcının bağlı olduğu bir merkezde ise, bir gün içerisinde en çok işi yerine getiren bilgisayar hızlıdır. Kişisel bir kullanıcı için bir görevin başlama ve bitiş zamanı arasında geçen süre önemlidir. Bu süre response time veya execution time olarak bilinir. Kullanıcı bu süreyi azaltmayı amaçlar. Merkez yöneticisi ise verilen bir zaman dilimi içinde yapılacak iş sayısını (throughput) arttırmayı amaçlar. 4

Response Time (elapsed time, latency): Bir işin bitmesi ne kadar zaman alacak? Bir veritabanı sorgusu için ne kadar beklemek gerekecek Kişisel Kullanıcı için önemlidir. Throughput: Bir seferde ne kadar iş yapılabilir.? Ortalama yürütme hızı nedir? Ne kadar iş yapılmaktadır.? Sistem yöneticisi için önemlidir. 5

Örnek Bir bilgisayar sistemi üzerinde aşağıdaki değişikler yapıldığında; birim zamanda yapılan iş miktarını (throughput) arttırıp, cevap süresini (response time) azaltır mı? Yoksa her ikisi de mi? i) Bilgisayarın işlemcisini daha hızlı bir işlemciyle değiştirmek ii) Var olan işlemciye yeni bir tane daha ilave ederek her iki işlemcinin çoklu işlmeci (multiple processor) olarak çalıştırılması 6

Örnek (Devam) i) Sisteme daha hızlı bir CPU eklemek, response time ı düşürür ve buna bağlı olarak birim zamanda yapılan işlem miktarı da artar. Performans artışı söz konusudur. ii) Sisteme ikinci bir CPU eklemek bir işin yapılması için gereken zamanı azaltmaz. Sadece birim zamanda yapılan iş miktarı artar. Yani throughput da bir artış söz konusudur. Fakat sistemde kuyrukta bekleyen komutlar bulunduğundan ve birim zamanda yapılan iş miktarı arttığından verilen bir task için response time da azalma olacaktır. Performasn artışı söz konusudur. 7

Performansı Arttırmak Performansı arttırmak için görevler için olan response time (execution time) ı azaltmak gerekir. X makinası için: Performance x = 1 Execution Time x Örn: Eğer X ve Y makinaları için; X in performansı Y den daha fazla ise: Performance x > Performance Y 1 1 > Execution Time x Execution Time Y Execution Time Y > Execution Time X 8

Performance x Performance Y = n X, Y den n kat daha hızlıdır. veya Y nin yürütme zamanı, X den n kat daha uzundur. Performance x Performance Y = Execution time Y Execution time X = n 9

Örnek A makinası bir programı 10 sn. de, aynı programı B makinası 15 sn. de işlemektedir. A, B den ne kadar hızlıdır. Performance x Performance Y = Execution time Y Execution time X = n 15/10= 1,5 A, B den 1.5 kat daha hızlıdır veya B, A dan 1.5 kat daha yavaştır. 10

Performans Ölçümü Response time, Elapsed time kavramları aynı kavramlar olup verilen bir görevin tamamlanması için geçen toplam zamandır. Bu sürenin içerisinde disk erişimi, bellek erişimi, giriş/çıkış işlemleri gibi işlemler yer almaktadır. İşlemci birçok programı eş-zamanlı olarak çalıştırabilir. Bu durumda sistem, bir program için response time ı azaltmak yerine birim zamanda yapılan iş miktarını arttırmayı deneyebilir. CPU execution time (CPU time), kendisine verilen bir görevi tamamlamak için geçen süredir. Bu süre I/O ve diğer programları beklemek için gereken süreyi içermez. 2 ye ayrılır. User CPU time: Program içerisinde harcanan CPU zamanıdır. System CPU time: Program adına bir görevin yerine getirilmesinde işletim sisteminde harcanan zamandır. 11

Elapsed time = CPU time + wait time (I/O, diğer programlar, vd.) CPU time = user CPU time + system CPU time Elapsed time = user CPU time + system CPU time + wait time 12

Örnek User Cpu time = 90.7 sn. System Cpu time=12.9 sn. ve Elapsed time = 159 sn. olan bir sistemde; 90.7+12.9=103,6 159-103,6= 55,4 sn. ise I/O işlemleri vd. için harcanmıştır. %65 lik kısım CPU time, geriye kalan %35 lik kısım I/O işlemleri vd. içindir. 13

Performans Metrikleri ve Birbirleriyle İlişkileri CPU execution time for a Program = X CPU Clock Cycles for a Program Clock Cycle Time CPU execution time for a Program = CPU Clock Cycles for a Program Clock rate 14

Örnek Bir programın yürütülmesi, 400 Mhz clock frekansına sahip olan A makinasında 10 sn. sürmektedir. Donanım tasarımcısı aynı programı 6 sn. de çalıştıracak olan B makinası tasarlamaktadır. Fakat tasarımcıya göre clock frekansının arttırılması B makinasının A ya göre 1,2 kat daha fazla clok cycle ına ihtiyaç duymasına neden olmaktadır. Buna göre tasarımcı hangi clock frekansında B makinasını tasarlamalıdır? 15

Örnek A makinası için gerekli olan clock cycle ı sayısı; 10 sn.= CPU Clock Cycles for a Program A 400. 10 6 cycle/sn CPU Clock Cycles for a Program A = 4000. 10 6 cycles CPU Clock Cycles for a Program 4000. 10 6 B = 1,2 X cycle = 4800. 10 6 cycles 6 sn = 4800. 10 6 cycles Clock rate B Clock rate B = 800. 10 6 Hz. = 800 Mhz 16

Performans Metrikleri CPU bellekteki komutları (instruction) teker teker yürütür. Bu durumda execution time, programda bağlı olan instructionların sayısına ve her bir instruction için gerekli olan ortalama zamana bağlıdır. CPU Clock Cycles for a Program = Instructions for a program X Average Clock Cycles Per Instruction (CPI) Not: Her bir instruction için gerekli ortalama zaman sn. ifade edilebileceği gibi clok cycle ları cinsinden de ifade edilebilir. 17

Örnek Aynı mimariye sahip A ve B makinaları bulunmaktadır. A makinasının 1 cycle ı 1 ns., ve her bir instruction başına düşen ortalama saykıl sayısı 2.0 dır. Aynı program için, B makinasının 1 cycle ı 2 ns., her bir instruction başına düşen saykıl sayısı 1.2 dir. Bu durumda Hangi makina hızlıdır? Ne kadar? 18

Örnek Öncelikle her iki makinada aynı komut setini ve aynı programı kullandıklarından dolayı işlemiş oldukları instruction sayısı aynıdır. İşlenen instruction sayısı = I olsun CPU execution time for a Program A = I x2 x1 ns. = 2 I ns. kadar sürer CPU execution time for a Program = I x 1,2 x 2 ns. = 2,4 I ns. kadar sürer B Performance 2,4 I ns. A Execution time B = = =1,2 Performance B Execution time A 2 I ns. A makinası, B den 1,2 kat daha performanslıdır. 19

Performans Bileşenleri Cpu execution time for a program Instruction Count CPI (Clock Cycles Per Insructions) Clock Cycle Time Açıklama Bir programın işletilmesi için gerekli olan süre Programda yürütülen instruction sayısı Her bir instruction için gereken ortalama clock sayısı Her bir clock cycle ı için gerekli olan süre 20

Temel Performans Eşitliği CPU execution time = Instruction Count X CPI X Clock Cycle Time CPU execution time = Instruction Count Clock Rate X CPI Time = Instruction Program X Cycles Instruction X Seconds Cycles 21

Clock Cycles Per Instruction (CPI) Program içerisinde kullanılan her bir komut sınıfı içinde yer alan komutlar için gerekli olan süreler farklılık gösterir. Bu nedenle, bir programın işletilmesi için gerekli olan toplam cycle sayısı: CPU Clock Cycles = n i = 1 ( CPIxC) i i C i CP i Yürütülen i sınıfı içinde yer alan bir instruction ın tekrar sayısıdır. Yürütülen i sınıfı içindeki bir instruction için gerekli olan clock cycle ı sayısıdır. 22

Örn: Bir compiler tasarımcısı bir makina için, iki kod serisinden birini seçecektir. Donanım üreticisi aşağıdaki bilgileri vermiştir : Instruction Class Her bir komut sınıf için gerekli olan CPI değerleri A 1 B 2 C 3 Tasarımcının uygulamayı düşündüğü kod serileri ise ; Instruction Counts for Instruction Class Kod Serisi A B C 1 2 1 2 2 4 1 1 Bu durumda: a) Hangi kod serisi daha çok instruction işler? b) Hangisi daha hızlıdır? c) Her bir kod serisi için gerekli olan CPI nedir? 23

a) Birinci seri 2+1+2 = 5 instruction yürütür. İkinci seri 4+1+1= 6 instruction yürütür. b) Bir serinin yürütülmesi için gerekli olan CPU cycle sayısı instructionın tekrar sayısına ve bu instruction için gerekli olan CPI ya bağlıdır. Yani; CPU Clock Cycles = i = 1 n ( CPIxC) Kod Serisi 1 = (1x2) + (2x1) + (3x2) = 10 cycle gerekmektedir. Kod Serisi 2 = (1x4) + (2x1) + (3x1) = 9 cycle gerekmektedir. i i Kod Serisi 2, daha fazla instruction işletmesine rağmen, daha az clock cycle ı gerektirdiğinden daha kısa sürer. Daha hızlıdır. Kod Serisi 2, daha fazla instruction ı daha az clock cycle ı ile işlediğinden CPI değeri de daha düşük olması beklenir. 24

c) Kod Serisi 2, daha fazla instruction ı daha az clock cycle ı ile işlediğinden CPI değeri de daha düşük olması beklenir. CPU Clock Cycles CPI = Instruction Count CPI Seri1 = CPI Seri2 = 10 5 9 6 = 2 = 1,5 Görülmektedir ki, performansların karşılaştırılmasında sadece tek bir öğeye bakmak yanıltıcı olabilir. 25

Performans Ölçümü İçin Programlar Her gün aynı işi yapan bir kullanıcının yeni bir makinanın performasını değerlendirmesi kolaydır. Fakat, her kullanıcı bu imkana sahip değildir. Bunun için benchmark programları kullanılır. En iyi benchmarklar, gerçek uygulamalardır. (Örn: bilimadamı için bilimsel uygulamalar içeren bir benchmark gibi) Benchmark teslerinde kullanılan tüm bilgiler açıkça verilir (Donanım özellikleri, yazılımda kullanılan derleyici, işletim sistemi vd.) 26

Performansların Karşılaştırılması ve Özetlenmesi Benchmark olarak kullanacağımız programı seçtikten sonra response time ve throughput için performans karşılaştırması yapabiliriz. Fakat, bir grup benchmark sonucu sözkonusu ise performansı özetleyebiliriz? genel olarak nasıl Computer A Computer B Program 1 (saniye) 1 10 Program 2 (saniye) 1000 100 Toplam (Saniye) 1001 110 Program1 için A makinası B den 10 kat hızlıdır. Program2 için B makinası A dan 10 kat hızlıdır. 27

Computer A Computer B Program 1 (saniye) 1 10 Program 2 (saniye) 1000 100 Toplam (Saniye) 1001 110 i) Her iki makinanın da göreli olarak performansını özetlemek için toplam yürütme zamanını (total execution time) kullanmak daha güvenilirdir. Performance 1001. B Execution time A = = =9,1 Performance A Execution time B 110 B makinası 1 ve 2 numaralı programlar için A dan 9,1 kat daha hızlıdır. 28

ii) Toplam yürütme zamanı kullanılabileceği gibi programların yürütme zamanlarının aritmetik ortalması da kullanılabilir. Aritmatik Ortalama = 1 n n i = Time 1 i Time i i. Programın execution time süresi Fakat bir makine üzerinde işlem gören programların eşit sayılarda yürütüldüğünde bu hesaplamalar geçerlidir. Aksi taktirde hesaplamalara bu programların ağırlıkları da eklenmelidir. (Örn: İş yükünün %30 u Program1 den, %70 i Program2 den kaynaklanmaktadır) 29

SPEC (System Performance Evaluation Corporation) CPU performansını, gerçekçi olarak ölçümlenmesi ve raporlamasını sağlamak için 1989 yılında bir grup bilgisayar firmalasının bir araya gelmesiyle oluşturulan bir kurumdur. (www.spec.com) Tarihsel olarak bakıldığında SPEC benchmarkları; SPEC CPU89 SPEC CPU92 SPEC CPU95 SPEC CPU2000 SPEC CPU2006 30

CINT2000 (Integer component of SPEC CPU2000) Program Language What It Is 164.gzip C Compression 175.vpr C FPGA Circuit Placement and Routing 176.gcc C C Programming Language Compiler 181.mcf C Combinatorial Optimization 186.crafty C Game Playing: Chess 197.parser C Word Processing 252.eon C++ Computer Visualization 253.perlbmk C PERL Programming Language 254.gap C Group Theory, Interpreter 255.vortex C Object-oriented Database 256.bzip2 C Compression 300.twolf C Place and Route Simulator 31

CFP2000 (Float component of SPEC CPU2000) Program Language Açıklama 168.wupwise Fortran 77 Physics / Quantum Chromodynamics 171.swim Fortran 77 Shallow Water Modeling 172.mgrid Fortran 77 Multi-grid Solver: 3D Potential Field 173.applu Fortran 77 Parabolic / Elliptic Differential Equations 177.mesa C 3-D Graphics Library 178.galgel Fortran 90 Computational Fluid Dynamics 179.art C Image Recognition / Neural Networks 183.equake C Seismic Wave Propagation Simulation 187.facerec Fortran 90 Image Processing: Face Recognition 188.ammp C Computational Chemistry 189.lucas Fortran 90 Number Theory / Primality Testing 191.fma3d Fortran 90 Finite-element Crash Simulation 200.Sixtrack Fortran 77 High Energy Physics Accelerator Design 301.apsi Fortran 77 Meteorology: Pollutant Distribution 32

Amdahl ın Kanunu Yapılan bir performans iyileştirmesi(improvement) sonucu elde edilen hızlanma; Hızlanma imp = Execution Time imp olmadan Execution Time imp olduktan sonra = Perfomans imp olduktan sonra Perfomans imp olmadan Eğer geliştirme bir programın yalnızca P parçasını T kadar hızlandırıyorsa ve kalan parçasına etki etmiyorsa bu şu şekilde ifade edilir: Execution Time imp olduktan sonra = ( (1-P) + P / T ) x Execution Time imp olmadan Geliştirilmenin ardından yürütme zamanı = Etkilenen kısmın yürütme zamanı Geliştirme miktarı + Etkilenmeyen kısmın yürütme zamanı 33

Örnek Bir program bilgisyar üzerinde 100 sn. çalışmaktadır. Bu zamanın 80 sn. sini çarpma işlemi için harcamaktadır. Tüm programı 5 kat hızlandırmak için çarpma işlemini ne kadar hızlandırmam gerekir? Geliştirilmenin ardından yürütme zamanı Etkilenen kısmın yürütme = zamanı Geliştirme miktarı + Etkilenmeyen kısmın yürütme zamanı 20 = 0 = 80 n 80 n + 20 Çarpma işlemini, ne kadar hızlandırırsak hızlandıralım belli bir değerin altına düşmek mümkün değildir. 34

Özet Performans özel bir programa bağlıdır. Performans değerlendirmesi tek bir kritere göre yapmaktan kaçınılmalıdır. Bir mimarideki performans artışı; CPU frekansını arttırarak 1 komut için gerekli olan cycle sayısını azaltarak Derleyici düzenlemelerine bağlıdır. 35