sistem terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing dengan...

42
Sistem Terdistribusi TIK-604 MPI Kuliah 08: 15 s.d 17 April 2019 Husni

Upload: trantu

Post on 28-Apr-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Sistem TerdistribusiTIK-604

MPIKuliah 08: 15 s.d 17 April 2019

Husni

Page 2: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Hari ini

▪Pertemuan Terakhir:▪Eksklusi Mutual Terdistribusi▪Algoritma Pemilihan

▪Pembahasan hari ini:▪Model-model Pemrograman: MPI

▪Pengumuman:▪….

Page 3: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Pemrograman Paralel

▪Apa itu model pemrograman Paralel?

▪Adalah suatu abstraksi yang disediakan oleh system bagi programmersehingga mereka dapat menggunakannya untuk mengimplementasikanalgoritma-algoritmanya

▪Model ini menentukan bagaimana programmer dengan mudah dapatmenerjemahkan algoritma mereka ke dalam unit-unit parallel dari komputasi(yaitu task-task)

▪Model menentukan bagaimana secara efektif task-task paralel dapatdieksekusi pada sistem tersebut

3

Page 4: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Message Passing Message Passing

Model Pemrograman Paralel Tradisional

4

Model PemrogramanParalel

Shared Memory

Page 5: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Shared Memory▪Dalam model pemrograman shared memory, abstraksi yang disediakan tersebut

mengimplikasikan bahwa tugas-tugas parallel dapat mengakses suatu lokasi darimemorynya

▪Sesuai dengan itu, tugas-tugas paralel dapat berkomunikasi melalui pembacaan(reading) dan penulisan (writing) lokasi memory bersama (umum)

▪ Ini mirip dengan thread dalam suatu proses tunggal (dalam OS tradisional), yangberbagi-pakai (share) suatu ruang alamat tunggal

▪Program berthread-banyak (multi-threaded, seperti program OpenMP)menggunakan model pemrograman shared memory ini.

5

Page 6: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Shared Memory

6

Proses

S1

P1

P2

P3

P4

S2

Si = Serial

Pj = Paralel

Tim

e

Single Thread

S1

Tim

e

P1 P2 P3 P3

S2 Shared Space

Multi-Thread

Proses

Spawn

Join

Page 7: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Pemrograman ParalelTradisional

7

Model PemrogramanParalel

Shared Memory

Message Passing Shared

Memory

Page 8: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Message Passing▪Dalam message passing, setiap tugas parallel mempunyai memory lokalnya

sendiri

▪Satu task tidak dapat mengakses memory task lainnya

▪Karena itu, task-task harus bersandar pada message passing eksplisit untukberkomunikasi

▪ Ini serupa dengan abstraksi dari proses dalam suatu SO tradisional, yang tidakberbagi (share) suatu ruang alamat (address space)

▪Contoh: Message Passing Interface (MPI)

Page 9: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Model Message Passing

9

S1

P1

P2

P3

P4

S2

Tim

e

Single Thread

Proses 0

S1

P1

S2

Tim

e

Message Passing

Node 1

Proses 1

S1

P1

S2

Node 2

Proses 2

S1

P1

S2

Node 3

Proses 3

S1

P1

S2

Node 4

Proses

Si = Serial

Pj = Paralel

Page 10: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Shared Memory vs. Message Passing

▪Perbandingan antara model pemrograman shared memory dan message passingdilhat dari beberapa aspek:

10

Aspek Shared Memory Message Passing

Komunikasi Implicit (via loads/stores) Explicit Messages

Sinkronisasi Explicit Implicit (Via Messages)

Dukungan Hardware Typically Required None

Upaya Pengembangan Lower Higher

Upaya Tuning Higher Lower

Page 11: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Message Passing Interface: MPI▪Kita akan focus pada MPI:

▪Definisi▪Komunikasi Point-to-point (P2P)▪Komunikasi kolekstif.

11

Page 12: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Message Passing Interface▪Kita akan fokus pada MPI:

▪Definisi▪Komunikasi Point-to-point (P2P)▪Komunikasi koleksyif.

12

Page 13: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Apa itu MPI?▪MPI merupakan suatu model message passing standard untuk pengembangan

program message passing.

▪Tujuan dari MPI adalah untuk mendirikan suatu pustaka yang portable, efficient,dan flexible bagi message passing

▪Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatuspesifikasi yang harus dipenuhi oleh suatu pustaka MPI

