BAB II DASAR TEORI. 2.1 Pergerakan Telepon Seluler Sebagai Sumber Data

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB II DASAR TEORI. 2.1 Pergerakan Telepon Seluler Sebagai Sumber Data"

Transkripsi

1 II-1 BAB II DASAR TEORI Bab ini memuat beberapa dasar teori yang mendukung dalam pengerjaan Tugas Akhir, serta penjelasan mengenai berbagai metode yang digunakan untuk menyelesaikan permasalahan dalam Tugas Akhir. 2.1 Pergerakan Telepon Seluler Sebagai Sumber Data Umumnya, pengenalan kemacetan otomatis yang terjadi di jalan raya dapat dilakukan menggunakan data kecepatan pergerakan kendaraan. Salah satu metode untuk mendapatkannya adalah dengan menggunakan sensor yang dipasang di segenap penjuru kota. Dengan asumsi bahwa dalam setiap kendaraan terdapat minimal sebuah telepon seluler, maka dalam Tugas Akhir ini sendiri diusulkan penggunaan pergerakan telepon seluler sebagai sumber data. Alasan pemilihan pergerakan telepon seluler sebagai sumber data dapat dilihat pada Tabel II-1. Tabel II-1: Perbedaan pendeteksian kecepatan kendaraan dengan sensor dan telepon seluler Sensor Kecepatan Telepon Seluler Kecepatan kendaraan adalah kecepatan sesaat. Tidak dapat mengidentifikasi kecepatan kendaraan individual. Untuk dapat mengidentifikasi kecepatan individual kendaraan, dibutuhkan sensor tambahan. Membutuhkan pembangunan infrastruktur baru di segenap penjuru kota. Akurasi posisi dan kecepatan tinggi. Kecepatan kendaraan adalah kecepatan rata-rata antara t 1 dan t 0. Dapat mengidentifikasi kecepatan kendaraan individual dengan cara melihat ID dari telepon seluler. Dapat menggunakan infrastruktur telepon seluler yang dimiliki operator telepon seluler. Akurasi posisi tergantung metode yang digunakan, untuk signal-based dapat mencapai 10 m, untuk LBS dapat mencapai 1 m. Akurasi kecepatan tinggi. Pergerakan dan posisi setiap telepon seluler direpresentasikan sebagai sebuah vektor. Sebuah data telepon seluler memiliki enam properti, yakni: 1. Nomor telepon seluler (ID), dilambangkan dengan id. 2. Timestamp, dilambangkan dengan t(i).

2 3. Latitude pada timestamp ini, dilambangkan dengan x t(i). 4. Longitude pada timestamp ini, dilambangkan dengan y t(i). 5. Arah kecepatan terhadap Utara, dilambangkan dengan θ t(i). Data ini diambil dengan rumus: θ t(i) = tan 1 y t i y t(i 1) x t(i) x t(i 1) 6. Besar kecepatan, dilambangkan dengan v t(i). Data ini diambil dengan rumus kecepatan rata-rata: v t i = (x t(i) x t(i 1) ) 2 + (y t(i) y t(i 1) ) 2 t i t(i 1) 2.2 Teori Graf Dalam Tugas Akhir ini, Teori Graf digunakan untuk merepresentasikan jalanjalan yang terdapat dalam sebuah kota. Graf adalah sebuah struktur data yang terdiri atas simpul-simpul (vertex) dan sisi-sisi (edge). Sebuah sisi menghubungkan dua buah simpul [MUN06] Jenis Graf Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung pada sudut pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya sisi ganda atau gelang, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi. Penjelasannya pada Tabel II-2. Tabel II-2: Jenis graf Sudut Pandang Pengelompokan Jenis Graf Keterangan Ada atau tidaknya sisi ganda Graf sederhana (simple graph) Graf tak-sederhana (unsimple graph) Tidak mengandung sisi ganda Mengandung sisi ganda Jumlah simpul Graf berhingga Jumlah simpul berhingga Graf tak-berhingga Jumlah simpul tidak berhingga Orientasi arah pada sisi Graf tak-berarah Sisi tidak memiliki orientasi arah Graf berarah Sisi memiliki orientasi arah II-2

3 Graf yang digunakan dalam Tugas Akhir ini adalah graf tak-sederhana, berhingga, dan berarah Implementasi Graf Dalam memori komputer, graf dapat diimplementasikan dengan struktur data sebagai berikut: 1. adjacency list 2. adjacency matrix 3. edge list Dalam Tugas Akhir ini, representasi yang dipilih adalah adjacency list. Bahasa yang digunakan untuk merepresentasikan graf dalam sebuah file adalah GraphViz DOT. Sedangkan library graf yang dipakai untuk membaca bahasa GraphViz dan membangun reprsentasi graf dalam memori komputer adalah Boost Graph Library (BGL). 2.3 Stream Programming Stream programming adalah sebuah teknik pemrograman konkuren yang dapat digunakan untuk melakukan komputasi paralel. Dalam stream programming, data diorganisasi menjadi sekumpulan stream, dan sebuah program yang disebut kernel diaplikasikan pada setiap elemen stream [BUC06]. Dari Gambar II-1, dapat dilihat bahwa stream programming menggunakan paradigma Single Instruction, Multiple Data (SIMD). Artinya, program yang sama dieksekusi pada sekumpulan data secara paralel. Salah satu perangkat keras yang dapat digunakan untuk melakukan stream programming adalah Graphic Processing Unit (GPU). GPU sangat cocok untuk diprogram dengan teknik ini, karena GPU dirancang dari awal untuk melakukan proses rendering objek 3D, dimana proses tersebut membutuhkan hardware yang dirancang secara khusus untuk memproses data secara SIMD. Untuk mengimplementasikan stream programming pada GPU, ada banyak framework II-3

4 yang dapat dipakai. Beberapa framework yang dapat dipakai dapat dilihat pada Tabel II-3: Tabel II-3: Framework untuk stream programming pada GPU Nama / Istilah Framework Direct Programming BrookGPU Compute Unified Device Architecture (CUDA) Interface Tipe Isi Direct3D 9 OpenGL 1.5 Direct3D9 OpenGL 1.5 nvidia G80 Series Driver API Bahasa Ekstensi Bahasa C C++ Language Cg / HLSL Brook Language Brook Compiler Brook Runtime Nvcc Compiler CUDA API CUDA Toolkit CUDA Basic Linear Algebra System CUDA Fast Fourier Transform - Versi Terbaru 0.3 Beta 1.0 Parallel Programming Single Instruction Multiple Data (SIMD) Multiple Instruction Multiple Data (MIMD) Stream programming Concurrent programming On GPU (GPGPU) On Cell Broadband Engine Direct (via OpenGL) ATI CTM nvidia CUDA Gambar II-1: Stream programming dalam taksonomi parallel programming II-4

5 Pada Tugas Akhir ini, stream programming dilakukan di atas sebuah GPU nvidia GeForce 8800GTS 320MB, yang merupakan GPU jenis G80, sedangkan framework yang dipilih adalah Compute Unified Device Architecture (CUDA). CUDA dipilih karena memiliki robustness yang tinggi (menggunakan ekstensi bahasa C) dan tingkat kesulitannya di antara framework yang lain tidak begitu rumit untuk diimplementasikan dalam Tugas Akhir ini Kemampuan Komputasi GPU Graphic Processing Unit (GPU) adalah salah satu peripheral komputer yang bertugas untuk melakukan proses rendering objek 3D ke layar. Karena rendering merupakan proses yang sangat paralel, maka evolusi arsitektur GPU pun mengikutinya: GPU berevolusi menjadi sebuah multiprosesor yang mampu menjalankan sebuah tugas secara paralel. GPU dapat disebut unit komputasi yang terpisah dari CPU karena GPU memiliki prosesor dan memori sendiri. GPU memiliki jumlah Arithmetic Logical Unit (ALU) yang jauh lebih besar dibandingkan komputer biasa. Oleh karena itu, kemampuan GPU dalam mengolah data yang besar dapat diandalkan. Pada Gambar II-2, dapat dilihat bahwa pertumbuhan kemampuan GPU jika diukur dengan Floating Point Operations per Second (FLOPS) jauh meninggalkan CPU, bahkan meninggalkan hukum Moore. Gambar II-2: Peningkatan kecepatan GPU II-5

