• Tidak ada hasil yang ditemukan

Model Pemrograman Paralel

N/A
N/A
Protected

Academic year: 2021

Membagikan "Model Pemrograman Paralel"

Copied!
22
0
0

Teks penuh

(1)

Model Pemrograman Paralel

Eko Didik Widianto ([email protected])

(2)

Pengolahan Paralel

Pokok Bahasan

Konsep dan terminologi

Arsitektur memori paralel

Model pemrograman paralel

Desain program paralel

Memprogram paralel

Referensi:

(3)

Bahasan

Arsitektur Memori Paralel

Hirarki Memori Memory Latency

Locality dan Paralelisme Review Kuliah

Model Pemrograman Paralal

Model Pemrograman: Overview Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing Penutup

(4)

Arsitektur Memori Paralel

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

(5)

Hirarki Memori

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

Model Pemrograman Paralal

Kode yang berjalan di satu prosesor seringkali hanya membutuhkan prosesor 10-20% dari kapasitas peaknya (loss performansi)

Hal ini sebagian besar terjadi di sistem memori. Memindahkan data

membutuhkan waktu lebih lama daripada operasi aritmetika maupun logika

Operasi:

Read dan write ke register, very fast memory

(6)

Memory Latency

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

Model Pemrograman Paralal

Prosesor berkembang lebih cepat daripada memori

Untuk mengatasi latensi memory

Membatasi operasi memori dengan menyimpannya di memori yang cepat (cache) dan reuse

(7)

Locality dan Paralelisme

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

Model Pemrograman Paralal

Sebagian besar program menggunakan locality untuk aksesnya

spatial locality: mengakses sesuatu yang dekat dengan akses sebelumnya

temporal locality: menggunakan item yang sebelumnya diakses

Hirarki memori berusaha untuk memanfaatkan locality untuk meningkatkan performansi

(8)

Arsitektur Memori Paralel

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

(9)

Implementasi Memori

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

Model Pemrograman Paralal

di UMA (Uniform Memory Access), CPU berinteraksi dengan MCH untuk mengakses memori. I/O juga. Bottleneck: bus, isu skalabilias

Dikenal dengan prosesor SMP, semua prosesor identik dan mempunyai akses yang sama ke semua area memori

di NUMA (non-UMA), CPU mempunyai kontroler memori sendiri. CPU menggunakan Quick Path Interconnect

(10)

NUMA dan Distributed

Arsitektur Memori Paralel

Hirarki Memori

Memory Latency

Locality dan Paralelisme

Review Kuliah

Model Pemrograman Paralal

Perbedaan utama antara NUMA dan distributed

Di distributed, prosesor tidak dapat mempunyai mapping ke memori yang terhubung ke prosesor lain. Transfer data ke memori lain dilakukan dengan protokol jaringan

di NUMA, prosesor mungkin bisa

Klasifikasi memori NUMA: memori lokal dan memori remote

NUMA umumnya dibuat dengan menghubungkan secara fisik mesin

(11)

Model Pemrograman Paralal

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

(12)

Model Pemrograman Paralel

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Model memberikan abstraksi di atas hardware dan arsitektur memori tertentu

Model tidak spesifik untuk tipe arsitektur memori tertentu

(13)

Implementasi Model

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Model shared memory di atas mesin memori terdistribusi

Misalnya: Kendall Square Research (KSR) ALLCACHE

Memori secara fisik terdistribusi, tapi dilihat dari user sebagai memori shared tunggal (space alamat global)

Disebut juga shared virtual memory

Model message passing di atas mesin memori shared

Misalnya: MPI di atas mesin NUMA, di mana tiap task mempunyai akses langsung ke memori global

Seringkali juga pengiriman message (MPI) dilakukan lewat jaringan mesin-mesin memori terdistribusi (cluster, etc)

(14)

Model Memori Bersama

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Task berbagi bersama space alamat memori, dengan penulisan dan pembacaan secara asinkron

Mekanisme yang digunakan adalah semaphore / lock untuk mengontrol akses ke shared memori

Keuntungannya (dari sudut programmer): ownership data tidak

diperlukan, sehingga tidak perlu untuk menyatakan dengan eksplisit komunikasi data antar task. Pengembangan program dapat

disederhanakan

Kelemahannya adalah di performansi, yaitu akan lebih susah untuk memanage locality data

Menjaga data lokal untuk prosesor yang mengirimnya akan memerlukan alokasi/akses memori dan mempengaruhi trafik bus saat prosesor yang lain menggunakan data yang sama

(15)

Implementasi Shared Memory

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Kompiler akan mentranslate variabel program user ke dalam alamat memori aktualnya yang global

Implementasi model di atas platform distributed belum ada, kecuali KSR ALLCACHE

(16)

