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

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.