▪MPI bukan pula suatu standard IEEE atau ISO, tetapi secara fakta, menjadiindustry standard untuk penulisan program message passing pada platform HPC.

13

Page 14: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Alasan Deskripsi

StandarisasiMPI hanya pustaka message passing yang dapatdianggap suatu standard. Didukung secara virtual pada semua platform HPC

PortabilityTidak ada kebutuhan untuk memodifikasi source code saat memporting aplikasi ke platform berbeda yang mendukung standard MPI

Peluang KinerjaImplementasi vendor harus mampu mengeksploitasifitur-fitur hardware natif untuk mengoptimalkan kinerja

Functionality (Kemampuan) Lebih dari 115 rutin telah didefinisikan

Availability (Ketersediaan)Variasi implementasi tersedia, baik domain vendor maupun publik.

Alasan Penggunaan MPI

14

Page 15: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Communicators dan Groups▪MPI menggunakan obyek bernama communicators/groups untuk mendefinisikan

koleksi proses mana yang dapat saling berkomuniasi utuk menyelesaikan suatumasalah tertentu

▪Sebagian besar rutin MPI mengharuskan kita menetapkan suatu communicatorsebagai argumennya

▪Communicator MPI_COMM_WORLD sering digunakan dalam pemanggilan sub-rutin komunikasi

▪MPI_COMM_WORLD merupakan communicator pra-definisi yang menyertakansemua proses MPI

15

Page 16: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Ranks▪Di dalam suatu communicator, setiap proses mempunyai ID uniknya sendiri yang

dirujuk sebagai rank, diberikan oleh system saat proses tersebut diinisiasi

▪Rank kadang kala disebut task ID– rank-rank bersebelahan dan dimulai dari nol(zero)

▪Rank digunakan olenh programmer untuk menentukan source dan destinationdari messages

▪Rank sering digunakan secara kondisional oleh program untuk mengontroleksekusi (missal if rank=0 do this / if rank=1 do that)

16

Page 17: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Banyak Communicators▪Suatu masalah dapat terdiri dari beberapa sub-masalah dimana masing-

masingnya dapat dipecahkan secara independen

▪Kita dapat membuat suatu communicator baru bagi setiap sub-problem sebagaisubset dari communicator yang telah ada (existing)

▪MPI mengijinkan kita mewujudkan itu dengan menggunakan MPI_COMM_SPLIT

17

Page 18: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh Banyak Communicators▪Perhatikan suatu masalah dengan suatu bagian dinamika fluida dan analisis

struktural, dimana setiap bagian dapat dikomputasi secara paralel

Rank=0

Rank=0

Comm_Fluid

Rank=1

Rank=1

Rank=2

Rank=2

Rank=3

Rank=3

Rank=0

Rank=4

Comm_Struct

Rank=1

Rank=5

Rank=2

Rank=6

Rank=3

Rank=7

MPI_COMM_WORLD

✓ Rank-rank di dalam MPI_COMM_WORLD dicetak merah✓ Rank-rank di dalam Comm_Fluid dicetak hijau✓ Rank-rank di dalam Comm_Struct dicetak biru

Page 19: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Message Passing Interface:MPI▪Kita akan fokus pada MPI:

▪Definisi▪Komunikasi Point-to-point (P2P)▪Komunikasi kolektif.

19

Page 20: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Rutin Komunikasi Point-To-Point MPI

20

Rutin Signature

Blocking send int MPI_Send( void *buf, int count, MPI_Datatypedatatype, int dest, int tag, MPI_Comm comm )

Non-blocking send int MPI_Isend( void *buf, int count, MPI_Datatypedatatype, int dest, int tag, MPI_Comm comm, MPI_Request *request )

Blocking receive int MPI_Recv( void *buf, int count, MPI_Datatypedatatype, int source, int tag, MPI_Comm comm, MPI_Status *status )

Non-blocking receive int MPI_Irecv( void *buf, int count, MPI_Datatypedatatype, int source, int tag, MPI_Comm comm, MPI_Request *request )

Page 21: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Message Passing Interface: MPI▪Kita akan fokus pada MPI:

▪Definisi▪Komunikasi Point-to-point (P2P)▪Komunikasi kolektif

21

Page 22: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Komunikasi Kolektif▪Komunikasi kolektif memungkinkan pertukaran data antar suatu kelompok

proses

▪Harus mencakup semua proses dalam lingkup suatu communicator

