Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

9
11 KINERJA PARALEL PENGURUTAN DATA MENGGUNAKAN METODE SHELLSORT DAN QUICKSORT E. Leonardi 1 , Maria A. Kartawidjaja 2 Jurusan Teknik Elektro Universitas Katolik Indonesia Atma Jaya, Jakarta 1 [email protected] , 2 [email protected] Abstract Today, computers have been widely use in human activities. One frequent activity encountered human life is data sorting. However, sorting can become cumbersome when dealing with large data size. An interesting approach to overcome this inefficiency is to use parallel computation. This paper discussed two parallel sorting techniques, Shellsort and Quicksort. Based on our experiment we conclude that the performance of sorting data using Shellsort algorithm is increased with the increasing number of processors, and can reach up to ideal speedup for large data size. In contrary, sorting data using Quicksort algorithm indicated performance degradation, despite its good complexity in sequential environment. The parallel environment is emulated using Parallel Virtual Machine (PVM) software. Keywords: performance, parallel virtual machine, quicksort, shellsort 1. PENDAHULUAN Saat ini komputer sudah merupakan suatu perangkat yang sangat dibutuhkan manusia dalam menyelesaikan berbagai masalah komputasi, karena penyelesaian dengan komputer memberikan hasil lebih cepat dan lebih akurat dibandingkan dengan penyelesaian secara manual. Seiring dengan hal tersebut tuntutan terhadap proses komputasi pun semakin meningkat. Salah satu proses yang penting dalam komputasi adalah proses pengurutan data. Jika data yang akan diurutkan berjumlah banyak, maka waktu pengurutan akan besar dan ini berdampak pada penurunan kinerja komputasi. Oleh karena itu dibutuhkan suatu cara pengurutan data yang efisien, misalnya dengan memanfaatkan komputasi paralel. Paper ini membahas proses pengurutan data secara paralel menggunakan sejumlah komputer yang terhubung dalam suatu jaringan melalui switch. Paralelisasi diemulasikan dengan menggunakan suatu perangkat lunak yang disebut Parallel Virtual Machine (PVM). Penelitian menggunakan dua tipe pengurutan data yang mempunyai algoritma pengurutan yang berbeda, yaitu Shellsort dan Quicksort. 2. PENGURUTAN DATA Proses pengurutan data adalah teknik yang meletakkan unsur dalam suatu daftar menurut aturan tertentu, biasanya aturan tersebut berdasarkan urutan dari angka atau huruf.. Pengurutan dapat dilakukan dari unsur yang kecil ke unsur yang lebih besar atau sebaliknya. Jika pengurutan data dilakukan dari unsur kecil ke unsur besar, pengurutan dinamakan pengurutan naik. Sebaliknya jika pengurutan data dilakukan dari unsur besar ke unsur kecil, pengurutan dinamakan pengurutan menurun. Metode pengurutan di sini menggunakan metode pengurutan naik. Hasil pengurutan data diharapkan memenuhi ketentuan-ketentuan berikut [1]:

description

free

Transcript of Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Page 1: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

11

KINERJA PARALEL PENGURUTAN DATA MENGGUNAKAN METODE SHELLSORT DAN QUICKSORT

E. Leonardi1, Maria A. Kartawidjaja2

Jurusan Teknik Elektro Universitas Katolik Indonesia Atma Jaya, Jakarta [email protected], [email protected]

Abstract Today, computers have been widely use in human activities. One frequent activity

encountered human life is data sorting. However, sorting can become cumbersome when dealing with large data size. An interesting approach to overcome this inefficiency is to use parallel computation. This paper discussed two parallel sorting techniques, Shellsort and Quicksort. Based on our experiment we conclude that the performance of sorting data using Shellsort algorithm is increased with the increasing number of processors, and can reach up to ideal speedup for large data size. In contrary, sorting data using Quicksort algorithm indicated performance degradation, despite its good complexity in sequential environment. The parallel environment is emulated using Parallel Virtual Machine (PVM) software. Keywords: performance, parallel virtual machine, quicksort, shellsort 1. PENDAHULUAN

Saat ini komputer sudah merupakan suatu perangkat yang sangat dibutuhkan manusia dalam menyelesaikan berbagai masalah komputasi, karena penyelesaian dengan komputer memberikan hasil lebih cepat dan lebih akurat dibandingkan dengan penyelesaian secara manual. Seiring dengan hal tersebut tuntutan terhadap proses komputasi pun semakin meningkat.

