Back to IF3130 Sistem Paralel dan Terdistribusi

Topic

Questions/Cues

  • Mengapa komputasi paralel dibutuhkan?

  • Bagaimana tren kinerja prosesor?

  • Apa batasan fisik prosesor serial?

  • Apa itu Power Wall?

  • Mengapa kinerja aplikasi terus meningkat?

  • Apa peran penting developer?

  • Apa itu Data Parallelism?

  • Apa itu Task Parallelism?

Reference Points

  • Slides IF3230-01-Dasar-2024.pdf

Motivasi Utama Komputasi Paralel

Kebutuhan akan komputasi paralel didorong oleh dua faktor utama yang saling tarik-menarik:

  1. Perkembangan Hardware: Cara produsen meningkatkan kinerja prosesor telah berubah secara fundamental.

  2. Perkembangan Kebutuhan Kinerja: Kompleksitas masalah yang ingin kita selesaikan dengan komputasi terus meningkat secara eksponensial.

Tren Kinerja Prosesor

Selama beberapa dekade (kira-kira 1986-2002), kinerja prosesor single-core meningkat sekitar 50% setiap tahunnya. Namun, setelah tahun 2002, laju peningkatannya melambat drastis. Hal ini disebabkan oleh beberapa batasan fundamental.

Batasan Fisik Prosesor Serial: The Power Wall

Peningkatan kinerja prosesor secara tradisional dilakukan dengan memperkecil ukuran transistor dan meningkatkan kecepatan clock (clock speed). Namun, pendekatan ini menabrak dinding yang disebut “Power Wall”.

Siklus masalahnya adalah sebagai berikut:

  1. Transistor Lebih Kecil & Cepat: Memungkinkan lebih banyak operasi per detik.

  2. Konsumsi Daya Meningkat: Prosesor yang lebih cepat membutuhkan lebih banyak listrik.

  3. Panas Meningkat: Konsumsi daya yang tinggi menghasilkan panas berlebih.

  4. Prosesor Tidak Andal: Panas yang berlebihan dapat menyebabkan kerusakan fisik pada chip.

Karena batasan panas ini, meningkatkan clock speed (misalnya di atas 3-4 GHz) menjadi tidak lagi praktis. Solusinya adalah berhenti membuat satu “otak” super cepat, dan mulai menambahkan lebih banyak “otak” (disebut core) dalam satu chip yang sama. Inilah awal dari era multicore.

Tuntutan Kinerja dari Aplikasi

Di sisi lain, kemampuan komputasi yang lebih besar membuka pintu untuk menyelesaikan masalah-masalah yang sebelumnya dianggap mustahil. Kebutuhan komputasi performa tinggi (High-Performance Computing - HPC) terus tumbuh di berbagai bidang:

  • Sains & Riset: Pemodelan cuaca, simulasi pelipatan protein (protein folding), penemuan obat baru, dan riset energi.

  • Data: Analisis data dalam skala masif (Big Data).

  • Rekayasa: Simulasi aerodinamika, uji tabrak virtual, dan desain molekul.

Peran Krusial Developer

Kehadiran prosesor multicore tidak secara otomatis membuat program berjalan lebih cepat. Jika sebuah program ditulis secara serial (hanya memberikan satu urutan instruksi), maka program tersebut hanya akan berjalan di satu core, sementara core lainnya menganggur.

Sebagai contoh, pada CPU dengan 16 core, aplikasi serial hanya memanfaatkan kurang dari 1% dari total kekuatan pemrosesan yang tersedia. Oleh karena itu, menjadi tugas developer untuk secara eksplisit menulis ulang algoritma dan program agar dapat memanfaatkan semua core yang ada.

Konsep Dasar Paralelisme

Ada dua cara utama untuk membagi pekerjaan agar bisa dikerjakan secara paralel:

  1. Data Parallelism (Paralelisme Data):
    • Konsep: Membagi data menjadi potongan-potongan kecil, lalu setiap core mengerjakan instruksi yang sama pada potongan datanya masing-masing.
    • Analogi: Seorang dosen membagi 300 lembar ujian kepada 3 asisten. Masing-masing asisten menerima 100 lembar dan melakukan pekerjaan yang sama: memeriksa semua soal.
  2. Task Parallelism (Paralelisme Tugas):
    • Konsep: Membagi tugas (instruksi) yang berbeda-beda kepada setiap core. Semua core bisa saja bekerja pada data yang sama atau data yang berbeda.
    • Analogi: Dosen membagi pekerjaan berdasarkan nomor soal. Asisten 1 memeriksa soal 1-5, asisten 2 memeriksa soal 6-10, dan asisten 3 memeriksa soal 11-15 untuk semua 300 lembar ujian.

Summary

Pergeseran ke komputasi paralel adalah sebuah keniscayaan yang didorong oleh batasan fisik prosesor serial—terutama masalah panas yang dikenal sebagai Power Wall—yang menghentikan laju peningkatan clock speed. Sebagai respons, industri hardware beralih ke desain multicore. Namun, hardware ini tidak berguna tanpa software yang dirancang secara paralel. Oleh karena itu, developer harus secara aktif memecah masalah menggunakan strategi seperti data parallelism atau task parallelism untuk memanfaatkan kekuatan komputasi modern dan memenuhi tuntutan kinerja dari aplikasi yang semakin kompleks.