▪Argumen communicator dalam suatu rutin komunikasi kolektif harusmenentukan proses-proses mana yang dilibatkan dalam komunikasi

▪Karena itu, adalah merupakan tanggungjawab programmer untuk memastikanbahwa semua proses di dalam suatu communicator berpartisipasi dalam suatuoperasi kolektif.

22

Page 23: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Pola Komunikasi Kolektif

▪Ada beberapa pola dari komunikasi kolektif:

1. Broadcast2. Scatter3. Gather4. Allgather5. Alltoall6. Reduce7. Allreduce8. Scan9. Reducescatter

23

Page 24: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

1. Broadcast▪Broadcast mengirimkan suatu message dari proses dengan rank root ke semua

proses lain di dalam grup

24

AP0

P1

P2

P3

DataP

rose

s

BroadcastA

A

A

A

P0

P1

P2

P3

Data

Pro

se

s

int MPI_Bcast ( void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm )

Page 25: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

2-3. Scatter dan Gather▪Scatter mendistribusikan message-message berbeda dari suatu source task

tunggal ke setiap task di dalam grup

▪Gather mengumpulkan message-message berbeda dari setiap task di dalam grupke suatu destination task tunggal

A B C DP0

P1

P2

P3

Data

Pro

se

s

ScatterA

B

C

D

P0

P1

P2

P3

Data

Pro

se

s

int MPI_Scatter ( void *sendbuf, int sendcnt, MPI_Datatype sendtype, void *recvbuf, int recvcnt,

MPI_Datatype recvtype, int root, MPI_Comm comm )

Gather

int MPI_Gather ( void *sendbuf, int sendcnt, MPI_Datatype sendtype, void *recvbuf, int recvcount,

MPI_Datatype recvtype, int root, MPI_Comm comm )

Page 26: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

4. All Gather▪Allgather mengumpulkan data dari semua tasks dan mendistribusikannya ke

semua task▪Setiap task di dalam grup, efeknya, mengerjakan suatu operasi broadcasting

one-to-all di dalam grup tersebut.

A

B

C

D

P0

P1

P2

P3

DataP

roce

ss

allgatherA B C D

A B C D

A B C D

A B C D

P0

P1

P2

P3

Data

Pro

cess

int MPI_Allgather ( void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,

int recvcount, MPI_Datatype recvtype, MPI_Comm comm )

Page 27: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

6-7. Reduce dan All Reduce▪Reduce menerapkan suatu operasi reduksi pada semua task di dalam grup dan

menempatkan hasilnya dalam satu task

▪Allreduce menerapkan operasi reduksi dan menempatkan hasilnya dalamsemua task di dalam grup. Ini ekuivalen dengan MPI_Reduce diikuti oleh suatuMPI_Bcast

A

B

C

D

P0

P1

P2

P3

Data

Pro

ce

ss

Reduce

int MPI_Reduce ( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,

MPI_Op op, int root, MPI_Comm comm )

int MPI_Allreduce ( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,

MPI_Op op, MPI_Comm comm )

A*B*C*DP0

P1

P2

P3

Data

Pro

ce

ss A

B

C

D

P0

P1

P2

P3

Data

Pro

ce

ss

AllreduceA*B*C*D

A*B*C*D

A*B*C*D

A*B*C*D

P0

P1

P2

P3

Data

Pro

ce

ss

Page 28: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Recap

Page 29: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪PageRank adalah suatu fungsi yang memberikan suatu bilangan ril untuk setiaphalaman di dalam Web

▪ Intuisi: semakin tinggi PageRank dari suatu page, makin “penting” page tersebut

▪Simulasi dari random surfers memungkinkan memperkirakan dugaan intuitif dari“kepentingan” halaman web▪Random surfers bermula pada halaman acak dan cenderung untuk berkerumun pada

halaman yang penting (important pages)

▪ Pages dengan jumlah surfers lebih besar adalah lebih “penting” daripada pages dengan jumlah surfers lebih kecil

Page 30: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Web dapat direpresentasikan sebagai suatu graf berarah, dengan halamansebagai node dan link antar halaman sebagai edges

▪Suatu random surfer bermula di A, selanjutkan akan berada di A, B, C, dan D dengan probabilitas masing-masing 0, 1/3, 1/3, dan 1/3

▪Suatu random surfer bermula di B, selanjutnya akan berada di A, B, C dan D dengan probabilitas masing-masing ½, 0, 0, dan ½.

A B

C D

Suatu contoh hipotetis dari Web