Salah satu proses yang penting dalam komputasi adalah proses pengurutan data. Jika data yang akan diurutkan berjumlah banyak, maka waktu pengurutan akan besar dan ini berdampak pada penurunan kinerja komputasi. Oleh karena itu dibutuhkan suatu cara pengurutan data yang efisien, misalnya dengan memanfaatkan komputasi paralel.

Paper ini membahas proses pengurutan data secara paralel menggunakan sejumlah komputer yang terhubung dalam suatu jaringan melalui switch. Paralelisasi diemulasikan dengan menggunakan suatu perangkat lunak yang disebut Parallel Virtual Machine (PVM). Penelitian menggunakan dua tipe pengurutan data yang mempunyai algoritma pengurutan yang berbeda, yaitu Shellsort dan Quicksort. 2. PENGURUTAN DATA

Proses pengurutan data adalah teknik yang meletakkan unsur dalam suatu daftar menurut aturan tertentu, biasanya aturan tersebut berdasarkan urutan dari angka atau huruf.. Pengurutan dapat dilakukan dari unsur yang kecil ke unsur yang lebih besar atau sebaliknya. Jika pengurutan data dilakukan dari unsur kecil ke unsur besar, pengurutan dinamakan pengurutan naik. Sebaliknya jika pengurutan data dilakukan dari unsur besar ke unsur kecil, pengurutan dinamakan pengurutan menurun. Metode pengurutan di sini menggunakan metode pengurutan naik. Hasil pengurutan data diharapkan memenuhi ketentuan-ketentuan berikut [1]:

Page 2: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Vol. 9 No. 17, Mei – Agustus 2010

12

1. Dalam hasil pengurutan tidak ada unsur yang lebih kecil dari unsur yang ada sebelumnya jika pengurutan dilakukan secara menaik, dan tidak ada unsur yang lebih besar dari unsur sebelumnya jika pengurutan dilakukan secara menurun.

2. Tidak boleh ada unsur yang dihilangkan dari kumpulan unsur yang diurutkan.

Algoritma pengurutan data dapat dikelompokkan berdasarkan beberapa kriteria sebagai berikut [1]: 1. Kompleksitas. Kompleksitas yang umum digunakan ádalah kompleksitas yang mengacu

pada banyaknya pertukaran unsur yang dibutuhkan dalam keadaan terburuknya.. 2. Penggunaan memori tambahan. Suatu algoritma yang tidak membutuhkan memori

tambahan dalam melakukan pengurutan data disebut sebagai algoritma in-place, sedangkan algoritma yang membutuhkan memori tambahan disebut sebagai algoritma out-of-place.

3. Stabilitas. Suatu algoritma pengurutan data dikatakan stabil apabila pengurutan mempertahankan letak unsur jika ada dua unsur atau lebih yang bernilai sama.

Pada metode pengurutan data sebagian besar waktu digunakan untuk melakukan pertukaran unsur. Oleh karena itu semakin sedikit proses pertukaran unsur dalam suatu algoritma, semakin efisien algoritma tersebut. Jika unsur yang akan diurutkan berjumlah n, maka kompleksitas algoritma yang ideal untuk pengurutan adalah O(n). Ini berarti dalam kondisi terburuk algoritma tersebut akan melakukan sebanyak n pertukaran data.

2.1 Algoritma Shellsort Algoritma Shellsort melakukan perbandingan unsur berdasarkan jarak yang sudah ditentukan dari beberapa posisi. Biasanya jarak pengurutan diambil k2 dengan ,1,0k , dan seterusnya, dengan ketentuan k2 bernilai lebih kecil dari jumlah unsur yang diurutkan. Pergerakan unsur dilakukan secara berulang-ulang dengan jarak yang makin mengecil pada pengulangan berikutnya. Sebagai contoh, jika pada pertama kali digunakan jarak 32 , maka selanjutnya digunakan jarak 22 , lalu 12 , dan terakhir jarak 02 [2].

Kompleksitas algoritma Shellsort ditentukan oleh jarak pengurutan yang digunakan, kompleksitasnya bisa

2nO ,

23nO [2], atau

2log nno [3].

2.2 Algoritma Quicksort

Algoritma Quicksort menerapkan teknik divide and conquer untuk membagi jumlah unsur yang akan diurutkan menjadi dua bagian yang kurang lebih sama banyak. Langkah pertama adalah memilih sebuah unsur dalam daftar yang disebut pivot. Nilai pivot bisa diambil dari data yang mana saja, baik data awal maupun data akhir. Namun pemilihan nilai pivot yang tepat akan mempersingkat waktu eksekusi program. Seandainya setiap kali daftar dipartisi menjadi dua bagian yang kurang lebih sama panjang, waktu yang dibutuhkan untuk pengurutan akan kecil dan kompleksitasnya adalah nnO log [1]. Jika partisi daftar sangat tidak berimbang, maka waktu eksekusi menjadi panjang, dan kompleksitasnya menjadi 2nO . Untuk mendapatkan bagian partisi yang kira-kira sama besar, maka dipilih pivot berdasarkan metode three-median-rule [4][5] dengan nilai pivot yang merupakan nilai rata-rata dari tiga nilai median (data pertama, data terakhir dan data yang berada di tengah-tengah baris unsur).

Langkah selanjutnya adalah memindahkan unsur dalam daftar yang nilainya lebih kecil dari pivot ke sebelah kiri pivot, dan unsur yang nilainya sama atau lebih besar dari pivot ke sebelah kanan sehingga terbentuk dua buah daftar dengan unsur yang sudah

Page 3: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Kinerja Paralel Pengurutan...

13

terurut. Lalu pencarian pivot diulangi lagi untuk masing-masing daftar dan kemudian dilakukan pemindahan unsur sesuai dengan nilainya. 3. KOMPUTASI PARALEL

Konsep komputasi paralel pertama kali dikemukan pada tahun 1958 oleh ilmuwan bernama Gill [6] dan diiukuti oleh sejumlah ilmuwan lain seperti yang dikemukan oleh Wilkinson [7]. Kemudian pada tahun 1966 Michael J. Flynn [8] memperkenalkan konsep paralel berdasarkan aliran instruksi sebagai berikut: 1. Single Instruction, Single Data stream (SISD), merupakan suatu tipe komputer yang

mengolah sebuah aliran data secara serial. 2. Multiple Instruction, Single Data stream (MISD), suatu tipe komputer yang belum dapat

dikembangkan sampai saat ini. 3. Single Instruction, Multiple Data streams (SIMD), merupakan sebuah tipe komputer

yang menggunakan sebuah perintah untuk mengolah sejumlah aliran data dalam suatu satuan waktu.

4. Multiple Instructions, Multiple Data streams (MIMD). Tipe ini menggunakan sejumlah komputer dengan perintah-perintah yang berbeda untuk mengerjakan beberapa aliran data yang berbeda. Pengerjaan perintah yang terdistribusi ini yang merupakan dasar pemikiran pengembangan komputasi paralel.

Penerapan MIMD sebagai Cluster of Workstations (COWs) atau Network of Workstations (NOWs) pada saat ini sangat meluas, terutama penerapannya pada PC. Hal ini sangatlah memikat berbagai kalangan pemakai komputasi dengan kecepatan tinggi.

Terdapat beberapa model komputasi paralel, salah satu model yang umum digunakan adalah model master-slave. Pada model ini, satu prosesor bertindak sebagai master dan prosesor lain sebagai slave. Prosesor master bertugas untuk membaca, mendistribusikan, dan menerima data di samping melakukan komputasi, sedangkan prosesor slave hanya bertugas untuk melakukan komputasi. Berdasarkan pola komunikasi antar-prosesor, komputer paralel dapat dikelompokkan menjadi model memori bersama (shared memory model) dan model pertukaran pesan (message-passing model) [9]. Model memori bersama memiliki ruang pengalamatan bersama, sehingga komunikasi antar-prosesor terjadi secara implisit. Model pertukaran pesan memiliki memori yang terpisah untuk masing-masing prosesor, dan karena itu komunikasi antara prosesor merupak suatu operasi I/O yang eksplisit. 3.1 Kinerja Komputasi Paralel

Kinerja komputasi paralel dapat diukur menggunakan berbagai metrik, misalnya waktu eksekusi, speedup, efisiensi prosesor, efisiensi memori. Metrik yang paling sering digunakan adalah speedup [7]. Dalam paper ini digunakan speedup untuk mengukur kinerja sistem.

Speedup pada komputasi paralel didefinisikan sebagai perbandingan kecepatan eksekusi suatu program pada komputer paralel dengan kecepatan eksekusi program tersebut pada komputer sekuensial. Jika T1 adalah waktu eksekusi program paralel pada satu prosesor dan Tp waktu eksekusi program paralel pada p prosesor, maka secara matematis speedup dinyatakan dengan

pTTSp 1 (1).

Speedup ini dinamakan speedup relatif [10], [11]. Jika T1 adalah waktu eksekusi tercepat dari suatu program sekuensial, maka Persamaan (1) merepresentasikan speedup

Page 4: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Vol. 9 No. 17, Mei – Agustus 2010

14

mutlak [10], [11]. Karena penelitian ini bertujuan untuk menginvestigasi seberapa besar peningkatan kinerja yang dapat diperoleh dengan memanfaatkan komputasi paralel, maka speedup yang digunakan adalah speedup relatif. Untuk mempermudah pembahasan selanjutnya speedup relatif ini akan disebut sebagai speedup.

Besarnya speedup adalah pS p 1 . Speedup dikatakan ideal jika speedup meningkat sebanding dengan bertambahnya jumlah prosesor. Jadi jika digunakan p prosesor, speedup idealnya adalah p.

Pada penggunaan satu prosesor, waktu eksekusi sama dengan waktu komputasi, tetapi pada penggunaan p prosesor, waktu eksekusi merupakan penjumlahan waktu komputasi, waktu komunikasi antarprosesor, dan waktu overhead seperti yang dinyatakan pada Persamaan (2).

ovcommcompp TTTT (2).

Overhead pada program paralel bisa ditimbulkan oleh beberapa hal, sebagai contoh: 1. Prosesor yang tertunda kerjanya, misalnya karena data yang dibutuhkan prosesor itu

belum tersedia 2. Ada pekerjaan komputasi ekstra pada program paralel yang tidak diperlukan pada

program sekuensial. 3. Proses sinkronisasi. Waktu yang terpakai karena overhead ini tidak bisa dijabarkan secara matematis karena sangat bergantung pada karakteristik program. Perancangan program paralel harus diusahakan sedemikian rupa sehingga memperkecil waktu akibat overhead ini.

Jika waktu komputasi pada satu prosesor dinyatakan dengan t, maka waktu komputasi pada p prosesor akan t/p, dan speedup pada Persamaan (1) dapat ditulis sebagai

ovcommp TTpt

tS

(3).

Jadi untuk memperoleh speedup yang tinggi harus diusahakan agar prosesor melakukan komunikasi seminimal mungkin dan waktu yang terbuang karena overhead sekecil mungkin, misalnya dengan melakukan tumpang tindih antara komunikasi dan komputasi. 3.2 Parallel VIRTUAL MACHINE (PVM)

PVM merupakan penelitian yang dikembangkan oleh Oak Ridge National Laboratory (ORNL) pada tahun 1989. PVM adalah suatu perangkat lunak yang dapat digunakan untuk mengemulasikan suatu lingkup paralel. Perangkat lunak ini dapat digunakan dalam sistem yang homogen ataupun heterogen.

Sistem PVM terdiri dari dua bagian, yaitu daemon yang terletak pada semua komputer dan membentuk suatu lingkup kerja maya (virtual), dan kumpulan pustaka yang dibutuhkan untuk melakukan kerja sama antara proses. Pustaka ini disediakan dalam bahasa pemrograman C dan Fortran.

PVM memungkinkan pembentukan sekumpulan proses yang tidak tergantung pada jumlah prosesor yang digunakan. Masing-masing proses dalam PVM memiliki suatu identifikasi yang unik. Setiap proses akan dipetakan pada prosesor secara otomatis kecuali jika diprogram secara eksplisit oleh pengguna.

Pemrograman dengan PVM umumnya menggunakan model master-slave, di mana pada awalnya hanya ada satu proses yang berjalan yaitu proses master, dan kemudian proses master ini akan ”menciptakan” (spawn) proses slave. Komunikasi antara

Page 5: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Kinerja Paralel Pengurutan...

15

proses master dan proses slave ini dilakukan dengan cara pengiriman pesan (message-passing) [12].

4. PERANCANGAN SISTEM

Prosesor master dan prosesor slave terhubung melalui sebuah switch. Pertama-tama prosesor master akan membaca dan mendistribusikan data ke prosesor slave dan setelah selesai melakukan pengurutan data, prosesor master akan mengumpulkan data yang sudah selesai diurutkan oleh prosesor slave. Prosesor slave akan melakukan pengurutan data yang diterima dari prosesor master dan kemudian mengirimkan kembali data yang sudah terurut ke prosesor master untuk dibentuk suatu deretan data yang terurut. Komunikasi di sini hanya terjadi antara prosesor master dan prosesor slave dan tidak terjadi antara sesama prosesor slave. Gambar 1 menunjukkan konfigurasi sistem komputer paralel dengan dua, tiga, dan empat prosesor. Prosesor master dinyatakan dengan notasi p0, sedangkan pj dengan nilai 1 j 3 menyatakan prosesor slave.

(a) Dua prosesor (b) Tiga prosesor (c) Empat prosesor

Gambar 1. Konfigurasi prosesor pada sistem paralel

Beban komputasi pada masing-masing prosesor, baik untuk pengurutan dengan metode

Shellsort ataupun metode Quicksort diusahakan sedapat mungkin berimbang, agar waktu komputasi yang dibutuhkan oleh setiap prosesor untuk melakukan pengurutan akan kurang lebih sama. 4.1 Perancangan Program Master

Prosesor master pertama-tama memeriksa banyak prosesor yang akan digunakan. Jika prosesor yang digunakan hanya satu, maka prosesor master akan melakukan pembacaan data dan kemudian melakukan pengurutan data. Jika jumlah prosesor yang digunakan ada dua atau lebih, maka pertama-tama prosesor master akan melakukan spawning sebanyak prosesor slave yang digunakan. Setelah itu prosesor master akan mengirimkan data ke prosesor slave agar prosesor slave dapat mempersiapkan besar memori yang harus dialokasikan untuk data itu. Setelah itu prosesor master mempartisi data yang akan diurutkan sesuai dengan jumlah prosesor yang digunakan, dan mengirimkan data ke masing-masing prosesor slave. Langkah selanjutnya prosesor master mengurutkan data, dan kemudian menerima data yang sudah diurutkan dari masing-masing prosesor slave untuk digabungkan menjadi suatu deret terurut.

4.2 Perancangan program slave Pertama-tama prosesor slave akan mengalokasikan memori sesudah memperoleh

informasi dari prosesor master. Sesudah itu prosesor slave menunggu kiriman data yang

p0

p1 p2 p3

p0

p1 p2

p0

p1

Page 6: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Vol. 9 No. 17, Mei – Agustus 2010

16

akan diurutkan dari prosesor master. Setelah data diterima, prosesor slave akan melakukan pengurutan dan kemudian mengirimkan data yang sudah terurut ke prosesor master.

5. HASIL PENGUJIAN SISTEM Pengujian sistem dilakukan dengan menggunakan satu, dua, tiga, dan empat

komputer yang terhubung dengan suatu switch. Keempat komputer itu memiliki spesifikasi yang sama, yaitu prosesor Pentium 4.3 GHz dengan memori sebesar 512 Kbyte. Waktu eksekusi pengurutan data menggunakan metode Shellsort ditunjukkan pada Tabel 1.

Tabel 1 Waktu eksekusi pengurutan data dengan metode Shellsort

Waktu pengurutan (detik) Ukuran data 1 p 2 p 3p 4p

1 x105 11,6 6,1 4,1 3,1

2 x105 51,6 26,6 17,8 13,3

3 x105 113,0 57,0 38,6 28,9

4 x105 239,0 119,5 80,7 60,8

5 x105 429,0 214,5 143,0 107,3

Dari Tabel 1 dapat dilihat bahwa waktu eksekusi menurun dengan meningkatnya jumlah prosesor. Dari hasil pengukuran pada Tabel 1 dapat dihitung speedup dengan menggunakan Persamaan (1). Speedup ini ditunjukkan pada Tabel 2 dan diilustrasikan pada Gambar 2.

Tabel 2 Speedup untuk pengurutan data dengan metode Shellsort

Speedup Ukuran data 2 p 3p 4p

1 x105 1.90 2.83 3.74

2 x105 1.94 2.90 3.88

3 x105 1.98 2.93 3.91

4 x105 2.00 2.96 3.93

5 x105 2.00 3.00 4.00

Dari Tabel 2 tampak speedup meningkat seiring dengan peningkatan jumlah prosesor. Untuk data besar bahkan diperoleh speedup ideal. Hal tersebut juga dicerminkan dari Gambar 2.

Page 7: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Kinerja Paralel Pengurutan...

17

Speedup untuk Shell sort

00.5

11.5

22.5

33.5

44.5

0.E+00 2.E+05 4.E+05 6.E+05

Ukuran dataSp

eedu

p Sp2

Sp3

Sp4

Gambar 2. Speedup untuk pengurutan data dengan metode Shellsort

Waktu eksekusi pengurutan data menggunakan metode Quicksort ditunjukkan pada

Tabel 3.

Tabel 3. Waktu eksekusi pengurutan data dengan metode Quicksort

Waktu pengurutan (detik) Ukuran data 1 p 2 p 3p 4p

1 x105 0,27 0,45 0,53 0,68

2 x105 0,55 0,79 0,91 1,10

3 x105 0,80 1,08 1,22 1,33

4 x105 1,10 1,40 1,57 1,63

5 x105 1,36 1,70 1,93 1,95

Dari tabel ini tampak bahwa waktu eksekusi pengurutan data dengan metode Quicksort meningkat untuk proses pengurutan menggunakan dua, tiga, dan empat prosesor. Hal ini dikarenakan besarnya overhead pada komputasi paralel dengan metode Quicksort, misalnya waktu yang dibutuhkan untuk penggabungan data dan sinkronisasi. Dari hasil pengukuran pada Tabel 3 kemudian dihitung speedup dengan menggunakan Persamaan (1). Hasil perhitungan menunjukkan terjadi suatu penurunan kinerja seperti yang ditunjukkan pada Tabel 4 dan diilustrasikan pada Gambar 2.

Tabel 4. Speedup untuk pengurutan data dengan metode Quicksort

Speedup Ukuran data 2 p 3p 4p

1 x105 0,60 0,51 0,40

2 x105 0,70 0,60 0,50

3 x105 0,74 0,66 0,60

4 x105 0,79 0,70 0,67

5 x105 0,80 0,70 0,70

Page 8: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Vol. 9 No. 17, Mei – Agustus 2010

18

Speedup untuk Quick sort

00.10.20.30.4

0.50.60.70.80.9

0.E+00 2.E+05 4.E+05 6.E+05

Ukuran data

Spee

dup Sp2

Sp3

Sp4

Gambar 2. Speedup untuk pengurutan data dengan metode Quicksort

6. KESIMPULAN

Dari hasil pengujian tampak bahwa kinerja pengurutan data menggunakan lebih dari satu prosesor dengan metode Shellsort menunjukkan suatu peningkatan yang ditunjukkan dengan speedup 1pS . Bahkan untuk data yang berjumlah besar tercapai suatu speedup ideal. Sebaliknya, pengurutan data dengan metode Quicksort paralel malah menunjukkan penurunan kinerja. REFERENSI

[1] Sorting Algorithm. 2005. Quick Sort (http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/quick/quicken.htm), diakses 11 Juli 2007.

[2] Weiss, M.A., “Data Structures and Algorithm Analysis in C”, CA: Benjamin/Cummings Publishing Inc., 1993.

[3] Sorting Algorithm. ShellSort (http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/shell/shellen/htm), diakses tanggal 11 Juli 2007

[4] Celko, J., “Some Tips for QuickSort”, The C Users Journal, 1991. [5] Nyhoff, Larry & Sanford, Leestma, “Advanced Programming in Pascal with Data

Structures”, NY: MacMillan Publishing Company, 1989. [6] Gill, S., “Parallel Programming”, The Computer Journal 1, 1958. [7] Wilkinson, B. And Allen, M., “Parallel Programming: Techniques and

Applications using Networked Workstations and Parallel Computers”, NJ: Prentice-Hall, Inc., 1999.

[8] Flynn. M. J., And Rudd, K. W., “Parallel architectures”, ACM Computing Surveys, Vol. 28 No. 1, 1996.

[9] Culler, D.E., Singh, J.P. and Gupta, A., “Parallel Computer Architecture: A Hardware and Software Approach”, CA: Morgan Kaufmann Publishers, Inc., 1999.

[10] Foster, I., “Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering”, NY: Addison-Wesley Publishing Company, 1995.

[11] Freeman, T.L. & Phillips, C., “Parallel Numerical Algorithms”, NJ: Prentice-Hall, Inc., 1992.

Page 9: Kinerja Paralel Pengurutan Data Menggunakan Metode Shellsort Dan Quicksort

Kinerja Paralel Pengurutan...

19

[12] Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., and Sunderam, V. “PVM: Parallel Virtual Machine - A Users’ Guide and Tutorial for Networked Parallel Computing”, Massachusetts: MIT Press, 1994.