Senin, 28 Januari 2013

Pipelining dan RISC dan prosesor pararel

Pipelining dan RISC
a)    Pengertian Pipeline

Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistemkomputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijaankan oleh microprocessor.

b)   Intruksi pipeline

Tahapan pipeline

1.      Mengambil instruksi dan membuffferkannya
2.      Ketika tahapn kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
3.      Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya .

Instuksi pipeline:

Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :

Instruksi 1: ADD  AX, AX

Instruksi 2: ADD EX, CX

Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi  1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).

c)    Keuntungan dan Kerugian

Pipelining tidak membantu dalam semua kasus. Ada beberapa kemungkinan kerugian. Pipa instruksi dikatakan sepenuhnya pipelined jika dapat menerima instruksi baru setiap clock cycle. Sebuah pipa yang tidak sepenuhnya pipelined telah menunggu siklus yang menunda kemajuan pipa.

Keuntungan dari Pipelining:

1.      Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam                         kebanyakan kasus( lebih cepat selesai).
2.      Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit & combinational yang lebih kompleks.
3.      Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.

Kekurangan Pipelining:

1.      Pipelined prosesor menjalankan beberapa instruksi pada satu waktu. Jika ada beberapa cabang yang mengalami penundaan cabang (penundaan memproses data) dan akibatnya proses yang dilakukan cenderung lebih lama.
2.      Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta bahwa intruksi ekstra harus ditambahkan ke jalur data dari prosesor pipeline.
3.      Kinerja prosesor di pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
4.      Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar.
5.      Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
6.      Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.


d)    Kesulitan dalam Pipeline

Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik. Setiap unit berperan untuk  menyelesaikan sebagian dari  instruksi-intruksi berikut :

Instruction fetch, decode, operand address calculation, operand fetch, execute dan store result.

Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:

1.      Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut
2.      Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan
3.      Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda
4.      Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg di tunda
5.      Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat) dibandingkan dengan tanpa conclict.

A.   ARSITEKTUR REDUCED INSTRUCTION SET COMPUTERS (RISC)
Perkembangan inovasi komputer sejak 1960 menambah satu daftar penemuan yang sangat menarik dan paling penting , yaitu Arsitektur Reduced Instruction Set computers ( RISC). Walaupun sistem RISC telah ditentukan dan dirancang dengan berbagai cara berdasarkan komunitasnya, elemen penting yang digunakan sebagian rancangan umumnya adalah sebagai berikut :
1.      Set instruksi yang terbatas dan sederhana
2.      Register general purpose berjumlah banyak atau penggunaaan teknologi kompiler untuk mengoptimalklan penggunaan register.
3.      Penekanan pada pengoptimalan pipeline instruksi.

     I.        Implikasi
Secara umum penelitian menyatakan terdapat tiga buah elemen yang menentukan karakter arsitektur RISC :
1.      Penggunaan register dalam jumlah besar yang ditunjukan untuk mengotimalkan pereferensian operand.
2.      Diperlukan perhatian bagi perancangan pipelaine instruksi karena tingginya proporsi instruksi pencabangan bersyarat dan procedure call, pipeline instruksi yang bersifat langsung dan ringkas menjadi tidak efisien
3.      Terdapat set instruksi yang disederhanakan

   II.        Karakteristik  Arsitektur Reduced Instruction Set Computers (RISC)
Arsitektur RISC memiliki beberapa karakteristik diantaranya :
1.      Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register, melakukan operasi ALU, dan menyimpan hasil operasinya kedalam register, dengan demikian instruksi mesin RISC tidak boleh lebih kompleks dan harus dapat mengeksekusi secepat mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan instruksi sederhana atau instruksi satu siklus hanya dibutuhkan satu mikrokode atau tidak sama sekali, instruksi mesin dapat dihardwired. Instruksi seperti itu akan dieksekusi lebih cepat dibanding yang sejenis pada yang lain karena tidak perlu mengakses penyimapanan kontrol mikroprogram saat eksekusi instruksi berlangsung.
2.      Operasi berbentuk dari register-ke register yang hanya terdiri dari operasi load dan store yang mengakses memori . Fitur rancangan ini menyederhanakan set instruksi sehingga menyederhanakan pula unit control. Keuntungan lainnya memungkinkan optimasi pemakaian register sehingga operand yang sering diakses akan tetap ada di penyimpan berkecepatantinggi. Penekanan pada operasi register ke register merupakan hal yang unik bagi perancangan RISC.
3.      Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan register,. Beberapa mode tambahan seperti pergeseran dan pe-relatif dapat dimasukkan selain itu banyak mode kompleks dapat disintesis pada perangkat lunak dibanding yang sederhana, selain dapat menyederhanakan sel instruksi dan unit kontrol.
4.      penggunaan format-format instruksi sederhana, panjang instruksinya tetap dan disesuaikan dengan panjang word. Fitur ini memiliki beberapa kelebihan karena dengan menggunakan field yang tetap pendekodean opcode dan pengaksesan operand register dapat dilakukan secara bersama-sama



