Kamis, 24 Maret 2022

High Performance Computing


 Apa sih High Performance Computing (HPC) itu ?

Komputasi kinerja tinggi (HPC) adalah penggunaan komputer super dan teknik pemrosesan paralel untuk memecahkan masalah komputasi yang kompleks. Teknologi HPC berfokus pada pengembangan algoritma dan sistem pemrosesan paralel dengan menggabungkan teknik administrasi dan komputasi paralel. Komputasi berkinerja tinggi biasanya digunakan untuk memecahkan masalah tingkat lanjut dan melakukan kegiatan penelitian melalui pemodelan komputer, simulasi dan analisis. Sistem HPC memiliki kemampuan untuk memberikan kinerja yang berkelanjutan melalui penggunaan sumber daya komputasi secara bersamaan.

Sumber : medium.com

 

Teknologi HPC diimplementasikan dalam bidang multidisiplin termasuk:

  • Biosains
  • Data Geografis
  • Pemodelan Industri Minyak Gas
  • Otomasi Desain Elektronik
  • Pemodelan Iklim
  • Media dan Hiburan

Apa itu Parallel Computing  ?

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Sumber : teldat.com

Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).

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. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.

Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:

  1. SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
  2. SIMD (Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU)
  3. MISD (Multiple Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD. 
  4. MIMD (Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq Alpha Server, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Apa sih Komputasi Terdistribusi ?

Dalam kehidupan sehari-hari, seseorang dapat menggunakan komputer untuk bekerja dengan aplikasi seperti Microsoft Word, Microsoft PowerPoint. Masalah yang kompleks mungkin tidak dapat diselesaikan dengan menggunakan satu komputer. Oleh karena itu, masalah tunggal dapat dibagi menjadi beberapa tugas dan didistribusikan ke banyak komputer. Komputer-komputer ini dapat berkomunikasi dengan komputer lain melalui jaringan. Mereka semua memiliki kinerja yang mirip dengan satu entitas. Proses membagi satu tugas di antara banyak komputer dikenal sebagai komputasi terdistribusi. Komputasi terdistribusi digunakan di banyak aplikasi saat ini. Beberapa contohnya adalah Facebook dan Google. Mereka terdiri dari jutaan dan jutaan pengguna. Semua pengguna berkomunikasi dengan orang lain, berbagi foto, dll. Data dalam jumlah besar ini disimpan menggunakan komputasi terdistribusi. Anjungan tunai mandiri di bank, jaringan telepon, jaringan seluler, database terdistribusi juga menggunakan komputasi terdistribusi.

Sumber : ridge.co

 

Keuntungan dari komputasi terdistribusi:

  • Skalabilitas : Karena sistem terdistribusi tidak memiliki masalah yang terkait dengan memori bersama, dengan meningkatnya jumlah prosesor, mereka jelas dianggap lebih skalabel daripada sistem paralel.
  • Keandalan : Dampak dari kegagalan subsistem tunggal atau komputer pada jaringan komputer menentukan keandalan sistem yang terhubung tersebut. Jelas, sistem terdistribusi menunjukkan aspek yang lebih baik di bidang ini dibandingkan dengan sistem paralel Berbagi data : Berbagi data yang disediakan oleh sistem terdistribusi mirip dengan berbagi data yang disediakan oleh database terdistribusi. Dengan demikian, beberapa organisasi dapat memiliki sistem terdistribusi dengan aplikasi terintegrasi untuk pertukaran data.
  • Berbagi sumber daya : Jika ada sumber daya atau prosesor yang mahal dan memiliki tujuan khusus, yang tidak dapat didedikasikan untuk setiap prosesor dalam sistem, sumber daya tersebut dapat dengan mudah dibagikan ke seluruh sistem terdistribusi.
  • Heterogenitas dan modularitas : Sebuah sistem harus cukup fleksibel untuk menerima prosesor heterogen baru untuk ditambahkan ke dalamnya dan salah satu prosesor yang akan diganti atau dihapus dari sistem tanpa mempengaruhi kemampuan pemrosesan sistem secara keseluruhan. Sistem terdistribusi diamati lebih fleksibel dalam hal ini.
  • Konstruksi geografis : Penempatan geografis dari subsistem yang berbeda dari suatu aplikasi dapat ditempatkan secara inheren sebagai terdistribusi. Pemrosesan lokal dapat dipaksakan oleh bandwidth komunikasi yang rendah lebih khusus dalam jaringan nirkabel.
  • Ekonomis : Dengan evolusi komputer modern, jaringan dan workstation dengan bandwidth tinggi tersedia dengan biaya rendah, yang juga mendukung komputasi terdistribusi karena alasan ekonomi.
 

Studi Kasus Jupiter Notebook Sebagai Solusi Pembelajaran Menggunakan Super Komputer Dgx A100

Universitas Gunadarma dikenal luas sebagai universitas berbasis information technology (IT). Ciri khas tersebut memang sudah melekat sejak awal berdiri pada tahun 1981. Seluruh kurikulum yang diterapkan dan materi yang dikandung di Universitas Gunadarma selalu berbasis IT.

Kini, keunggulan tersebut sudah bertransformasi ke arah kesiapan Universitas Gunadarma dalam menghadapi Revolusi Industri 4.0 dan Society 5.0. Dijelaskannya, kurikulum di seluruh program studi di Universitas Gunadarma juga telah dikembangkan dengan muatan teknologi yang relevan dengan kebutuhan di era Revolusi Industri 4.0 dan Society 5.0.

Sarana dan prasarana terkini yang menerapkan Artificial Intelligence, Big Data Analytics, atau teknologi lain yang mendorong Revolusi Industri 4.0 dan Society 5.0 diterapkan untuk mendukung kekuatan dari basis TIK Universitas Gunadarma. Lalu salah satu infrastruktur yang belum lama dikenalkan untuk melengkapi pembelajaran civitas akademik di Universitas Gunadarma ialah Super Computer DGX A100.

Sumber : hpc-hub.gunadarma.ac.id

IMPLEMENTASI PARALLEL COMPUTING TERHADAP 3D RENDERING ANIMATION

Komputasi Paralel mempunyai prinsip yang bersesuaian dengan algoritma Divide and Conquer, yaitu membagi-bagi proses menjadi bagian-bagian yang cukup kecil dan memungkinkan untuk dikerjakan oleh sebuah unit komputasi. Terdapat 2 klasifikasi parallel computer yang penting, yaitu : Sebuah komputer dengan banyak unit komputasi internal, atau lebih dikenal sebagai Shared Memory Multiprocessor. Beberapa komputer yang terhubung melalui sebuah jaringan, atau lebih dikenal sebagai Distributed Memory Multicomputer.

3D Rendering merupakan salah satu proses yang sangat penting dalam melakukan pengolahan gambar 3D. Tanpa dirender suatu gambar yang diolah oleh perangkat lunak animasi 3D hanya akan tampil dalam bentuk kumpulan point dan wireframe sederhana. Proses render melakukan “pembungkusan” tekstur pada objek yang bersesuaian sesuai cahaya yang datang pada objek tersebut. Namun proses render membutuhkan daya komputasi yang sangat besar karena banyaknya titik koordinat yang harus dikomputasi, terutama jika data 3D yang diolah cukup rumit.

3D Rendering terdiri dari proses yang bertujuan untuk membentuk sebuah gambar dari sebuah model yang dibentuk oleh perangkat lunak animasi, model tersebut berisi data geometri, titik pandang, tekstur dan cahaya yang diperlukan untuk membuat gambar yang utuh.3D Rendering merupakan proses yang sangat penting dan telah digunakan untuk berbagai macam penggunaan, seperti program permainan komputer, efek spesial pada film dan program simulasi. 

Salah satu cara untuk memecahkan masalah tersebut adalah dengan menggunakan algoritma Divide and Conquer yang diterapkan kedalam metode Komputasi Parallel. Divide and Conquer merupakan salah satu strategi algoritma yang memecah suatu masalah besar menjadi beberapa bagian untuk kemudian dikerjakan satu persatu. Dalam Komputasi Parallel tiap-tiap bagian dikerjakan oleh unit pemrosesannya masing-masing, sesuai dengan kesepakatan Divide pada awal komputasi. Komputasi Parallel terbukti jauh lebih efektif untuk melakukan rendering objek 3D dibanding hanya menggunakan sebuah unit komputasi. Sebagai contoh suatu perusahaan animasi asal Jepang, membutuhkan waktu 165 tahun jika proses render yang dilakukan untuk membuat animasi berdurasi 100 menit hanya menggunakan sebuah unit komputasi. Sedangkan ketika perusahaan tersebut menggunakan metode Komputasi Parallel, proses tersebut hanya membutuhkan waktu 1 tahun saja.

Salah satu masalah kompleks yang hingga kini masih membutuhkan kemampuan komputasi yang besar adalah melakukan proses render terhadap objek 3D. Proses render objek 3D sendiri membutuhkan waktu yang cukup lama, terlebih jika objek yang diberikan cukup rumit.Sebenarnya operasi render objek 3D hanya merupakan kumpulan dari beberapa operasi primitif, namun operasi primitif yang dilakukan pada proses render sangatlah banyak. Untuk itu digunakan metode Komputasi Parallel sehingga tiap-tiap operasi primitif yang dilakukan dapat dikerjakan dengan menggunakan algoritma Divide and Conquer agar tiap bagian dari operasi Divide pada perhitungan yang dilakukan dapat dikerjakan oleh masing-masing unit komputasi. 

Beberapa operasi primitif yang digunakan dalam 3D Rendering adalah operasi penghitungan jarak antara 2 titik,operasi perkalian bilangan bulat yang besar. Tentunya hampir kesemua operasi primitif tersebut dapat dipecahkan dengan menggunakan algoritma Divide and Conquer sehingga menjadikan proses 3D Rendering sangat cocok untuk diselesaikan dengan algoritma Divide and Conquer. 

References : 

  1. https://id.theastrologypage.com/high-performance-computing
  2. https://ichi.pro/id/komputasi-paralel-vs-terdistribusi-157843820157375
  3. http://lipi.go.id/berita/single/Komputasi-Berkinerja-Tinggi/7904
  4. https://id.strephonsays.com/parallel-and-vs-distributed-computing-2413
  5. https://inet.detik.com/advertorial-news-block/d-5505121/gunadarma-punya-super-computer-canggih-ini-manfaatnya-buat-mahasiswa
  6. https://biz.kompas.com/read/2021/03/24/165347628/datangkan-superkomputer-dgx-a100-upaya-gunadarma-siapkan-sdm-unggul-cakap
  7. https://www.hpc-hub.gunadarma.ac.id/
  8. https://www.mahadisuta.net/2012/12/implementasi-komputasi-paralel-dalam.html?m=1