6 2.4 Compute Unified Device Architecture (CUDA) CUDA adalah sebuah framework yang dapat digunakan untuk melakukan stream programming pada GPU nvidia seri G8x. Saat ini, CUDA sudah memasuki versi 1.0. GPU GeForce 8800GTS yang digunakan dalam Tugas Akhir ini merupakan anggota seri nvidia G80. Prosesor yang ada dalam GeForce 8800GTS berjumlah 96 buah [NVI05]. Prosesor tersebut dinamakan stream processor. Stream processor tersebut dikelompokkan menjadi 12 buah multiprocessor yang masing-masing berisi 8 stream processor. Setiap stream processor akan menjalankan sebuah thread dalam satu waktu. Gambar II-3 menerangkan tentang hirarki memori dalam CUDA. Setiap stream processor, yang dianalogikan dengan thread(x,y) dikelompokkan dalam block-block. Setiap block memiliki memori bersama yang dinamakan shared memory. Shared memory adalah memori berukuran kecil berkecepatan tinggi yang hanya dapat diakses stream processor dalam block yang sama. Bandwidth antara stream processor dan shared memory sangat besar, mencapai 70,7 GB/s. Ada lagi jenis memory lain yang bernama device memory. Memori ini dapat diakses oleh seluruh multiprocessor, akan tetapi dengan bandwidth yang lebih lambat. Adapun memori komputer diistilahkan dengan host memory. Implementasi konsep stream programming pada CUDA adalah sebagai berikut: a. Stream: Dalam CUDA, stream disimpan dalam sebuah memori milik GPU yang bernama global memory. Stream diorganisasi berdasarkan jumlah thread yang akan mengaksesnya secara paralel. Setelah itu, thread tersebut harus diorganisasikan menjadi thread block. b. Kernel: Dalam CUDA, kernel tetap merupakan sebuah program yang beroperasi pada data yang terdapat pada global memory. II-6

7 Gambar II-3: Hirarki memori pada CUDA Langkah-langkah umum untuk melakukan komputasi pada CUDA adalah sebagai berikut: 1. Tentukan jumlah thread yang akan beroperasi pada stream. Kemudian tentukan jumlah thread per block dan jumlah thread block yang efisien pada hardware CUDA. Jumlah tersebut dinamakan execution configuration. Contoh execution configuration dapat dilihat pada Gambar II-4. Pada gambar itu, sebuah kernel dieksekusi dengan blok berukuran 2x3, dimana setiap blok terdiri atas 5x3 thread. 2. Pindahkan semua data dari host memory ke device memory. Ini harus dilakukan karena GPU tidak bisa membaca host memory. 3. Lakukan komputasi pada device memory beserta execution configurationnya. Data dalam device memory ini yang akan menjadi stream. 4. Pindahkan hasil komputasi pada device memory ke host memory. II-7

8 Gambar II-4: Thread dan thread block Contoh Komputasi pada CUDA: Parallel Scan Agar konsep CUDA dapat dimengerti, maka lebih baik disertakan contoh kasus yang menggunakan CUDA sebagai solusinya. Dalam sub-bab ini akan dijelaskan algoritma parallel prefix sum sebagai contoh penggunaan CUDA. Parallel prefix sum, juga dikenal sebagai parallel scan, adalah sebuah building block untuk banyak algoritma paralel seperti sorting dan pembuatan struktur data. Di sini akan dicontohkan implementasi parallel scan secara efisien pada CUDA beserta perbandingannya dengan metode sekuensial biasa. Contoh ini juga dimaksudkan untuk menjelaskan konsep pada CUDA yakni: 1. Thread 2. Thread block II-8

9 3. Warp 4. Shared memory 5. Memory banks 6. Memory bank conflict Definisi All-Prefix-Sum Operasi all-prefix-sum didefinisikan sebagai berikut: Sebuah operasi all-prefixsum membutuhkan sebuah operator biner asosiatif dan sebuah array dari elemen [a 0, a 1,, a n ] dan mengembalikan array [a 0, (a 0 a 1 ),, (a 0 a 1 a n )] Contoh: Jika adalah penambahan, maka sebuah operasi all-prefix-sum pada array [ ] akan menghasilkan [ ] Ada banyak kegunaan all-prefix-sum, meliputi tetapi tidak terbatas padapengurutan (sorting), analisis leksikal, perbandingan string, evaluasi polinom, pemampatan stream, membuat histogram, dan struktur data (graf, pohon, dll) secara paralel [HAR07] Inclusive Scan dan Exclusive Scan All-prefix-sum pada sebuah array sering disebut scan. Terminologi ini akan dipakai sampai akhir bab 2. Seperti yang dilihat dari contoh di atas, sebuah scan pada array akan menghasilkan array baru dimana setiap elemen j adalah jumlah dari elemen sampai dan termasuk j. Ini disebut inclusive scan. Ada pula jenis scan lain dimana setiap elemen j pada array hasil berisi jumlah dari seluruh elemen sebelumnya, namun tidak termasuk j itu sendiri. Operasi ini biasa disebut exclusive scan (atau prescan). II-9

