Skip to content
This repository was archived by the owner on Feb 20, 2024. It is now read-only.

Say1ddd/python-parallelism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

Parallelism dan Multiprocessing di Python

Hasil

Dua contoh hasil uji coba multiprocessing -- berikut adalah bukti konsep yang saya pelajari dari library multiprocessing.

Contoh proses Pool dan mapping untuk mengkalikan angka dalam list

Proses menghitung dari 0 hingga 200.000.000 (200 juta) 3 kali berurutan tanpa parallel processing berfungsi sebagai patokan

Proses menghitung dari 0 hingga 200.000.000 (200 juta) 3 kali proses sekaligus dengan parallel processing sebagai bukti dari konsep

Pengertian

Salah satu cara untuk mengimplementasikan sistem parallelism adalah menggunakan module multiprocessing. Modul multiprocessing memungkinkan kita untuk membuat banyak proses, salah satunya adalah dengan interpreter itu sendiri. Python juga memiliki library built-in threading, module multiprocessing membuat proses baru, sedangkan threading membuat threads baru. multiprocessing adalah package yang mendukung proses menggunakan API yang mirip dengan modul threading. multiprocessing menawarkan remote dan local, yang secara efektif melebihi Global Interpreter Lock dengan menggunakan subproses daripada thread. Karena itu, modul multiprocessor memungkinkan programmer untuk sepenuhnya memanfaatkan beberapa prosesor CPU pada perangkat tertentu. Modul multiproses juga memperkenalkan API yang tidak memiliki analog dalam modul threading. Contoh utamanya adalah objek Pool yang menawarkan cara mudah untuk paralel eksekusi function di beberapa nilai input, mendistribusikan data input di seluruh proses (data parallelism). gambar

Pool Class

Salah satu contoh class dari multiprocessing adalah Pool. Pool class dapat digunakan untuk melalukan eksekusi function secara paralel. Class multiprocessing.Pool() memunculkan sekumpulan proses yang disebut workers dan dapat mengirimkan tugas menggunakan metode apply/apply_async dan map/map_async.

pool = multiprocessing_Pool()
pool = multiprocessing_Pool(processes=4) # menambahkan 4 worker

Contoh program

import multiprocessing # import multiprocessing library

def worker(num):
    '''proses yang akan dibuat di Pool'''
    return num*2 # mengkalikan angka dengan 2

if __name__ == '__main__': # insert proses di Windows -- tidak diperlukan di Linux
    angka = [1,2,3,4,5,6,7,8,9] # list untuk reiterate dan mengkalikan dengan 2
    p = multiprocessing.Pool(2) # membuat 2 prosesor pool
    value = p.map(func=worker,iterable=angka) # mengirim angka ke pool proses
    p.close() # mematikan pool proses 
    print(value) # print value baru

Output

[2, 4, 6, 8, 10, 12, 14, 16, 18]

Manfaat

Berikut beberapa manfaat dari multiprocessing:

  • Penggunaan CPU lebih efektif disaat menjalankan program yang memerlukan CPU yang tinggi.
  • Lebih banyak kontrol kepada child komponen daripada threads.
  • Lebih mudah untuk diprogram.

About

Simple concept example of python parallelism multiprocessing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages