Sejarah Komputasi
Komputasi sebenarnya telah dilakukan manusia sejak berabad-abad yang lalu. Komputasi berawal dari pehitungan angka. Hal tersebut dilihat dari manusia yang telah dapat menghitung, menghitung berbagai hal. Zaman dahulu, manusia purba seperti Pithecantropus Erectus telah bisa melakukan perhitungan sederhana untuk sisitem barter barang. Sistem kalender dan rasi bintang bahkan telah dilakukan manusia sejak zaman romawi. Manusia telah memilki akal untuk melakukan perhitungan-perhitungan tersebut.
Namun, dikarenakan setiap manusia mempunyai keterbatasan, tak semua perhitungan bisa dilakukan otak manusia. Apalagi jika perhitungan tersebut memiliki banyak angka. Oleh sebab itu, manusia membuat suatu alat perhitungan yang bisa membantu pekerjaannya.
Banyak alat-alat perhitungan angka yang dibuat oleh manusia, sebagai contoh adalah “sempoa” yang banyak digunakan rakyat China zaman dahulu, bahkan sampai sekarang. Perhitungan-perhitungan yang semakin kompleks, menimbulkan masalah baru bagi manusia, oleh sebab itu, manusia membuat alat-alat yang lebih cangging lagi, baik dalam kecepatan menghitung maupun kepraktisannya.
Pada tahun 1613 muncullah penggunaan kata “komputer” pertama kali. Yang menggambarkan sebuah mesin yang dapat melakukan perhitungan yang lebih kompleks. Komputasipun mulai berkembang seiring perkembangan komputer. Perkembangan komputer tersebut dapat dilihat dari hal-hal berikut:
- Tahun 1940 komputer yang semula dikhususkan sebagai instrument untuk science, berubah menjadi produk komersil.
- Tahun 1945 di temukan Bug Komputer oleh Grace Murray Hopper
- Tahun 1947 tanggal 23 Desember ditemukan transistor yang pertama kali oleh Bardeen dan Walter Brattain bersama dengan William Shockley
- Tahun 1951 dimulai sebuah gagasan microprogramming oleh Maurice Wilkes
- Tahun 1951-1952 Grace Murray Hopper mengembangkan A-O, yang merupakan compiler pertama.
- Tahun 1957 John Backus dan kolega IBM mengirimkan Compiler Fortran yang pertama.
- Tahun 1958 Jack Kilby menghasilkan prototype semiconductor IC
- Tahun 1960 merupakan timbulnya system kecil seperti word length, register structure, Number of Addresses, I/O channel, Floating point hardware.
- Tahun 1960 juga Paul Baran yang bekerja di Rand Corp. menemukan dasar packet switching untuk data komunikasi.
- Tahun 1962 video game pertama kali di temukan oleh Steve Russell yang merupakan seorang lulusan MIT.
- Tahun 1964 mouse ditemukan oleh Doug Engelbart.
- Tahun 1969 munculnya internet oleh DARPA
- Tahun 1970 merupakan kedatangan PC (personal computer).
- Tahun 1970 ditemukan UNIX oleh Dennis Ritchie dan Kenneth Thomson.
- Pada tahun 1970 juga floppy disk dan daisywheel printer di tunjukkan kepada umum (debut pertama).
- Tahun 1971 Ray Tomlinson of Bolt Beranek dan Newmen pertama kali mengirimkan jaringan surat e-mail.
- Tahun 1971 Niklaus Wirth menemukan Pascal
- Tahun 1972 di temukan bahasa C oleh Dennis Ritchie di Bell Labs.
- Tahun 1973 Robert Metcalfe menuliskan catatan di “Ether Acquisition” yang mendeskripsikan Ethernet.
- Tahun 1973 Robert Metcalfe dan David Boggs menemukan Ethernet.
- Tahun 1976 merupakan tahun pertama kalinya muncul supercomputer dengan vektorial arsitektur.
- Tahun 1976, Steve Jobs dan Steve Wozniak mendesain dan membangun Apple I yang terdiri dari kebanyakan papan circuit.
- Tahun 1977, Steve Jobs dan Steve Wozniak tergabung dalam Apple computer pada 3 januari.
- Tahun 1978, Muncul MS
- Tahun 1978, Wordstar yang merupakan software pengolah kata diperkenalkan dan meluas.
- Tahun 1979 telepon seluler di test di Jepang dan Chicago.
- Tahun 1980 IBM memilih PC-DOS dari Microsoft sebagai OS (Operating System)
- Tahun 1980 bahasa Ada muncul yang di temukan oleh Departemen Pertahanan US.
- Tahun 1980 portable computer seberat 24 pounds lahir.
- 1 januari 1983, muncul TCP/IP
- Tahun 1984, muncul Apple Macintosh
- Tahun 1984, muncul DNS
- Tahun 1985 menyebarnya sistem networking.
- Tahun 1990 tim Barners Lee Menemukan WWW yaitu aplikasi internet yang membawa perkembangan dan perubahan besar di dunia internet.
- Tahun 1991 Trovalds menempatkan UNIX di IBMnya.
- Tahun 1992 muncul istilah surfing
- Tahun 1993 pentium milik intel diperkenalkan kepada umum pada bulan Maret
- Tahun 1993 muncul NSCA Mosaic
- Tahun 1994 muncul Yahoo dan Netscape Navigator 1.0
- Tahun 1995 muncul bahasa pemrograman Java pada bulan Mei.
- Pada Desember 1994 maka Spyglass milik Microsoft telah dibayar dan diberi lisensi, sehingga untuk web browser yang nantinya nama spyglass tersebut akan diganti dengan nama Internet Explorer.
- Pada 1995 spyglass sudah menjadi bagian dari OS dan bagian dari windows
Konsep dasar arsitektur komputer modern adalah konsep sebuah sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory. Konsep ini pertama kali digagasi oleh John Von Neumann. Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya.
Von Neumann juga ahli dalam bidang komputasi. Von Neumann menjadi seorang konsultan pada pengembangan komputer ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.
Komputasi Modern Adalah
Jenis-Jenis Komputasi Modern
Jenis-jenis komputasi modern ada 3 macam, yaitu :
1. Mobile Computing atau Komputasi Bergerak
Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Contoh dari mobile computing adalah GPS, smart phone, dan sebagainya.
2. Grid Computing
Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif.
Keuntungan dari komputasi grid adalah dua kali lipat: pertama, kekuatan pemrosesan yang tidak digunakan secara efektif digunakan, memaksimalkan sumber daya yang tersedia dan, kedua, waktu yang dibutuhkan untuk menyelesaikan pekerjaan besar berkurang secara signifikan.
Idealnya kode sumber harus direstrukturisasi untuk membuat tugas-tugas yang saling eksklusif adalah sebagai mungkin. Itu tidak berarti bahwa mereka tidak bisa saling bergantung, tetapi pesan yang dikirim antara tugas-tugas meningkatkan faktor waktu. Satu pertimbangan penting saat membuat pekerjaan komputasi grid adalah bahwa apakah kode dijalankan serial atau paralel tugas, hasil dari keduanya harus selalu sama di setiap situasi.
3. Cloud Computing atau Komputasi Awan
Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. Semua yang terlihat adalah sebuah antarmuka, yang menerima masukan dan memberikan output. Bagaimana output ini dihitung benar-benar tersembunyi.
Sebagai contoh, seorang sopir mobil tahu bahwa roda kemudi dengan memutar arah mobil yang mereka ingin pergi; atau yang menekan pedal gas akan menyebabkan mobil untuk mempercepat. Sopir biasanya tidak peduli tentang bagaimana arah dari roda kemudi dan pedal gas tersebut diterjemahkan ke dalam gerakan yang sebenarnya dari mobil. Oleh karena itu, rincian ini diabstraksikan dari sopir.
Cloud serupa, melainkan menerapkan konsep abstraksi dalam lingkungan komputasi fisik, dengan menyembunyikan proses yang benar dari pengguna. Dalam lingkungan komputasi awan, data bisa berada pada beberapa server, rincian koneksi jaringan yang tersembunyi dan pengguna tidak ada yang tahu. Bahkan, komputer awan awan dinamakan demikian karena sering digunakan untuk menggambarkan pengetahuan eksak tentang pekerjaan batin. Cloud komputasi berat berasal dari paradigma Unix memiliki beberapa elemen, masing-masing yang sangat baik pada satu tugas tertentu, daripada memiliki satu elemen besar yang tidak baik.
Dampak adanya komputasi modern
Salah satu dampak dari adanya komputasi modern adalah dapat membantu manusia untuk menyelesaikan masalah-masalah yang kompleks dengan menggunakan computer. Salah satu contohnya adalah biometric. Biometric berasal dari kata Bio dan Metric. Kata bio diambil dari bahasa yunani kuno yang berarti Hidup sedangkan Metric juga berasal dari bahasa yunani kuno yang berarti ukuran, jadi jika disimpulkan biometric berarti pengukuran hidup.
Tapi secara garis besar biometric merupakan pengukuran dari statistic analisa data biologi yang mengacu pada teknologi untuk menganalisa karakteristik suatu tubuh ( individu ). Nah dari penjelasan tersebut sudah jelas bahwa Biometric menggambarkan pendeteksian dan pengklasifikasian dari atribut fisik. Terdapat banyak teknik biometric yang berbeda, diantaranya:
- Pembacaan sidik jari / telapak tangan
- Geometri tangan
- Pembacaan retina / iris
- Pengenalan suara
- Dinamika tanda tangan.
Karena kerumitannya, Biometric adalah tipe otentikasi yang paling mahal untuk diimplementasikan. Tipe ini juga sangat sulit dipelihara karena sifat ketidaksempurnaan dari analisis biometric. Sangat dianjurkan untuk berhati–hati karena beberapa masalah utama dari eror–eror biometric diantaranya, sistem mungkin bisa menolak subjek yang memiliki otoritas.
Kesalahan seperti ini biasa disebut False Rejection Rate ( FRR ). Dan disisi lain biometric juga bisa menerima subjek yang salah dan seperti ini biasa diistilahkan False Acception Rate ( FAR ). Tapi teknologi ini juga mempunyai sisi positif, salah satunya mungkin bisa diambi contoh dari Retinal Scan yang sangat impossible untuk diduplikasikan.
Latest
PARALLEL PROCESSING
PARALLEL PROCESSING
Pengertian
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
· algoritma
· bahasa pemrograman
· compiler
Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
Contoh struktur pengiriman permintaan dan jawaban dari parallel processing
Aristektur Komputer Parallel
Taksonomi Flynn dan model pemrosesan parallel
Keempat kelompok komputer tersebut adalah :
1. Komputer SISD (Single Instruction stream-Single Data stream)
Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali. Skema arsitektur global komputer SISD dapat dilihat pada gambar .1 (a).
2. Komputer SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula. Skema arsitektur global komputer SIMD dapat dilihat pada gambar .1 (b).
3. Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian. Skema arsitektur global komputer MISD dapat dilihat pada gambar .1 (c).
4. Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.
Paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila dibandingkan dengan pemakaian komputasi pada komputer tunggal.
Berikut ini adalah gambar perbedaan antara komputasi tunggal dengan parallel komputasi :
- Komputasi Tunggal / serial
- Komputasi Paralel
Message Passing Interface (MPI).
MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node. Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan – pertimbangan diantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor.
MPI ini merupakan standard yang dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data lokal. Setiap proses mempunyai variabel lokal, dan tidak ada mekanisme suatu proses yang bisa mengakses secara langsung memori yang lain. Pembagian data antar proses dilakukan dengan message passing, yaitu dengan mengirim dan menerima pesan antar proses.
MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable,
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel.
PVM (Parallel Virtual Machine)
Adalah paket software yang mendukung pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan superkomputer.
Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang berjalan pada mesin virtual masing-masing komputer. Mesin virtual akan dibuat, ketika User mengeksekusi aplikasi PVM. PVM dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task . Library ini berisikan rutin yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi task dan konfigurasi mesin virtual.
Salah aturan main yang penting dalam PVM adalah adanya mekanisme program master dan slave/worker. Programmer harus membuat Kode master yang menjadi koordinator proses dan Kode slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer master. Kode master dieksekusi paling awal dan kemudian melahirkan proses lain dari kode master. Masing-masing program ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing komputer. Jika arsitektur komputer untuk komputasi paralel semua sama, (misalnya pentium 4 semua), maka program cukup dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasi didistribusikan kekomputer lain yang akan menjadi node komputasi parallel. Program master hanya berada pada satu node sedangkan program slave berada pada semua node.
Komunikasi dapat berlangsung bila masing-masing komputer mempunyai hak akses ke filesystem semua komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan di unix atau windows. Berikut adalah langkah pengaturan pada masing-masing komputer :
1. Buat file hostfile yang berisi daftar node komputer dan nama user yang akan dipakai untuk komputasi parallel. Bila nama user pada semua komputer sama misalnya nama user riset pada komputer C1, C2,C3 dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila nama user di masing-masing komputer berbeda.
2. Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan /etc/hosts/hosts.equiv.
3. Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole PVM. Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.
Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling awal dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga aplikasi user dapat mengidentifikasi task lain disistem.
Secara umum, langkah implementasi komputasi parallel sebagai berikut :
1. Jalankan PVM daemon pada setiap mesin dalam cluster
2. Jalankan program master pada master daemon
3. Master daemon akan menjalankan proses slave.
Sumber:
http://en.wikipedia.org/wiki/History_of_computing