10 Definisi: Sebuah operasi exclusive scan membutuhkan operator asosiatif biner dengan identitas I, dan sebuah array n-elemen dan mengembalikan array [a 0, a 1,, a n ] [I, a 0, (a 0 a 1 ),, (a 0 a 1 a n-2 )] Contoh: jika adalah sebuah penjumlahan, maka exclusive scan pada array akan menghasilkan [ ] [ ] Sebuah array exclusive scan bisa dibangkitkan dengan menggeser array inclusive scan ke kanan sebanyak 1 elemen kemudian menyisipkan identitas. Dengan hal yang sama, sebuah array inclusive scan bisa dibangkitkan dengan menggeser array exclusive scan ke kiri sebanyak 1 elemen kemudian menyisipkan elemen terakhir array hasil dan elemen terakhir array input pada akhir array hasil. Contoh komputasi CUDA yang akan dijelaskan akan memakai exclusive scan Scan Sekuensial Pengimplementasian versi sekuensial dari scan (contohnya yang berjalan pada thread tunggal pada 1 CPU) adalah trivial. Cukup dengan melakukan looping pada setiap elemen array-input dan menjumlahkan nilai dari elemen array-input yang sebelumnya dengan hasil penjumlahan yang telah dihitung untuk elemen array-output, dan menulis hasilnya pada elemen array-output yang sedang diiterasi. void scan (float *output, float *input, int length) { output[0] = 0; // karena ini adalah prescan, bukan scan for (int j = 1; j < length; j++) { output[j] = input[j-1] + output [j-1]; } } Listing Code II-1: Algoritma sekuensial scan II-10

11 Listing Code II-1 menjelaskan penjumlahan sebanyak n-kali untuk array n- elemen; ini adalah jumlah minimum penjumlahan yang diperlukan untuk menghasilkan array-output. Ketika versi paralel dibuat, algoritmanya harus workefficient. Artinya, algoritma ini tidak boleh melakukan lebih banyak penjumlahan dibandingkan versi sekuensialnya. Atau dengan kata lain, kedua implementasi harus memiliki kompleksitas yang paling tidak sama, yakni O(n) Naïve Parallel Scan for d := 1 to log 2 n do forall k in parallel do if k >= 2 d then x[k] := x[k-2 d-1 ] + x[k] Algoritma II-1: Algoritma paralel scan yang tidak efisien Pseudocode pada Algoritma II-1 menunjukkan implementasi naïve parallel scan. Sedangkan ilustrasinya dapat dilihat pada Gambar II-5. Permasalahan pada Algoritma II-1 akan terlihat apabila work-complexity-nya diperiksa. Algoritma ini melakukan log 2 n d=1 n 2 d 1 = O (n log 2 n) operasi penjumlahan, sedangkan algoritma sekuensial melakukan O(n) penjumlahan. Faktor log 2 n dapat berpengaruh besar pada performa komputasi. Dalam kasus 1 juta elemen, perbedaan performa antara naïve parallel scan dengan algoritma yang workefficient dapat memiliki faktor 20. Algoritma II-1 mengasumsikan bahwa ada banyak prosesor sejumlah elemen data. Pada sebuah GPU yang menjalankan CUDA, hal ini tidak selalu berlaku. Keyword forall akan dipecah secara otomatis menjadi batch paralel kecil (dinamakan warps) yang dieksekusi secara sekuensial pada sebuah multiprocessor. Sebuah GPU G80 mengeksekusi sebuah warp yang terdiri atas 32 thread secara paralel. Karena tidak semua thread berjalan secara bersamaan untuk array yang lebih besar daripada ukuran warp, algoritma di atas tidak akan berjalan sebab ia menulis hasil scan pada array-input. Hasil dari warp yang satu akan dioverwrite oleh thread pada warp yang lain. Untuk menyelesaikan masalah ini, sebuah array double-buffer dibutuhkan untuk melakukan scan. Array temporer (temp[2][n]) dibutuhkan untuk melakukan ini. Pseudocode untuk algoritma ini diberikan pada Algoritma II-2, dan kode II-11

12 CUDA C untuk naïve scan diberikan pada Listing Code II-2. Perlu diperhatikan bahwa kode ini akan berjalan hanya pada thread block tunggal di GPU, sehingga ukuran array yang dapat diproses terbatas (hanya 512 elemen pada GPU G80). Ekstensi algoritma untuk array berukuran sangat besar akan dibahas selanjutnya. for d := 1 to log 2 n do forall k in parallel do if k >= 2 d then x[out][k] := x[in][k-2 d-1 ] + x[in][k] else x[out][k] := x[in][k] swap(in, out) Algoritma II-2: Versi double buffer dari parallel scan Gambar II-5: Melakukan scan pada array 8 elemen dengan algoritma naive parallel scan global void scan(float *g_odata, float *g_idata, int n) { extern shared float temp[]; // dialokasi saat invokasi int thid = threadidx.x; int pout = 0, pin = 1; // load inputs into shared memory // this is exclusive scan, so shift right by one and set the first elmt to 0 temp[pout*n + thid] = (thid > 0)? g_idata[thid-1] : 0; syncthreads(); for (int offset = 1; offset < n; offset *= 2) { pout = 1 - pout; // swap index double buffer II-12

13 pin = 1 - pout; offset]; if (thid >= offset) temp[pout*n + thid] += temp[pin*n + thid - else temp[pout*n + thid] = temp[pin*n + thid]; } syncthreads(); } g_odata[thid] = temp[pout*n+thid]; // write output Listing Code II-2: Kode CUDA C untuk algoritma naïve scan. Versi ini hanya dapat menangani array yang besar maksimumnya sama dengan jumlah maksimum thread dalam sebuah thread block Algoritma Parallel Scan yang Work-Efficient Dalam sub-bab ini, akan dijelaskan sebuah algoritma scan yang work-efficient, yang menghindari faktor ekstra log 2 n yang dihasilkan oleh naïve scan pada subbab sebelumnya. Untuk melakukan ini, akan digunakan sebuah algorithmicpattern yang sering digunakan dalam komputasi paralel: balanced-tree. Idenya adalah membangun balanced binary tree pada input data dan menyapunya ke dan dari akar untuk menghitung prefix sum. Dalam algoritma scan yang work-efficient ini, dua buah fase operasi dilakukan pada array di shared memory, yakni: fase reduksi (juga disebut fase up-sweep) dan fase down-sweep. Dalam fase reduksi, traversal dilakukan pada pohon dari daun untuk menghitung jumlah parsial pada node internal dalam pohon, seperti yang ditunjukkan pada Gambar II-6. Ini dikenal juga dengan nama reduksi paralel, karena sesudah fase ini node root (node terakhir pada array) akan berisi hasil dari seluruh node pada array. Pseudocode untuk fase reduksi diberikan pada Algoritma II-3. Dalam fase down-sweep, traversal balik dilakukan pada pohon menggunakan hasil penjumlahan parsial untuk membangun scan pada array dengan menggunakan hasil penjumlahan parsial pada fase reduksi. Fase down-sweep ditunjukkan pada Gambar II-7 dan pseudocode ditunjukkan pada Algoritma II-4. Karena ini adalah exclusive scan, di antara dua fase elemen terakhir diisi dengan nol. Angka nol ini terpropagasi balik ke elemen pertama array dalam fase down-sweep. Kode CUDA C untuk algoritma selengkapnya diberikan dalam Listing Code II-3. Seperti kode II-13

14 naïve scan pada sub-bab sebelumnya, kode pada Listing Code II-3 akan berjalan pada thread block tunggal. Karena ia memproses dua elemen array per thread, maka ukuran array maksimal pada kode ini adalah 1024 elemen pada G80. Scan dari array berukuran besar akan dijelaskan pada sub bab berikutnya. Algoritma scan ini melakukan O(n) operasi (yakni 2 * (n-1) penjumlahan dan n-1 swap); sehingga algoritma ini bekerja secara efisien pada array berukuran besar daripada algoritma naïve pada sub bab sebelumnya. Meskipun begitu, efisiensi algoritma belumlah cukup: algoritma tersebut harus berjalan pada hardware secara efisien. Jika operasi scan ini diperiksa pada GPU yang menjalankan CUDA, akan terlihat bahwa algoritma ini mengalami banyak konflik shared memory bank (memory bank conflict). Hal ini mengurangi performa pada setiap akses shared memory, dan berefek negatif secara signifikan pada performa keseluruhan. Dalam sub-bab berikutnya akan dibahas sedikit modifikasi sederhana yang dapat dilakukan untuk menghitung alamat memori pada GPU untuk mengembalikan banyak performa yang hilang. for d := 0 to log 2 (n-1) do for k from 0 to n-1 by 2 d+1 in parallel do x[k+d 2+1-1] = x[k+2 d -1] + x[k+2 d+1-1] Algoritma II-3: fase reduksi (up-sweep) dari algoritma scan yang work-efficient Gambar II-6: Ilustrasi dari fase reduksi (up-sweep) algoritma scan yang efisien II-14

15 x[n-1] := 0 for d := log 2 n down to 0 do for k from 0 to n-1 by 2 d+1 in parallel do t := x[k+2 d -1] x[k+2 d -1] := x[k+2 d+1-1] x[k+2 d+1-1] := t + x[k+2 d+1-1] Algoritma II-4: Fase down-sweep dari algoritma parallel-sum yang work-efficient Gambar II-7: Ilustrasi fase down-sweep dari algoritma parallel-sum yang work-efficient. Perhatikan bahwa langkah pertama me-nol-kan elemen terakhir array global void prescan(float *g_odata, float *g_idata, int n) { extern shared float temp[]; // dialokasi saat invokasi int thid = threadidx.x; int offset = 1; // Blok A temp[2*thid] = g_idata[2*thid]; memory temp[2*thid+1] = g_idata[2*thid+1]; // load input to shared for (int d = n>>1; d > 0; d >>= 1) // build sum in place up the tree { syncthreads(); if (thid < d) II-15

16 { } // Blok B int ai = offset*(2*thid+1)-1; int bi = offset*(t*thid+2)-1; temp[bi] += temp[ai]; } offset *= 2; // Blok C if (thid == 0) temp[n-1] = 0; // set last element = 0 for (int d = 1; d < n; d *= 2) { offset >= 1; syncthreads(); if (thid < d) { // Blok D int ai = offset*(2*thid+1)-1; int bi = offset*(2*thid+2)-1; } } float t = temp[ai]; temp[ai] = temp[bi]; temp[bi] += t; syncthreads(); // Blok E g_odata[2*thid] = temp[2*thid]; shared memory g_odata[2*thid+1] = temp[2*thid+1]; // write result to } Listing Code II-3: Kode CUDA untuk algoritma parallel scan yang work-efficient Menghindari Konflik Bank Algoritma scan pada sub-bab sebelumnya memiliki kompleksitas yang kira-kira sama dengan algoritma sekuensial. Akan tetapi, algoritma ini masih belum efisien pada nvidia CUDA karena pola akses memorinya. Seperti yang dijelaskan pada [NVI07], shared memory yang dimanfaatkan oleh algoritma scan ini terdiri atas banyak bank. Ketika banyak thread dalam satu warp mengakses bank yang sama, bank-conflict terjadi, kecuali seluruh thread dalam warp mengakses sebuah II-16

17 alamat dalam 32-bit word yang sama. Jumlah thread yang mengakses sebuah bank dinamakan bank conflict degree. Konflik bank menimbulkan serialisasi dari akses bersamaan pada sebuah bank memory, sehingga sebuah akses shared memory dengan derajat n membutuhkan n kali cycle daripada sebuah akses tanpa konflik. Pada G80, yang mengeksekusi 16 thread secara paralel pada setengah warp, kasus terburuk adalah konflik berderajat 16. Algoritma pohon biner seperti algoritma scan yang work-efficient menggandakan stride antara memori akses pada setiap level dalam pohon, sehingga menggandakan pula jumlah thread yang mengakses bank yang sama. Untuk pohon yang dalam, ketika algoritma ini mencapai level tengah pohon, derajat konflik bank akan meningkat, dan menurun lagi di dekat akar ketika jumlah thread yang aktif berkurang (karena statement if pada Listing Code II-3). Sebagai contoh, bila scan dilakukan pada array 512-elemen, pembacaan dan penulisan shared memory dalam inner loop dari Listing Code II-3 akan menimbulkan konflik bank berderajat 16. Ini akan menimbulkan efek yang signifikan pada performa komputasi. Konflik bank dapat dihindari apabila array memory shared diperhatikan. Sebagai contoh, dalam konvolusi, ini hanya masalah bagaimana melakukan padding pada array 2D dengan sebuah ukuran yang tidak habis dibagi oleh jumlah shared memory bank. Scan, karena pendekatannya yang memakai balanced-tree, memerlukan pendekatan yang agak rumit. Konflik bank pada scan dapat dihindari dengan menambahkan padding yang besarnya bervariasi tergantung pada index memory array yang akan dihitung. Secara spesifik, sebuah nilai ditambahkan pada index, yakni nilai dari index tersebut ditambah jumlah shared memory bank. Hal ini ditunjukkan pada Gambar II-8. Dengan melihat pada Listing Code II-3, blok yang disoroti dari A sampai E dimodifikasi. Untuk memudahkan perubahan kode, maka didefinisikan sebuah makro CONFLICT_FREE_OFFSET, ditunjukkan pada Listing Code II-4. II-17

18 #define NUM_BANKS 16 #define LOG_NUM_BANKS 4 #ifdef ZERO_BANK_CONFLICTS #define CONFLICT_FREE_OFFSET(n) \ ((n) >> NUM_BANKS + (n) >> (2 * LOG_NUM_BANKS)) #else #define CONFLICT_FREE_OFFSET(n) ((n) >> LOG_NUM_BANKS) #endif Listing Code II-4: Macro CONFLICT_FREE_OFFSET Blok A sampai E pada Listing Code II-3 harus dimodifikasi menggunakan macro ini untuk menghindari konflik bank. Dua perubahan harus dilakukan pada blok A. Setiap thread me-load 2 elemen array dari device array g_idata ke shared array temp. Dalam kode yang asli, setiap thread me-load 2 elemen berdekatan, menghasilkan indexing yang berselang-seling pada shared memory array, menimbulkan konflik bank berderajat dua. Dengan me-load dua elemen dari setengah bagian array yang berlainan, sebuah cara untuk menghindari konflik bank telah dilakukan. Juga, untuk menghindari konflik bank saat melakukan traversal pohon, sebuah padding harus ditambahkan pada shared memory array setiap NUM_BANKS(16) elemen. Hal ini dilakukan dengan menggunakan macro pada Listing Code II-4 seperti yang terlihat pada kode blok A sampai E. Perhatikan bahwa offset disimpan pada index shared memory, sehingga dapat digunakan lagi ketika scan berakhir, yakni ketika menulis hasil scan ke output-array g_odata pada blok E. Blok A: int ai = thid; int bi = thid + (n/2); int bankoffseta = CONFLICT_FREE_OFFSET(ai); int bankoffsetb = CONFLICT_FREE_OFFSET(bi); temp[ai + bankoffseta] = g_idata[ai]; temp[bi + bankoffsetb] = g_idata[bi]; Listing Code II-5: Perubahan pada blok A II-18

19 Gambar II-8: Padding sederhana diterapkan pada alamat memori dapat menghilangkan konflik bank berderajat tinggi pada algoritma berbasis tree seperti scan. Diagram bagian atas menunjukkan pengalamatan tanpa padding dan konflik bank yang dihasilkan. Bagian bawah menunjukkan pengalamatan dengan padding tanpa konflik bank. II-19

20 Blok B dan D identik: int ai = offset * (2 * thid + 1) - 1; int bi = offset * (2 * thid + 2) - 1; ai += CONFLICT_FREE_OFFSET(ai); bi += CONFLICT_FREE_OFFSET(bi); Listing Code II-6: Perubahan pada blok B dan D Blok C: if (thid == 0) { temp[n CONFLICT_FREE_OFFSET(n-1)] = 0; } Listing Code II-7: Perubahan pada blok C Blok E: g_odata[ai] = temp[ai + bankoffseta]; g_odata[bi] = temp[bi + bankoffsetb]; Listing Code II-8: Perubahan pada blok E Array dengan Ukuran Bebas Algoritma yang diberikan dalam sub-bab sebelumnya melakukan scan pada array dalam sebuah thread block. Hal ini tidak bermasalah pada array berukuran kecil, yang ukuran maksimalnya dua kali jumlah maksimum thread dalam sebuah thread block. Dalam GPU G80, hal ini membatasi hanya 1024-elemen. Jumlah elemen juga harus merupakan kelipatan 2. Dalam sub-bab ini akan dijelaskan bagaimana menyempurnakan algoritma untuk melakukan scan pada array berukuran bebas (tidak pangkat 2). Ide dasarnya sederhana: Sebuah array berukuran besar dibagi menjadi blok-blok, dimana setiap blok dapat di-scan oleh sebuah thread block tunggal, dan menulis sum dari setiap blok pada array-of-block-sum lain. Setelah itu, scan dilakukan pada block sum tersebut, membangkitkan sebuah array dari inkremen blok yang ditambahkan pada seluruh elemen pada bloknya yang sesuai. II-20

21 Untuk lebih detail, perhatikan contoh berikut: Misalkan N adalah jumlah elemen array input IN, dan B adalah jumlah elemen yang diproses oleh sebuah blok. Oleh karena itu, N/B thread block akan dialokasi, dengan B/2 thread setiap thread block-nya (pada sub-bab ini, diasumsikan bahwa N adalah kelipatan B dan akan disempurnakan untuk jumlah elemen bebas pada paragraf selanjutnya). Pilihan umum untuk B adalah 512 pada G80. Algoritma scan pada sub-bab sebelumnya digunakan untuk melakukan scan pada setiap blok j secara independen, menyimpan hasil scan pada lokasi sekuensial array-output OUT. Gambar II-9: Algoritma untuk melakukan scan pada array berukuran besar Selain itu, sebuah modifikasi minor dilakukan pada algoritma scan. Sebelum menol-kan elemen terakhir dari blok j (label B), total sum dari blok j disimpan pada sebuah array bantu SUMS. Array ini kemudian dapat di-inkremen dengan cara yang sama, menuliskan jumlah pada array INCR. Selanjutnya, INCR(j) ditambahkan pada setiap elemen block j menggunakan sebuah uniform add kernel II-21

22 pada N/B thread block yang berisi B/2 thread. Hal ini ditunjukkan pada Gambar II-9. Untuk menangani dimensi array yang tidak kelipatan pangkat 2, array tersebut tinggal dibagi menjadi kelipatan B elemen dan diproses dengan cara yang sama seperti di atas (menggunakan B/2 thread per block), dan memproses sisanya dengan kernel yang dimodifikasi untuk menangani elemen yang bukan kelipatan 2 dalam sebuah block. Kernel ini melakukan padding pada shared memory array dan menginisialisasi memori ekstra ini dengan nol ketika data di-load dari device memory ke shared memory. II-22

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA)

Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA) Pendeteksian Kemacetan Lalu Lintas dengan Compute Unified Device Architecture (CUDA) LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh: Muhammad Ismail Faruqi / 13503045 PROGRAM