PROSESOR PARAREL


Dalam perancangan komputer, kelas dan type apa yang digunakan atau bagaimana penggunaan sistem komputer paralel menjadi sesuatu yang harus dipertimbangkan. Pada dasarnya sistem komputer dibuat dengan satu alasan utama yakni bagaimana komputer dapat mempunyai Kinerja tinggi. Kinerja dari sistem komputer paralel dapat dilihat pada faktor Speedup dan scaleup dari suatu program. Speedup diindikasikan dengan seberapa banyak waktu yang diperlukan untuk menyelesaikan beberapa masalah yang sama oleh N prosesor. Sedangkan scaleup didindikasikan oleh seberapa banyak permasalahan besar dapat diselesaikan oleh N prosesor. Jika kita perhatikan ada satu perbedaan yang mencolok antara speedup dan scaleup, yang akan kita bahas berikut ini. Kata kunci : kinerja, speedup, scaleup, efisiensi

1. Pendahuluan
Rancangan prosesor paralel merupakan pengembangan terakhir dari ilmu pengetahuan komputer yang didasari oleh kebutuhan menyelesaikan beberapa instruksi secara paralel dalam waktu yang bersamaan dengan mengurangi masalah ketergantungan data, prosedural, unit fungsional, output dan anti ketergantungan yang menyebabkan suatu instruksi terhenti atau harus menunggu instruksi lainnya selesai untuk dapat diproses. Operasi seperti ini hanya dapat dilakukan oleh komputer yang memiliki dua atau lebih unit prosesor (CPU) yang terhubung melalui beberapa jaringan koneksitas. Dalam beberapa kasus, kita dapat menganalogikan paralel komputer sebagai suatu Bank dimana teler merupakan prosesor paralel dan transaksi dengan konsumen sebagai task yang akan diproses. Berdasarkan struktur prosesor-nya, Flynn (Flynn 72) mengklasifikasikan komputer menjadi empat kelas yaitu : SISD (single instruction and single data), MISD (multiple instruction and single data), SIMD (single instruction and multiple data), dan MIMD (multiple instruction and multiple data). Dalam konteks paralel prosesor, SIMD dan MIMD merupakan kelas yang paling sesuai dan menarik untuk dibahas. Pada akhirnya MIMD adalah bentuk yang paling umum digunakan dalam komputer paralel namun demikian terdapat keuntungan dan keunggulan pada bentuk lainnya yang tidak ada pada MIMD.
2. Paradigma SIMD
SIMD merupakan salah satu bentuk dari paralel sinkron yang memproses satu instruksi dengan banyak prosesor elemen pada waktu yang sama. Di dalam paradigma SIMD yang paling penting bukanlah kontrol prosesor melainkan data. Data diproses oleh masing-masing elemen pemroses yang berbeda dari satu prosesor ke prosesor lainnya. Sehingga satu program dan satu kontrol unit bekerja secara bersamaan pada kumpulan data yang berbeda. Untuk memproses data secara efisien, SIMD membuat pengaturan proses menjadi dua phase, yaitu : pertama memilah dan mendistribusikan data (data partitioning and distribution) dan yang kedua memproses data secara paralel (data paralel prosesing). Jadi efisiensi akan tergantung kepada banyaknya permasalahan yang harus diselesaikan secara paralel. Cara terbaik dalam menggunakan SIMD adalah dengan mencocokan banyaknya permasalahan dengan banyaknya prosesor paralel. Banyaknya permasalahan berarti seberapa banyak jumlah data yang akan di perbaharui dan banyaknya prosesor paralel berarti jumlah prosesor yang tersedia. Jadi jika permasalahanya sebanding dengan prosesor paralel maka kecepatan tertinggi dapat terjadi, sebaliknya apabila permasalahan hanya satu dengan prosesor paralel yang banyak menyebabkan sistem SIMD menjadi tidak efektif. SIMD sering diidentikan sebagai permasalahan paralel yang sederhana, padahal tidaklah benar karena paradigma SIMD sangat berguna dalam menyelesaikan permasalahan yang memiliki beberapa data yang perlu diperbaharui secara serempak. Khususnya sangat berguna untuk perhitungan numerik biasa seperti perhitungan matrix dan vektor.
3. Paradigma MIMD
MIMD berarti banyak prosesor yang dapat mengeksekusi instruksi dan data yang berbeda-beda secara bersamaan. Lebih lanjut sebagai bagian dari komputer, prosesor memiliki otonom yang besar dalam melakukan operasinya. Secara umum MIMD digunakan ketika banyak permasalahan heterogen yang harus diselesaikan pada waktu yang sama. MIMD sangat baik digunkan untuk meneyelesaikan permasalahan yang besar, sebab melebihi data dan kontrol yang harus dilewatkan dari task ke task. Sebagai contoh dalam analogi sebuah Bank, MIMD akan menampilkan kerja terbaiknya ketika masing-masing teller memiliki beberapa transaksi yang harus diselesaikan satu persatu tanpa ada pembuangan waktu dan penghentian dari beberapa bagian transaksi. Tetapi pada sistem MIMD akan dibingungkan oleh aliran data (dataflow) paralel, karena aliran data tersebut harus dikerjakan oleh mesin MIMD secara terus menerus. Lalu mengapa digunakan sistem MIMD ?.
Pertama bahwa tiap-tiap prosesor bekerja secara independen kecuali untuk sistem sinkoron tertentu harus menunggu. Prosesor menjalankan task yang pendek sebagai contoh selesainya mengevaluasi vektor satu elemen sebelum prosesor memproses task lebih jauh. Tentu saja prosesor dalam waktu yang singkat dapat melakukan beberapa pekerjaan yang berbeda, seperti waiting, comparing dan sending data.
Kedua, bahwa pada program paralel untuk menyelesaikan suatu task baik jumlahnya diketahui ataupun tidak, menggunakan prosesor yang jumlahnya tidak diketahui pula. Hal tersebut menggambarkan dua ciri mendasar dari sistem MIMD, yaitu :1. Kelamahan pada sentralisasi dan mekanisme sistem sinkron secara umum, dan 2. Penggeneralisasian task yang heterogen yang dioperasikan secara bersamaan, contohnya dalam memproses operasi yang berbeda dengan data berbeda dan dalam jangka waktu yang berbeda pula.
Secara umum MIMD meliputi paradigma reduksi/dataflow. Pada kenyataannya juga secara umum meliputi SIMD, sebab kita dapat menemui sifat SIMD pada sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir dari simulasi satu bentuk mesin dengan bentuk lainnya. Untuk menggabungkannya, mesin MIMD mengubah SIMD prosesor dimana masing-masing prosesornya mampu mengerjakan banyak task dari aplikasi yang berbeda pada waktu yang sama.
4. Faktor Speedup
Kita dapat mengetahui kemampuan dari sistem komputer paralel N prosesor, dengan menggunakan Formula Amdahl. Definisi :P C = Derajat tertinggi dari sistem paralelJumlah maksimum prosesor yang digunakan secara paralel pada suatu waktu dalam mengeksekusi suatu program.Tk = Waktu yang diperlukan untuk memproses suatu program dengan maksimum paralel PC ≥k pada suatu sistem k prosesor.N = Jumlah prosesor dari sistem komputer paralel.f = Bagian yang harus terurut dari suatu program. Dari definisi di atas, diperoleh persamaan sebagai berikut :TN = f * T1 + (1 – f) * T1/N dan faktor Speedup dari N prosesor adalah : SN = T1/TN= dimana 0 ≤ f ≤ 1, dan 1 ≤ SN ≤ Njadi Speedup tidak dapat melebihi jumlah prosesornya.Efisiensinya tergantung dari perbandingan antara Speedup dan N prossesor, EN = SN / NSehingga efisiensi berada pada rentang 1/N≤EN ≤ 1. Contoh:a. Suatu komputer memiliki 1.000 prosesor, dengan kemampuan maksimum program diproses secara paralel sebesar 1000. Jika 0,1 % dari program harus keluar secara terurut (seperti input dan output) maka, f = 1/1000dan ; S1000 = 1000/(1+ (1000 – 1)/ 1000) = 500 Speedupnya hanya setengah dari Speedup maksimumnya, sehingga efisiensinya sebesar ; E1000 = 500/1000 = 50 % b. Suatu komputer memiliki 1.000 prosesor, dengan kemampuan maksimum program diproses secara paralel sebesar 1000. Jika 1 % dari program harus keluar secara terurut maka, f = 1/100dan ; S1000 = 1000/(1+ (1000 – 1)/ 100) = 91sehingga efisiensinya hanya sebesar ; E1000 = 9100/1000 = 9,1 % Terjadi penambahan jumlah bagian terurut pada program MIMD, dan Speedup pada prosesor paralel menurun secara drastis ketika jumlah dari bagian yang harus terurut terus bertambah. Untuk suatu program yang pengurutannya tetap, Speedup maksimum dapat dihitung secara langsung berdasarkan jumlah prosesor yang digunakan.Lim SN(f) = = 1/f N®¥Hal ini mengindikasikan bahwa program MIMD dengan jumlah pengurutan (f) 1 % dari programnya tidak pernah mencapai Speedup tertinggi sebesar 100. Batas teratas ini tidak tergantung pada jumlah penggunaan prosesor, apakah 100, 1000 ataukah 1 juta. Tetapi tergantung pada banyaknya proses yang harus terurut dalam menyelesaikan suatu program. Gambar 1. Speedup sebagai fungsi sejumlah prosesor Gambar 2. Efisiensi sebagai fungsi dari benyaknya prosesor Gambar 1 diatas menunjukan ketergantungan Speedup pada N prosesor untuk setiap perubahan nilai f. Speedup maksimal suatu program hanya dapat diperoleh jika tidak ada proses pengurutan atau f = 0. Sedangkan gambar 2 menunjukan ketergantungan efisiensi dari N dan f, maka semakin banyak proses pengurutan pada suatu program mengakibatkan penggunaan paralel prosesor dalam jumlah yang banyak menjadi tidak efisien.
5. Faktor Scaleup
Selama program yang sama digunakan sebagai ukuran, faktor f akan tetap konstan. Bagaimanpun, tidak dapat menganggap semua program paralel tidak tergantung pada ukurannya, yang telah diproses dengan presentasi minimum dari setiap statemen terurut. Maksudnya bahwa kurva yang ditunjukan pada gambar di atas tidak cukup ketika bobot permasalahan berbeda. Sebenarnya pengukuran dari sistem prosesor paralel dengan jumlah prosesor yang banyak telah ditunjukan oleh (Gustafson 88): penyelesaian masalah dimulai dari permasalahan yang besar dan kemudian jumlah prosesor yang digunakan bertambah, relatif bagian terurut (tidak mutlak) dari hasil perhitungan selalu kecil. Jadi efisiensi tertinggi akan didapat pada paralel komputer dengan jumlah prosesor terbanyak. Berikut definisi untuk variasi program dengan perberbedaan ukuran; Tk(m) = waktu yang diperlukan oleh suatu program dengan jumlah permasalahan m dan kemampuan paralel maksimum PC ≥ k. Scaleup dari sejumlah permasalahan n pada k prosesor dibandingkan dengan sejumlah permasalahan m (m < n) pada satu prosesor didefinisikan sebagai berikut :Jika, T1(m) = Tk(n) (waktu yang diperlukan untuk program kecil pada satu prosesor adalah sama dengan waktu yang diperlukan untuk program yang besar dengan k prosesor).Maka banyaknya scaleup menjadi :SCk = n/m Kurva scaleup dapat digambarkan pada ketergantungan k, sebagai jumlah prosesor. Nilai SCk mengindikasikan seberapa banyak program besar dapat diproses dalam k prosesor pada waktu yang sama seperti pada satu prosesor. Seperti pada Speedup, Scaleup selalu tetap mengikuti garis diagonalnya. SCk = k Ini berarti bahwa waktu proses suatu program tergantung pada parameter lain, yang tidak secara presisi menentukan banyaknya permasalahan. Sebagai contoh dalam menentukan jumlah data yang akan ditangani oleh sejumlah variasi program. Sesuai dengan program aplikasinya, kurva scaleup akan tampak linier, contohnya pada program logaritma. Ketika operator lokal memiliki scaleup linier (akan optimal pada saat bekerja pada daerah yang bebas), kurva scaleup merupakan penjumlahan vektor dari setiap penambahan prosesor secara logaritma, perhatikan contoh berikut : Diasumsikan jumlah dari tahapan = n dan prosesor = p. Selama (n – log 2 p) secara bertahap hingga (n + 1 – log2p), nilai data bertambah pada prosesor lain. Sisanya (log2p) secara bertahap digunakan untuk menjumlahkan sebagian penjumlahan dari semua prosesor.1 PE (prosesor elemen) dalam 5 tahapan dengan 6 prosesor, maka SC1 = 1 2 PE dalam 5 tahapan dengan 10 prosesor, maka SC2 = 1,7 4 PE dalam 5 tahapan dengan 16 prosesor, maka SC4 = 2,7 8 PE dalam 5 tahapan dengan 24 prosesor, maka SC8 = 4,0 16 PE dalam 5 tahapan dengan 32 prosesor, maka SC16 = 5,3 secara umum lihat kurva pada gambar dibawah ini :
Gambar 3. Scaleup untuk operasi reduksi
1 PE dalam n tahapan penjumlahan sebesar n + 1 prosesor p PE dalam n tahapan penjumlahan sebesar (n + 1 – log 2p) * p prosesor, jika log2p ≤ n, maka ; SCp = ((n + 1 – log 2p) / (n + 1))*p = p – ((p*log 2 p) / (n + 1)), dimana n adalah konstan Dapat kita lihat sebenarnya pada paralel program dengan jumlah prosesor yang banyak selalu digunakan untuk menyelesaikan permasalahan yang besar, bahkan dicoba untuk menyelesaikan permasalahan yang sama secara lebih cepat. Pada kasus ini scaleup lebih penting daripada Speedup. 6. Perbedaan MIMD dengan SIMDBerdasarkan teori di atas, tidak ada perbedaan Kinerja pada sistem paralel MIMD dan SIMD. Setiap program hanya memiliki dua perbedaan saja: satu untuk paralel prosesor asinkron (PMIMD) dan satu lagi untuk paralel prosesor sinkron (PSIMD). Mestinya, untuk selain paralel prosesor sinkron selalu menyebabkan PSIMD ≤ PMIMD. Satu hal yang paling penting secara praktis bahwa sistem MIMD relatif membolehkan pemakaian sistem tanpa prosesor oleh user lain, sedangkan pada sistem SIMD untuk kasus ini tidak akan jalan. Sehingga bukan merupakan ide yang bagus menggunakan sistem SIMD dengan 16.384 prosesor untuk menyelesaikan masalah yang hanya membutuhkan 100 PEs saja. Biasanya sistem SIMD memiliki beban prosesor yang lebih kecil daripada sistem MIMD. Begitupun dalam hal pemilihan instruksi if-then-else sistem SIMD akan mengurangi beban prosesor hingga 50 %. Penambahan PE di dalam sistem SIMD mengakibatkan berkurangnya kemampuan komputer daripada sistem MIMD. Sehingga kelemahan ini diimbangi dengan memperbesar jumlah prosesor yang bekerja pada sistem SIMD. Seringkali dilakukan penelitian mengenai sistem MIMD menggunakan program model SIMD. Maksudnya adalah adanya prosesor yang bebas pada sistem tidak diperlukan. Dengan permasalahan terjadinya over distribusi pada penggunaan prosesor dalam jumlah besar, yang dikenal sebagai massive paralel. Sebagian besar permasalahan dapat diselesaikan dengan 100, 1000 atau lebih prosesor yang menunjukan bahwa dengan menggunakan prosesing biasa dari sistem SIMD saja sudah bisa mencukupi. Hal ini sebagai alasan yang penting untuk merancang dan membuat model SPMD (same program and multiple data), yang merupakan kombinasi dari sistem SIMD dan MIMD. Sesuai dengan formula Amdal di atas, efisiensi akan menurun dengan cepat sesuai dengan jumlah prosesornya, tetapi pada hal yang lain secara pasti pengurutan segmen program (sebagai contoh, input dan output) tidak dapat dihindarkan. Sehingga timbul pertanyaan, Apakah paralel komputer sistem SIMD dengan lebih dari 65.000 prosesor dapat sepenuhnya dieksploitasi. Seperti yang ditunjukan pada gambar 4 pada kasus yang tetap. Ini merupakan metode perhitungan instruksi sederhana yang diaplikasikan program SIMD. Ketika setiap instruksi dasar diproses pada MIMD program A sesuai dengan formula Amdal (menghasilkan faktor fA), kedua instruksi skalar dan vektor pada SIMD program B diperlakukan sebagai instruksi tunggal (menghasilkan faktor fB). Ini adalah definisi alami, khususnya untuk sistem SIMD, sebab setiap operasi yang diproses membutuhkan banyak waktu. fA mengindikasikan bagian terurut dari sejumlah operasi dasar suatu program. fB mengindikasikan bagian terurut dari lamanya waktu operasi suatu program. Gambar 4.
Metode perhitungan untuk instruksi paralel Dari gambar di atas terlihat bahwa program SIMD mengeksekusi secara paralel setengah waktu proses (fB = 1/2), dan presentasi instruksi dasar yang dieksekusi secara berurutan adalah lebih kecil : fA = 1/6. Hubungan antara dua faktor tersebut dapat dinyatakan sebagai berikut :fA = fB/ (N * (1 – fB) + fB)Kemudian untuk menentukan Speedup dari paralel program (SIMD), suatu instruksi dapat keluar terbalik yang dihitung dari TN sampai T1, yang menimbulkan pertanyaan : Seberapa lama waktu yang diperlukan untuk memproses program paralel ini ?. Berikut rumus untuk perhitungan eksekusi terurut : T1 = fB * TN + (1 – fB) * N * TN lalu faktor Speedup dari sistem paralel dengan N yang tetap dapat dihitung ; SN = T1/TN = fB + (1 – fB) * N
Contoh kasus :
a. Suatu komputer memiliki 1.000 prosesor, dengan kemampuan maksimum program diproses secara paralel sebesar 1000. Jika 0,1 % dari program (dengan metode perhitungan SIMD) harus keluar secara terurut maka, f B = 1/1000 dan ;S1000 = 1/1000+ (1 – 0,001) * 1000 = 1000 secara teoritis kemungkinan Speedup maksimum berada pada jangkauannya yaitu sekitar E1000 = 100 %.
Hasil yang sama dapat kita lihat pada fA.fA = fA = 0,001/(1000*(1– 0,001)+0,001=10 – 6maka,S1000 = 1000/ (1+10– 6 * (1000 – 1) ) = 999 b. Suatu komputer memiliki 1.000 prosesor, dengan kemampuan maksimum program diproses secara paralel sebesar 1000. Jika 10 % dari program (dengan metode perhitungan SIMD) harus keluar secara terurut maka, f B = 0,1dan ; S1000 = 0,1 + 0,9 * 1000 = 900 walaupun program harus terurut, efisiensi eksekusi diperoleh hingga E1000 = 90 % dari Speedup maksimum.
Pembahasan ini didasari oleh hal yang spesifik seperti permasalahan yang tetap (dengan besarnya kemampuan maksimum dari sistem paralel) dan tetapnya jumlah PE yang digunakan. Juga jumlah dari permasalahan atau jumlah PE yang bervariasi, bahkan hanya membandingkan kembali urutan sistem yang keluar. Seperti apakah Speedup bertambah atau berkurang dengan perubahan pada jumlah PE, adalah tidak mungkin dengan formula diatas untuk menentukan SN, sebab TN menjadi faktor utamannya. Pada pertambahan jumlah PE tidak akan menimbulkan Speedup yang sama pada program SIMD dalam rentang N ³ PSIMD (jumlah PE lebih besar atau sama dengan kemampuan maksimum paralel pada SIMD), sehingga semua penambahan PE akan superfluos dan lalu akan menyebabkan tidak aktiv. Dengan menghitung semua Ti, 1<i< N, Speedup Si dapat diperoleh dengan rumus :Ti = fB * TN + (1 – fB) * (N*TN)/i Si = T1/TiKurvanya dapat dilihat pada gambar 1.Sebelumnya formula untuk SN telah digunakan untuk perhitungan waktu yang dibutuhkan dari variasi scaled dengan linier scaleup dan telah diselesaikan menjadi scaled Speedup yang dapat membingungkan. Waktu yang dibutuhkan disetiap perbedaan variasi scaled dari suatu program telah diamati termasuk perhitungan Speedup. Juga telah diperhitungkan bahwa bagian terurut dari suatu program tetap konstan selama scaling kecuali hanya pada perkembangan pararel. Yang didefinisikan secara pasti kelas dari program sebagai linier scaleup. Untuk kelas ini dapat kita tulis : TN(A) = Tk * N (k * A)(banyaknya varian program k terbesar yang dapat diproses pada periode yang sama dari k kali jumlah prosesor)dalam perkembangannya, T1 (k * A) = k * T1 (A)(suatu program k yang terbesar membutuhkan k kali eksekusi lainnya pada satu prossor) Dari asumsi ini, penambahan secara linier daari scaled Speedup dapat ditentukan sebagai berikut :Sk*N(k*A)/SN(A)= == Jadi apa yang terbaik dari dua sistem komputer di atas SIMD ataukah MIMD ?. Hal ini sangat tergantung kepada permasalahan dan proses data yang ditentukan oleh proses dan database yang diinginkan, contohnya seperti pada proses sistem pelayanan pesawat terbang, proses telekomunikasi, dan lain-lain. Aplikasi tersebut membutuhkan prosesing yang sangat tinggi mungkin hingga mencapai 100.000 TPS (transactions per second). Komputer paralel yang tertinggi akan terlihat dari Kinerja yang dimilikinya. Diperkirakan untuk proses 10 GW (giga word) x 1 TFLOPS (teraflops) akan didominasi oleh sistem SIMD dan SPMD. Untuk komputer paralel level menengah didominasi oleh mesin pemroses data dengan sekitar 100 prosesor. Mesin ini akan mampu melakukan transaksi hingga 10.000 transaksi per detik. Kemampuan ini didominasi oleh komputer dalam bentuk MIMD yang mengerjakan multitasking oleh masing-masing prosesor. Lalu untuk komputer paralel terendah mempunyai sekitar 4 hingga 32 prosesor yang mampu bekerja pada grafik kecepatan tinggi dan multiproses jaringan. Bentuk ini diperuntukan bagi prosesor yang mempunyai fungsi khusus daripada prosesor yang homogen, sebagai contoh : grafik khusus, akses file, manajemen jaringan, dan lain-lain. 7. Kesimpulan Dari pembahasan ini, Kinerja data untuk sistem komputer paralel atau program pararel selalu dianggap skeptis. Alasannya adalah :a. Kinerja data seperti Speedup atau scaleup dari sistem komputer paralel selalu tergantung. Khususnya pada aplikasi tertentu yang tidak dapat dipindahkan kepada permasalahan lainnya.b. Speedup suatu program tergantung pada satu prosesor dari paralel komputer. Pada sistem SIMD, PE secara umum lebih lemah pada kinerja akhir daripada prosesor sistem MIMD. c. Kemampuan beban prosesor yang tertinggi ada pada sistem MIMD. Hal ini tidak sama bagi sistem SIMD, ketika PE tidak aktif tidak dapat digunakan untuk fungsi yang lainnya. Biasanya, Speedup dihitung berdasarkan beban prosesor. Jika program SIMD tidak menggunakan PE untuk melanjutkan prosesing, beban PE dan nilai Speedup akan salah. Pada kasus ini program paralel kurang efisien.d. Puncak Kinerja data, contohnya pada pengukuran MIPS atau MFLOPS, dibatasi pada hal-hal yang penting saja.e. Banyak bahasa pemrograman tingkat tinggi yang ada tidak membuat efisien dengan menggunakan hardware paralelf. Keterbatasan bentuk SIMD dan MIMD mungkin akan terus diperbaiki hingga dicapai Kinerja tinggi dan pada suatu saat menjadi komputer multi-fungsi/general purpose.
Daftar Pustaka
Braunl Thomas, Parallel Programming An Introduction, Prentice Hall International (UK) Limited Campus 400 Cambridge, 1993.Hennessy John L. Compter Organization & Design, Morgan Kafman Publisher, California, 1998Lewis.G. Ted, El Rewini.Hesham, Introduction To Parallel Computing, Prentice Hall Inc., 1992Stalling William, Computer Organization and Architecture, Prentice Hall International, Inc, America, 2000.

Tidak ada komentar:

Posting Komentar