Bagaimana untuk menyelaraskan Fungsi Python Menggunakan Multiprocessing dan Peta Selari?

Barbara Streisand
Lepaskan: 2024-10-22 20:35:09
asal
694 orang telah melayarinya

How to Parallelize Python Functions Using Multiprocessing and Parallel Maps?

Pengaturcaraan Selari dalam Python

Dalam Python, pengaturcaraan selari membenarkan bahagian tertentu program untuk dilaksanakan serentak, yang berpotensi meningkatkan prestasi. Untuk mencapai keselarian dalam Python, modul pemproses berbilang adalah pilihan yang popular.

Contoh:

Pertimbangkan struktur kod yang melibatkan dua fungsi bebas, solve1 dan solve2. Untuk menyelaraskan fungsi ini:

<code class="python">from multiprocessing import Pool
pool = Pool()
result1 = pool.apply_async(solve1, [A])  # Asynchronously evaluate solve1(A)
result2 = pool.apply_async(solve2, [B])  # Asynchronously evaluate solve2(B)
answer1 = result1.get(timeout=10)
answer2 = result2.get(timeout=10)</code>
Salin selepas log masuk

Kod ini mencipta kumpulan pemprosesan yang menghasilkan proses untuk mengendalikan pelaksanaan tak segerak solve1 dan solve2. Setiap proses memanfaatkan teras CPU yang berbeza untuk pelaksanaan serentak.

Pilihan Penyelarasan Alternatif:

Pilihan lain untuk menyelaraskan bahagian kod ialah menggunakan peta selari. Dalam kes sedemikian, anda akan mempunyai senarai hujah dan menggunakan satu fungsi pada setiap hujah secara selari:

<code class="python">args = [A, B]
results = pool.map(solve1, args)</code>
Salin selepas log masuk

Pertimbangan:

Walaupun benang juga boleh digunakan untuk bersamaan, Kunci Jurubahasa Global (GIL) dalam Python menghalang pelaksanaan selari objek Python, menjadikan urutan tidak berkesan untuk menyelaraskan kod Python.

Atas ialah kandungan terperinci Bagaimana untuk menyelaraskan Fungsi Python Menggunakan Multiprocessing dan Peta Selari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!