Lebih terperinci

BAB IV PERANCANGAN. 4.1 Perancangan Mobile Tracker Simulator (MTS)

BAB IV PERANCANGAN. 4.1 Perancangan Mobile Tracker Simulator (MTS) IV-1 BAB IV PERANCANGAN Bab ini akan menjelaskan perancangan AntiJam. Pembahasan perancangan pada bab ini akan diorganisasikan menjadi per-modul. Supaya pembahasan dalam Tugas Akhir ini ringkas dan padat,

Lebih terperinci

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram)

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) 1 Algoritma PRAM Model PRAM dibedakan dari bagaimana mereka dapat menangani konflik read dan write (Li and Yesha 1989): EREW(Exclusive

Lebih terperinci

Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo

Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo Paralelisasi Transformasi Fourier pada Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Instrumen Solo Ridwan Rismanto 5109201049 DOSEN PEMBIMBING Dr. Nanik Suciati,

Lebih terperinci

BAB II LANDASAN TEORI. informasi menjadi sebuah teks yang tidak dapat dibaca (Ferguson dkk, 2010).

BAB II LANDASAN TEORI. informasi menjadi sebuah teks yang tidak dapat dibaca (Ferguson dkk, 2010). BAB II LANDASAN TEORI 2.1 Enkripsi Enkripsi merupakan sebuah metode penyandian sebuah pesan atau informasi menjadi sebuah teks yang tidak dapat dibaca (Ferguson dkk, 2010). Enkripsi berkaitan erat dengan

Lebih terperinci

BAB I PENDAHULUAN. Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA).

BAB I PENDAHULUAN. Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA). BAB I PENDAHULUAN 1.1. Tujuan Merancang aplikasi Paralel Processing yang diimplementasikan dengan penggunaan Computer-Unified-Device-Architecture (CUDA). 1.2. Latar Belakang Banyak Central Processing Unit

Lebih terperinci

JARINGAN UNTUK MERGING

JARINGAN UNTUK MERGING SORTING - Merging Definisi: A = {a 1, a 2,..., a r } B = {b 1, b 2,..., b s } merupakan dua deret angka yang terurut naik; merge A dan B merupakan deret C = {c 1, c 2,..., c r+s } yang juga terurut naik,

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI III.1. Citra Digital Citra merupakan gambar yang merepresentasikan sesuatu. Citra dapat berupa gambar dari sebuah atau kumpulan obyek. Citra digital merupakan citra yang dapat diolah

Lebih terperinci

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

PENDAHULUAN. -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date. PENDAHULUAN 1 Kebutuhan akan Pengolahan Paralel Motivasi : - Pengolahan data numerik dalam jumlah yang sangat besar - Kebutuhan akan ketersediaan data yang senantiasa up to date Contoh 11 : Simulasi sirkulasi

Lebih terperinci

PENGANTAR KOMPUTASI MODERN

PENGANTAR KOMPUTASI MODERN PENGANTAR KOMPUTASI MODERN KOMPUTASI MODERN & PEMROSESAN PARALEL MARSHAL SAMOS 54412458 4IA15 UNIVERSITAS GUNADARMA 2016 1. Manakah yang termasuk karakteristik komputasi Modern yaitu : a. Komputer-komputer

Lebih terperinci

PENDAHULUAN. Motivasi : -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date.

PENDAHULUAN. Motivasi : -. Pengolahan data numerik dalam jumlah yang sangat besar. -. Kebutuhan akan ketersediaan data yang senantiasa up to date. PENDAHULUAN 1 Kebutuhan akan Pengolahan Paralel Motivasi : - Pengolahan data numerik dalam jumlah yang sangat besar - Kebutuhan akan ketersediaan data yang senantiasa up to date Contoh 11 : Simulasi sirkulasi

Lebih terperinci

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data Organisasi & Arsitektur Komputer Org & Ars komp Klasifikasi Ars Komp Repr Data Organisasi berkaitan dengan fungsi dan desain bagianbagian sistem komputer digital yang menerima, menyimpan dan mengolah informasi.

Lebih terperinci

KLASIFIKASI ARSITEKTURAL

KLASIFIKASI ARSITEKTURAL ArKom 02 (Klasifikasi Sistem Komputer) PDF 2 / 1-9 KLASIFIKASI ARSITEKTURAL Ada 3 skema klasifikasi arsitektural sistem komputer, yaitu: 1. Klasifikasi Flynn Didasarkan pada penggandaan alur instruksi

Lebih terperinci

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP Muhammad Indra NS - 23515019 1 Program Magister Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Preorder Tree Traversal

Preorder Tree Traversal Preorder Tree Traversal Dimana paralelnya? Operasi dasarnya adalah pelabelan pada node. Label pada verteks sub pohon kanan tidak dapat diberikan sampai diketahui berapa banyak verteks yang ada di sub pohon

Lebih terperinci

1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH

1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH 1. PENDAHULUAN 1.1. LATAR BELAKANG MASALAH Pada saat ini, teknologi mengalami kemajuan yang sangat pesat, khususnya pada perkembangan komputer. Adapun salah satu teknologi yang mendukung cepatnya perhitungan

Lebih terperinci

KEBUTUHAN KOMPUTER PARALEL

KEBUTUHAN KOMPUTER PARALEL PEMROSESAN KEBUTUHAN KOMPUTER Simulasi sirkulasi global laut di Oregon State University Lautan dibagi ke dalam 4096 daerah membentang dari timur ke barat, 1024 daerah membentang dari utara ke selatan dan

Lebih terperinci

BAB IV PENGUJIAN DAN ANALISIS

BAB IV PENGUJIAN DAN ANALISIS BAB IV PENGUJIAN DAN ANALISIS Pada bab ini akan dijelaskan tentang pengujian dari masing masing metode computing dan juga analisa dari hasil pengujian tersebut. Pengujian dilakukan pada waktu proses dengan

Lebih terperinci

Implementasi AES-ECB 128-bit untuk Komputasi Paralel pada GPU menggunakan Framework NVIDIA CUDA

Implementasi AES-ECB 128-bit untuk Komputasi Paralel pada GPU menggunakan Framework NVIDIA CUDA Implementasi AES-ECB 128-bit untuk Komputasi Paralel pada GPU menggunakan Framework NVIDIA CUDA Adityo Jiwandono, 13507015 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

>> KLASIFIKASI ARSITEKTURAL

>> KLASIFIKASI ARSITEKTURAL Sri Supatmi,S.Kom >> KLASIFIKASI ARSITEKTURAL Ada 3 skema klasifikasi arsitektural sistem komputer, yaitu: 1. Klasifikasi Flynn Didasarkan pada penggandaan alur instruksi dan alur data dalam sistem komputer.

Lebih terperinci

Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi.

Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. PARALLEL PROCESSING Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. Komputasi Parallel Salah satu teknik melakukan

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Menurut (Suarga, 2012 : 1) algoritma: 1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun

Lebih terperinci

PARALELISASI TRANSFORMASI WAVELET DISKRIT MENGGUNAKAN ARSITEKTUR CUDA PADA GRAPHIC PROCESSING UNIT UNTUK DE-NOISING CITRA

PARALELISASI TRANSFORMASI WAVELET DISKRIT MENGGUNAKAN ARSITEKTUR CUDA PADA GRAPHIC PROCESSING UNIT UNTUK DE-NOISING CITRA PARALELISASI TRANSFORMASI WAVELET DISKRIT MENGGUNAKAN ARSITEKTUR CUDA PADA GRAPHIC PROCESSING UNIT UNTUK DE-NOISING CITRA DOSEN PEMBIMBING: Dr. Nanik Suciati, S.Kom. M.Kom Wahyu Suadi, S.Kom, MM, M.Kom

Lebih terperinci

NOTASI UNTUK ALGORITMA PARALEL

NOTASI UNTUK ALGORITMA PARALEL NOTASI UNTUK ALGORITMA PARALEL Untuk Shared-Memory Model Global Local Untuk Distributed Memory Machine Parameter suatu konstanta yang sudah dikomunikasikan antar prosesor. Umum +, x, if else endif ; while

Lebih terperinci

BAB I PENDAHULUAN. piksel yang memiliki karakteristik tersebut. pendekteksian tepi. Salah satu metode yang ada adalah active contour yang

BAB I PENDAHULUAN. piksel yang memiliki karakteristik tersebut. pendekteksian tepi. Salah satu metode yang ada adalah active contour yang BAB I PENDAHULUAN 1.1. Latar Belakang Saat ini perpaduan antara perkembangan teknologi dan ilmu pengetahuan sudah banyak dilakukan orang khususnya dalam pengolahan citra. Pengolahan citra merupakan proses

Lebih terperinci

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore

Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore Rafi Ramadhan 13512075 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

Paralelisasi Transformasi Fourier Para Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Solo Instrumen

Paralelisasi Transformasi Fourier Para Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Solo Instrumen Paralelisasi Transformasi Fourier Para Arsitektur General Purpose Graphic Processing Unit Untuk Klasifikasi Alat Musik Dengan Solo Instrumen Ridwan Rismanto 1 *, Nanik Suciati 2, Wahyu Suadi 3 Institut

Lebih terperinci

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) Ver

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) Ver ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) Ver. 3.1-2016 http://openstat.sekolahku.org http://kelas.sekolahku.org Introduction Simulasi : to Pendahuluan Parallel Algorithm p :

Lebih terperinci

PENGOLAHAN PARALEL. Kebutuhan akan Komputer Paralel PENDAHULUAN. Dahulu:

PENGOLAHAN PARALEL. Kebutuhan akan Komputer Paralel PENDAHULUAN. Dahulu: PENGOLAHAN PARALEL PENDAHULUAN PENDAHULUAN 1 Kebutuhan akan Komputer Paralel Dahulu: Ilmu klasik didasarkan pada observasi, teori dan eksperimen Observasi dari fenomena menghasilkan hipotesa Teori dikembangkan

Lebih terperinci

PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS

PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS PARALELISASI PERKALIAN MATRIKS SPARSE VEKTOR DENGAN CUBLAS Murni Pusat Studi Komputasi Matematika, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat murnipskm@staff.gunadarma.ac.id

Lebih terperinci

NOTASI UNTUK ALGORITMA PARALEL

NOTASI UNTUK ALGORITMA PARALEL NOTASI UNTUK ALGORITMA PARALEL Untuk Shared-Memory Model Global Local Untuk Distributed Memory Machine Parameter Æ suatu konstanta yang sudah dikomunikasikan antar prosesor. Umum +, x, Å if else endif

Lebih terperinci

PENGGUNAAN ALGORITMA PARALEL DALAM OPTIMASI PROSESOR MULTICORE

PENGGUNAAN ALGORITMA PARALEL DALAM OPTIMASI PROSESOR MULTICORE PENGGUNAAN ALGORITMA PARALEL DALAM OPTIMASI PROSESOR MULTICORE Penggunaan Algoritma Paralel dalam Optimasi Prosesor Multicore Rafi Ramadhan 13512075 Program Studi Teknik Informatika Sekolah Teknik Elektro

Lebih terperinci

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif Prosedure PrefixSpan(input: a: l: integer, S: Sequence database) { Mencari Sequential Pattern pada sequence database S } Deklarasi D : Temporary Sequence Database Lst : List of Sequential Pattern Sq :

Lebih terperinci

ARSITEKTUR KOMPUTER. Satu CPU yang mengeksekusi instruksi satu persatu dan menjemput atau menyimpan data satu persatu.

ARSITEKTUR KOMPUTER. Satu CPU yang mengeksekusi instruksi satu persatu dan menjemput atau menyimpan data satu persatu. ARSITEKTUR KOMPUTER Dua element utama pd sistem komputer konvensional: Memory Processor Klasifikasi Arsitektur komputer (Michael Flynn), berdasarkan karakteristiknya termasuk banyaknya processor, banyaknya

Lebih terperinci

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF Lutfi Hakim (1), Eko Mulyanto Yuniarno (2) Mahasiswa Jurusan Teknik Elektro (1), Dosen Pembimbing (2) Institut Teknologi Sepuluh Nopember (ITS)

Lebih terperinci

Arsitektur Komputer. Dua element utama pd sistem komputer konvensional: Memory Processor

Arsitektur Komputer. Dua element utama pd sistem komputer konvensional: Memory Processor Arsitektur Komputer Dua element utama pd sistem komputer konvensional: Memory Processor Klasifikasi Arsitektur komputer (Michael Flynn), berdasarkan karakteristiknya termasuk banyaknya processor, banyaknya

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI A II LANDASAN TEORI 2.1 Komputasi Paralel Teknologi komputasi paralel sudah berkembang lebih dari dua dekade, penggunaannya semakin beragam mulai dari kebutuhan perhitungan di laboratorium fisika nuklir,

Lebih terperinci

10. PARALLEL PROCESSING

10. PARALLEL PROCESSING 10. PARALLEL PROCESSING Parallel Processing Penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Tujuan Utama Untuk meningkatkan performa komputasi. Komputasi Parallel Salah

Lebih terperinci

BAB I PENDAHULUAN. ada dua pendekatan yang dapat digunakan, pendekatan yang pertama adalah

BAB I PENDAHULUAN. ada dua pendekatan yang dapat digunakan, pendekatan yang pertama adalah BAB I PENDAHULUAN I.1. Latar Belakang Seiring dengan perkembangan teknologi informasi yang sangat pesat, saat ini dapat ditemui berbagai macam media dan sarana untuk menyampaikan pengetahuan dan informasi.

Lebih terperinci

ORGANISASI KOMPUTER II AUB SURAKARTA

ORGANISASI KOMPUTER II AUB SURAKARTA ORGANISASI KOMPUTER II STMIK AUB SURAKARTA Umumnya sistem multiprosesor menggunakan dua hingga selusin prosesor. Peningkatan sistem multiprosesor menggunakan jumlah prosesor yang sangat banyak ratusan,

Lebih terperinci

BAB I PENDAHULUAN. Tsunami ini merupakan kejadian alam yang dipengaruhi oleh adanya aktifitas

BAB I PENDAHULUAN. Tsunami ini merupakan kejadian alam yang dipengaruhi oleh adanya aktifitas BAB I PENDAHULUAN 1. 1. Latar Belakang Tsunami ini merupakan kejadian alam yang dipengaruhi oleh adanya aktifitas yang terjadi di dasar laut. Aktifitas ini dapat berupa gempa laut, gunung berapi meletus,

Lebih terperinci

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan Bab 10 Disusun Oleh : Rini Agustina, S.Kom, M.Pd Definisi: lengkap instruksi yang dapat adalah kumpulan dimengerti CPU Sifat2: 1. Merupakan Kode Mesin 2. Dinyatakan dalam Biner 3.Biasanya digunakan dalam

Lebih terperinci

PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU)

PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU) PROSEDUR PARALELISASI PERKALIAN MATRIKS PADA GRAPHICS PROCESSING UNIT (GPU) Murni Pusat Studi Komputasi Matematika, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat murnipskm@staff.gunadarma.ac.id

Lebih terperinci

SISTEM OPERASI THREAD DAN MULTITHREADING

SISTEM OPERASI THREAD DAN MULTITHREADING SISTEM OPERASI THREAD DAN MULTITHREADING D3 Komputer dan Sistem Informasi Sekolah Vokasi Universitas Gadjah Mada 2011 A. Thread Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh

Lebih terperinci

Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu)

Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu) Analisis Kinerja Matrix Multiplication Pada Lingkungan Komputasi Berkemampuan Tinggi (Cuda Gpu) 1 Machudor Yusman, 2 Anie Rose Irawati, 3 Achmad Yusuf Vidyawan 1 Jurusan Ilmu Komputer FMIPA Unila 2 Jurusan