Model Thread

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Satu proses dapat mempunyai beberapa jalur eksekusi yang konkuren

Program utama dijadwalkan untuk

berjalan oleh OS, program load dan mengambil semua kebutuhan

resource sistem

Program membuat thread yang

dijadwalkan dapat dijalankan secara bersamaan

Tiap thread mempunyai data lokal, namun shared resources dari program. Menghemat resources (bandingkan dengan clone)

Komunikasi antar thread lewat memori global

(17)

Process, Thread, Multi-CPU

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

(18)

Implementasi Model Thread

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Dari perspektif programmer, implementasi thread dapat dilakukan dari:

Pustaka dari subrutin yang dipanggil dari dalam source code paralel

Set compiler directive yang embed-kan di source code (serial atau paralel)

Implementasi thread: POSIX Threads dan OpenMP

Posix (pthread) menggunakan library, memerlukan pengkodean paralel

Paralelisme eksplisit, memerlukan programmer yang mahir di paralel

OpenMP, menggunaakn compiler directive; dapat menggunakan kode serial

(19)

OpenMP

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

#include <omp.h> #include <stdio.h> #include <stdlib.h>

int main (int argc, char *argv[]) { int th_id, nthreads;

#pragma omp parallel private(th_id) {

th_id = omp_get_thread_num();

printf("Hello World from thread %d\n", th_id); #pragma omp barrier

if ( th_id == 0 ) {

nthreads = omp_get_num_threads(); printf("There are %d threads\n",nthreads); } } return EXIT_SUCCESS; } Sumber: http://en.wikipedia.org/wiki/OpenMP http://computing.llnl.gov/tutorials/openMP

(20)

Model Message Passing

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Set task menggunakan

memori lokalnya sendiri saat komputasi

Beberapa task dapat ditempatkan di mesin fisik sama

Task transfer data lewat pesan komunikasi

(21)

Implementasi Message Passing

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Implementasi menggunakan library subrutin yang diembed-kan di source code

Programmer bertugas menentukan semua paralelism

Standar Message Passing Interface (MPI) direlease tahun 1994, dan part-2 di tahun 1996

Tersedia di http://www-unix.mcs.anl.gov/mpi/

(22)

Penutup

Arsitektur Memori Paralel Model Pemrograman Paralal

Model Pemrograman: Overview

Model Shared Memory

Model Thread

Proses dan Thread

Model Message Passing

Penutup

Referensi

Dokumen terkait

Di bagian ini akan dilakukan rekonstruksi dengan menggunakan data observasi dan RegCM3 untuk melakukan komputasi paralel dan secara serial, seperti yang tampak pada Gambar 11.

ebutuhan akan kemampuan komputasi yang besar pada saat ini untuk melakukan pemrosesan data dalam skala besar dan waktu yang singkat menjadi hal yang sangat mendasar guna

Bantuan hukum merupakan hak fundamental yang wajib dijamin oleh negara untuk memastikan akses keadilan bagi seluruh warga negara, khususnya masyarakat miskin dan kelompok rentan. Negara memiliki tanggung jawab untuk mengatasi ketimpangan perlindungan hukum guna menjamin persamaan di hadapan hukum. Penelitian ini mengkaji implementasi Peraturan Daerah Provinsi Jawa Tengah Nomor 1 Tahun 2022 tentang Penyelenggaraan Bantuan Hukum yang memperluas cakupan penerima bantuan hukum, tidak hanya bagi masyarakat miskin, tetapi juga kelompok rentan. Fokus kajian diarahkan pada efektivitas pelaksanaan serta kesesuaiannya dengan Undang-Undang Nomor 16 Tahun 2011 tentang Bantuan Hukum . Metode yang digunakan adalah pendekatan kualitatif dengan jenis penelitian yuridis-empiris, teknik pengumpulan data melalui studi pustaka, wawancara, dan observasi. Data dianalisis secara deskriptif dengan teknik triangulasi untuk menjaga validitas dan keakuratan hasil. Hasil penelitian menunjukkan bahwa perluasan penerima bantuan hukum secara sosial mencerminkan keadilan substantif, namun secara normatif menimbulkan persoalan karena tidak sejalan dengan ketentuan dalam Undang-Undang Nomor 16 Tahun 2011 tentang Bantuan Hukum. Penelitian ini merekomendasikan agar dilakukan pengujian materiil (Judicial Review) serta melakukan analisis dan evaluasi (ANEV))terhadap Peraturan Daerah Provinsi Jawa Tengah Nomor 1 Tahun 2022 tentang Penyelenggaraan Bantuan Hukum terhadap Undang-Undang Nomor 16 Tahun 2011 tentang Bantuan Hukum. Tujuannya agar implementasi bantuan hukum dapat berlangsung secara adil, tepat sasaran, dan sesuai dengan prinsip negara