Page 31: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Web dapat direpresentasikan sebagai suatu graf berarah, dengan halamansebagai nodes dan links antar halaman sebagai edges

A B

C D

0 ½ 1 0

1/3 0 0 ½

1/3 0 0 ½

1/3 ½ 0 0

Suatu transition matrix dari Web, yang mendeskripsikan apa yang terjadi terhadap

random surfers setelah satu langkah

M =

A B C D

A

B

C

D

Page 32: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Distribusi peluang bagi lokasi dari suatu random surfer dapat dideskripsikan oleh suatu column vector (katakan, v) yang mempunyai elemen ke-j adalah peluangyang surfer tersebut pada halaman j▪ Peluang ini adalah fungsi PageRank (yang diidealkan)

▪Kita dapat memulai suatu random surfer pada semabarang dari 4 halaman darigraf Web kecil kita, degan probabilitas yang sama

1/4

1/4

1/4

1/4

v =

A

B

C

D

Page 33: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪ Jika M adalah matriks transisi dari Web, setelah satu langkah, distribusi darisurfer akan menjadi Mv

▪Setelah dua langkah akan menjadi M(Mv) = M2v, dan seterusnya▪ Secara umum, mengalikan vektor awal v dengan M total i kali akan memberikan

distribusi dari surfer setelah i langkah.

1/4

1/4

1/4

1/4

0 ½ 1 0

1/3 0 0 ½

1/3 0 0 ½

1/3 ½ 0 0

9/24

5/24

5/24

5/24

=

Page 34: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Pertama, partisi M pada master

0 ½ 1 0

1/3 0 0 ½

1/3 0 0 ½

1/3 ½ 0 0

r0 and v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r0

r1

r2

r3

r1 and v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 and v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 and v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

Page 35: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Kedua, distribusikan partisi-partisi M ke mesin-mesin (misal menggunakan

MPI-Scatter())

0 ½ 1 0

1/3 0 0 ½

1/3 0 0 ½

1/3 ½ 0 0

r0 and v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r0

r1

r2

r3

r1 and v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 and v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 and v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

Page 36: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Kedua, distribusikan partisi-partisi M ke mesin-mesin (misal menggunakan

MPI-Scatter())

0 ½ 1 0

1/3 0 0 ½

1/3 0 0 ½

1/3 ½ 0 0

r0 and v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r0

r1

r2

r3

r1 and v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 and v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 and v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

Page 37: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Ketiga, salin v ke setiap mesin (misal menggunakan MPI-Bcast())– Iterasi 1

bermula di sinir0 and v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r1 and v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 and v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 and v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

1/4

1/4

1/4

1/4

Page 38: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Ketiga, salin v ke setiap mesin (misal menggunakan MPI-Bcast())– Iterasi 1

bermula di sinir0 dan v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r1 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 dan v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 dan v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

1/4

1/4

1/4

1/4

Page 39: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Keempat, terapkan logic perkalian Mv pada setiap mesin

r0 dan v

x0 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋

r1 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋

r2 dan v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋

r3 dan v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

Page 40: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Keempat, terapkan logic perkalian Mv pada setiap mesin

r1 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋𝒗𝒋

r2 dan v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋𝒗𝒋

r3 dan v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋𝒗𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

r0 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋𝒗𝒋

Page 41: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Contoh: PageRank

▪Bagaimana ini dapat diimplementasikan dalam MPI?▪Kelima, setiap mesin mengirimkan balik elemennya ke master

9/24

5/24

5/24

5/24

x0

x1

x2

x3

Ini mengakhiri iterasi 1. Untukmengerjaan iterasi baru, ulangi

langkah 3, 4 dan 5

r1 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟏𝒋𝒗𝒋

r2 dan v

x2 = σ𝒋=𝟎𝟑 𝒎𝟐𝒋𝒗𝒋

r3 dan v

x3 = σ𝒋=𝟎𝟑 𝒎𝟑𝒋𝒗𝒋

Mesin

0

Mesin

1

Mesin

2

Mesin

3

r0 dan v

x1 = σ𝒋=𝟎𝟑 𝒎𝟎𝒋𝒗𝒋

Page 42: Sistem Terdistribusi - komputasi.files.wordpress.com · dan flexible bagi message passing Dengan sendirinya, MPI BUKANlah suatu library (pustaka), tetapi suatu spesifikasi yang harus

Bahasa Selanjutnya…

▪ Caching (Replikasi sisi Client)

42