Lebih terperinci

MANAJEMEN MEMORI SISTEM OPERASI

MANAJEMEN MEMORI SISTEM OPERASI MANAJEMEN MEMORI SISTEM OPERASI Manajemen Memori Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik baiknya.

Lebih terperinci

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan. Struktur Data Struktur Data Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi

Lebih terperinci

Disusun Oleh: Agenda. Terminologi Klasifikasi Flynn Komputer MIMD. Time Sharing Kesimpulan

Disusun Oleh: Agenda. Terminologi Klasifikasi Flynn Komputer MIMD. Time Sharing Kesimpulan Multiprocessor - Time Sharing Arsitektur dan Organisasi Komputer Disusun Oleh: Iis Widya Harmoko Ronal Chandra Yoga Prihastomo Magister Ilmu Komputer Universitas Budi Luhur Agenda Agenda presentasi adalah

Lebih terperinci

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf Nur Fajriah Rachmah - 0609 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Algoritma adalah teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sitematis

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si Operating System Thread Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si caca_emile@yahoo.co.id Threads Thread adalah sebuah alur kontrol dari sebuah proses. Suatu

Lebih terperinci

Penerapan Algoritma Divide and Conquer Dalam Komputasi Paralel

Penerapan Algoritma Divide and Conquer Dalam Komputasi Paralel Penerapan Algoritma Divide and Conquer Dalam Komputasi Paralel Ivan Andrianto - 13513039 Program MagisterInformatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1. Kompresi Data Kompresi adalah mengecilkan/ memampatkan ukuran. Kompresi Data adalah teknik untuk mengecilkan data sehingga dapat diperoleh file dengan ukuran yang lebih kecil

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI.. Definisi Graf Secara matematis, graf G didefinisikan sebagai pasangan himpunan (V,E) ditulis dengan notasi G = (V, E), yang dalam hal ini: V = himpunan tidak-kosong dari simpul-simpul

Lebih terperinci

Cara Kerja B-tree dan Aplikasinya

Cara Kerja B-tree dan Aplikasinya Cara Kerja B-tree dan Aplikasinya Paskasius Wahyu Wibisono - 13510085 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

Langkah Awal menuju Analisis Kompleksitas Algoritma

Langkah Awal menuju Analisis Kompleksitas Algoritma Langkah Awal menuju Analisis Kompleksitas Algoritma Isi Proses Desain dan Analisis Algoritma Tipe-tipe Problem yang penting Kebutuhan akan algoritma yang efisien Analisis framework 2 Proses Desain dan

Lebih terperinci

Tugas Arsitektur Komputer Lanjut

Tugas Arsitektur Komputer Lanjut Tugas Arsitektur Komputer Lanjut Nama : Dedi triyanto NIM : 0504 Soal 1.1 Integer arithmetic 45000 x 1 45000 Data transfer 000 x 4000 Floating point 15000 x 0000 Control transfer 8000 x 1000 + Total (C)

Lebih terperinci

BAB I PENDAHULUAN. dengan alat medis seperti Computed Tomography (CT) scan atau Magnetic

BAB I PENDAHULUAN. dengan alat medis seperti Computed Tomography (CT) scan atau Magnetic BAB I PENDAHULUAN A. Latar Belakang Penyakit pada bagian dalam tubuh manusia merupakan suatu hal yang tidak dapat dilihat secara langsung. Contohnya untuk mengetahui dan mendiagnosa penyakit tumor pada

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 18 BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma adalah urutan atau deskripsi langkah- langkah penyelesaian masalah yang tersusun secara logis, ditulis dengan notasi yang mudah dimengerti sedemikian

Lebih terperinci

BAB I PENDAHULUAN. Keamanan dapat menjadi sebuah ketidak nyamanan. Namun, di zaman yang

BAB I PENDAHULUAN. Keamanan dapat menjadi sebuah ketidak nyamanan. Namun, di zaman yang BAB I PENDAHULUAN 1.1 Latar Belakang Keamanan dapat menjadi sebuah ketidak nyamanan. Namun, di zaman yang sudah semakin maju ini, keamanan menjadi sebuah kebutuhan dasar manusia pada setiap waktu (Navratilova,

Lebih terperinci

OPTIMISASI PUSTAKA UNTUK PERKALIAN MATRIKS MENGGUNAKAN ALGORITMA STRASSEN BERBASIS OPENCL

OPTIMISASI PUSTAKA UNTUK PERKALIAN MATRIKS MENGGUNAKAN ALGORITMA STRASSEN BERBASIS OPENCL OPTIMISASI PUSTAKA UNTUK PERKALIAN MATRIKS MENGGUNAKAN ALGORITMA STRASSEN BERBASIS OPENCL Arvin 1), Sutrisno 2), Pujianto Yugopuspito 3) 1),2),3) Teknik Informatika, Universitas Pelita Harapan UPH Tower,

Lebih terperinci

STRUKTUR CPU. Arsitektur Komputer

STRUKTUR CPU. Arsitektur Komputer STRUKTUR CPU Arsitektur Komputer Tujuan Mengerti struktur dan fungsi CPU yaitu dapat melakukan Fetch instruksi, interpreter instruksi, Fetch data, eksekusi, dan menyimpan kembali. serta struktur dari register,

Lebih terperinci

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram)

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM = pea ram) Algoritma yang dibahas : 1. Parallel reduction 2. Prefix sums 3. List ranking 4. Pre-order tree traversal 5. Merging two sorted lists

