Dipecahkan: peta multiprosesor

Multiprosesor adalah teknik populer dalam pemrograman Python yang memungkinkan Anda menjalankan beberapa proses secara bersamaan, yang sering kali menghasilkan peningkatan kinerja dan penggunaan sumber daya sistem yang lebih efisien. Artikel ini membahas penggunaan multiproses perpustakaan dengan Python, yang secara khusus berfokus pada peta fungsi. Fungsi peta memungkinkan Anda menerapkan fungsi ke setiap item dalam iterable, seperti daftar, dan mengembalikan daftar baru beserta hasilnya. Dengan memanfaatkan multiprosesor, kita dapat memparalelkan proses ini untuk efisiensi dan skalabilitas yang lebih besar.

Pada artikel ini, kita akan mengeksplorasi masalah di mana multiprosesing dengan fungsi peta dapat menjadi solusi yang sangat baik, mendiskusikan pustaka dan fungsi yang relevan, memberikan penjelasan kode langkah demi langkah, dan mempelajari topik terkait yang dibangun di atas tulang punggung. multiprosesor dan fungsi peta.

Peta Multiprosesing: Masalah dan Solusinya

Masalah yang ingin kami selesaikan adalah meningkatkan performa dan efisiensi penerapan fungsi pada setiap item dalam iterable besar, seperti list, tuple, atau objek lain yang mendukung iterasi. Saat dihadapkan pada tugas seperti itu, penggunaan fungsi peta atau pemahaman daftar bawaan bisa sangat lambat dan tidak efisien.

Solusinya adalah dengan memanfaatkan perpustakaan multiprosesor dengan Python, khususnya Kolam kelas dan nya peta metode. Dengan menggunakan fungsi Pool.map() multiproses, kita dapat mendistribusikan eksekusi fungsi kita ke beberapa proses.

Penjelasan Kode Langkah-demi-Langkah

Mari kita uraikan kodenya dan ilustrasikan cara menggunakan fungsi peta multiprosesor secara efektif:

import multiprocessing
import time

def square(n):
    time.sleep(0.5)
    return n * n

# Create the list of numbers
numbers = list(range(10))

# Initialize the multiprocessing Pool
pool = multiprocessing.Pool()

# Use the map function with multiple processes
squared_numbers = pool.map(square, numbers)

print(squared_numbers)
  1. Pertama, impor multiproses modul, yang berisi alat yang diperlukan untuk memanfaatkan pemrosesan paralel dengan Python.
  2. Buat fungsi yang disebut kotak yang hanya tidur selama setengah detik dan kemudian mengembalikan kuadrat argumen masukannya. Fungsi ini menyimulasikan perhitungan yang memerlukan waktu penyelesaian yang cukup lama.
  3. Hasilkan daftar yang disebut nomor, yang berisi bilangan bulat dari 0 hingga 9 (inklusif).
  4. Inisialisasi a Kolam objek dari modul multiprosesor. Objek Pool berfungsi sebagai sarana untuk mengelola proses pekerja yang akan Anda gunakan untuk memparalelkan tugas Anda.
  5. Sebut peta metode pada objek pool, dan meneruskannya kotak fungsi dan nomor daftar. Metode peta kemudian menerapkan fungsi persegi ke setiap item dalam daftar angka secara bersamaan, menggunakan proses pekerja yang tersedia di kumpulan.
  6. Cetak daftar angka_kuadrat yang dihasilkan, yang harus berisi nilai kuadrat dari daftar angka.

Perpustakaan Multiproses Python

Python multiproses perpustakaan menyediakan sarana intuitif untuk mengimplementasikan paralelisme dalam program Anda. Ini menutupi beberapa kompleksitas yang biasanya terkait dengan pemrograman paralel dengan menawarkan abstraksi tingkat tinggi seperti Kolam. Kelas Pool menyederhanakan distribusi pekerjaan di beberapa proses, memungkinkan pengguna merasakan manfaat pemrosesan paralel dengan kerumitan minimal.

Modul Python Itertools dan Fungsi Terkait

Meskipun multiprosesing adalah solusi terbaik untuk banyak tugas paralel, perlu disebutkan bahwa Python juga menyediakan pustaka dan alat lain yang memenuhi kebutuhan serupa. Modul itertools, misalnya, menawarkan banyak fungsi yang beroperasi pada iterable, seringkali dengan peningkatan efisiensi. Beberapa itertools berfungsi seperti gambar() dan imap_unordered() dapat memparalelkan proses penerapan fungsi ke iterable. Namun, penting untuk dicatat bahwa itertools berfokus terutama pada solusi berbasis iterator, sedangkan perpustakaan multiprosesing menawarkan pendekatan paralelisme yang lebih komprehensif, menyediakan alat dan kemampuan tambahan di luar fungsi seperti peta.

Pos terkait:

Tinggalkan Komentar