Lebih terperinci

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM)

ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM) ALGORITMA-ALGORITMA PARALLEL RANDOM ACCESS MACHINE (PRAM) Algoritma yang dibahas : 1. Parallel reduction 2. Prefix sums 3. List ranking 4. Pre-order tree traversal` 5. Merging two sorted lists 6. Graph

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Algoritma Pemrograman Bekti Wulandari, M.Pd Kelas B TE 2014 Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level

Lebih terperinci

SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU

SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU TESIS SIMULASI PERAMBATAN GELOMBANG SUARA DENGAN METODE STAGGERED GRID FINITE DIFFERENCE TIME DOMAIN MENGGUNAKAN ARSITEKTUR CUDA GPU ARIEF BUDIMAN No. Mhs. : 105301460/PS/MTF PROGRAM STUDI MAGISTER TEKNIK

Lebih terperinci

ORGANISASI KOMPUTER DASAR

ORGANISASI KOMPUTER DASAR ORGANISASI KOMPUTER DASAR A. KOMPONEN SISTEM Sebuah komputer moderen/digital dengan program yang tersimpan di dalamnya merupakan sebuah system yang memanipulasi dan memproses informasi menurut kumpulan

Lebih terperinci

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak Modular Programming Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak mudah dihandle. dl Kesulitan: sulit mencari dan mengingat variabel-variabel aiabel yang sudah

Lebih terperinci

Nama : Damas Fahmi Assena NIM : Prodi : Teknik Informatika R2

Nama : Damas Fahmi Assena NIM : Prodi : Teknik Informatika R2 Nama : Damas Fahmi Assena Prodi : Teknik Informatika R2 Generasi Kedua Generasi Ketiga Generasi Pertama Generasi Keempat 1.2.Sejarah Komputer 1. Keyboard 2. Mouse 1. General-Purpose Computer 2. Special-Purpose

Lebih terperinci

Struktur Sistem Komputer

Struktur Sistem Komputer Struktur Sistem Komputer ARSITEKTUR UMUM SISTEM KOMPUTER Sistem Komputer Sistem komputer terdiri atas CPU dan sejumlah perangkat pengendali yang terhubung melalui sebuah bus yang menyediakan akses ke memori

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Sistem yang Sedang Berjalan Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan Pertemuan ke 6 Set Instruksi Computer Organization Dosen : Eko Budi Setiawan Tujuan Memahami representasi set instruksi, dan jenis-jenis format instruksi Mengetahui jenis-jenis type operand yang digunakan

Lebih terperinci

Introduction to Computer Architecture. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 --

Introduction to Computer Architecture. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 -- Introduction to Computer Architecture Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 01 -- This presentation is revised by @hazlindaaziz, STMIK, 2014 Acknowledgement

Lebih terperinci

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf Bab 2 LANDASAN TEORI 2.1. Konsep Dasar Graf Definisi Graf Suatu graf G terdiri atas himpunan yang tidak kosong dari elemen elemen yang disebut titik atau simpul (vertex), dan suatu daftar pasangan vertex

Lebih terperinci

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS : MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI Nama : Annisa Christyanti Kelas : XI TJA 3 NIS : 3103113017 TEKNIK JARINGAN AKSES SMK TELKOM SANDHY PUTRA PURWOKERTO TAHUN AJARAN 2014/2015 Mode dan Format

Lebih terperinci

USUL PENELITIAN HIBAH BERSAING

USUL PENELITIAN HIBAH BERSAING BIDANG ILMU : KOMPUTER/ MEDIS USUL PENELITIAN HIBAH BERSAING AKSELERASI ALGORITMA MARCHING CUBE MENGGUNAKAN GENERAL PURPOSE GRAPHICAL PROCESSING UNIT (GPGPU) UNTUK MEMBANGUN PENCITRAAN MEDIS 3D Ketua :

Lebih terperinci

Struktur Data dan Analisa Algoritma

Struktur Data dan Analisa Algoritma Struktur Data dan Analisa Algoritma Mahasiswa mampu menjelaskan teknik dasar abstraksi data, dalam bentuk struktur data Mahasiswa mampu menyelesaikan permasalahan dengan memanfaatkan struktur data Mahasiswa

Lebih terperinci

Kumpulan instruksi lengkap yang dimengerti

Kumpulan instruksi lengkap yang dimengerti Set Instruksi: 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Operasi dari CPU ditentukan oleh instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut

Lebih terperinci

THREAD Ulir utas thread

THREAD Ulir utas thread THREAD Ulir, utas atau thread (singkatan dari "thread of execution") dalam ilmu komputer, diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir

Lebih terperinci

Strategi Algoritma Penyelesaian Puzzle Hanjie

Strategi Algoritma Penyelesaian Puzzle Hanjie Strategi Algoritma Penyelesaian Puzzle Hanjie Whilda Chaq 13511601 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

Algoritma Divide and Conquer

Algoritma Divide and Conquer Algoritma Algoritma divide and conquer sudah lama diperkenalkan sebagai sumber dari pengendalian proses paralel, karena masalah-masalah yang terjadi dapat diatasi secara independen. Banyak arsitektur dan

Lebih terperinci

Arsitektur Set Instruksi. Abdul Syukur

Arsitektur Set Instruksi. Abdul Syukur Arsitektur Set Instruksi Abdul Syukur abdulsyukur@eng.uir.ac.id http://skurlinux.blogspot.com 085374051884 Tujuan Memahami representasi set instruksi, dan jenis-jenis format instruksi. Mengetahui jenis-jenis

Lebih terperinci

Karakteristik Instruksi Mesin

Karakteristik Instruksi Mesin PERTEMUAN Karakteristik Instruksi Mesin Instruksi mesin (machine intruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU. Kumpulan fungsi yang dapat dieksekusi CPU disebut set

Lebih terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

KOMPUTASI PARALEL UNTUK SEGMENTASI CITRA DIGITAL DENGAN PARTICLE SWARM OPTIMIZATION

KOMPUTASI PARALEL UNTUK SEGMENTASI CITRA DIGITAL DENGAN PARTICLE SWARM OPTIMIZATION KOMPUTASI PARALEL UNTUK SEGMENTASI CITRA DIGITAL DENGAN PARTICLE SWARM OPTIMIZATION SKRIPSI Diajukan Untuk Memenuhi Sebagian Persyaratan Mencapai Derajat Sarjana Teknik Informatika Agustinus Kristiadi

Lebih terperinci

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi PENGENALAN KONTROL INPUT/OUTPUT DEFINISI DAN PERSYARATAN KONTROL I/O Sebuah sistem kontrol I/O bertujuan untuk memberikan bantuan kepada user untuk memungkinkan mereka mengakses berkas, tanpa memperhatikan

Lebih terperinci

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta Operasi Unit Kontrol Arsitektur Komputer II STMIK AUB Surakarta Micro-Operations Fungsi sebuah komputer adalah mengeksekusi program. Siklus Fetch/execute selalu terjadi Tiap siklus memiliki sejumlah langkah

Lebih terperinci

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum Gerard Edwin Theodorus - 13507079 Jurusan Teknik Informatika ITB, Bandung, email: if17079@students.if.itb.ac.id Abstract Makalah ini

Lebih terperinci

OPTIMASI PROSES RENDERING OBJEK GAME 3D MENGGUNAKAN PEMROGRAMAN CUDA PADA GAME SANDBOX CRAFT

OPTIMASI PROSES RENDERING OBJEK GAME 3D MENGGUNAKAN PEMROGRAMAN CUDA PADA GAME SANDBOX CRAFT Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) p-issn: 3-7699 Vol., No. 3, September 017, hlm. 07-1 e-issn: 8-679 OPTIMASI PROSES RENDERING OBJEK GAME 3D MENGGUNAKAN PEMROGRAMAN CUDA PADA GAME SANDBOX

Lebih terperinci

1 Tinjau Ulang Sistem Komputer

1 Tinjau Ulang Sistem Komputer 1 Tinjau Ulang Sistem Komputer Overview Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem komputer disertai cara kerjanya.

Lebih terperinci

DASAR KOMPUTER DAN PEMROGRAMAN

DASAR KOMPUTER DAN PEMROGRAMAN BUKU AJAR DASAR KOMPUTER DAN PEMROGRAMAN oleh : RINTA KRIDALUKMANA, S.Kom, M.T. Program Studi Sistem Komputer Fakultas Teknik Universitas Diponegoro 2009 Kata Pengantar Puji syukur penulis panjatkan kepada

Lebih terperinci

BAB I PENDAHULUAN. penggunaan teknologi dalam menunjang kehidupan sehari - hari. berdasarkan data yang dihimpun oleh Gartner International Data

BAB I PENDAHULUAN. penggunaan teknologi dalam menunjang kehidupan sehari - hari. berdasarkan data yang dihimpun oleh Gartner International Data BAB I PENDAHULUAN 1.1. Latar Belakang Pertumbuhan teknologi saat ini semakin meningkat secara pesat dari waktu ke waktu. Konsumen semakin menyadari akan pentingnya penggunaan teknologi dalam menunjang

Lebih terperinci

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si Operating System I/O System Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si caca_emile@yahoo.co.id Input / Output System Perangkat Keras I/O Aplikasi Antarmuka

Lebih terperinci

Organisasi Sistem Komputer

Organisasi Sistem Komputer LOGO Organisasi Sistem Komputer OSK 10 Reduced Instruction Set Computer Pendidikan Teknik Elektronika FT UNY Perkembangan Komputer RISC Family concept melepaskan arsitektur mesin dari implementasinya.

Lebih terperinci

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER Muqtafi Akhmad (13508059) Teknik Informatika ITB Bandung e-mail: if18059@students.if.itb.ac.id ABSTRAK Dalam makalah ini akan dibahas tentang

Lebih terperinci

SEGMENTASI CITRA MENGGUNAKAN LEVEL SET UNTUK ACTIVE CONTOUR BERBASIS PARALLEL GPU CUDA

SEGMENTASI CITRA MENGGUNAKAN LEVEL SET UNTUK ACTIVE CONTOUR BERBASIS PARALLEL GPU CUDA HALAMAN JUDUL TESIS SEGMENTASI CITRA MENGGUNAKAN LEVEL SET UNTUK ACTIVE CONTOUR BERBASIS PARALLEL GPU CUDA LIANITA FEBRIHANI No. Mhs : 125301846/PS/MTF PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA PROGRAM

Lebih terperinci

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Topic Complexity of Hashing Search & Binary Search Tree Algorithm Topic Complexity of Hashing Search & Binary Search Tree Algorithm Febriansyah Kurniawan M. Nasir Suyanto Searching a list of values is a common task. An application program might retrieve a student record,

Lebih terperinci