Cara Mencapai Paralelisme dalam Program Python

Mary-Kate Olsen
Lepaskan: 2024-10-22 19:55:34
asal
227 orang telah melayarinya

How to Achieve Parallelism in Python Programs

Pengaturcaraan Selari dalam Python: Penyelesaian kepada Cabaran Paralelisme

Pengaturcaraan selari bertujuan untuk meningkatkan prestasi dengan melaksanakan berbilang tugas serentak. Dalam Python, OpenMP, yang biasa digunakan dalam C , tidak mudah digunakan. Artikel ini membincangkan persoalan melaksanakan selari dalam program Python, menangani cabaran menjalankan fungsi bebas secara serentak.

Struktur kod yang diberikan:

solve1(A)
solve2(B)
Salin selepas log masuk

memerlukan mengenal pasti fungsi bebas dalam kod. Dalam contoh ini, solve1 dan solve2 ialah dua fungsi yang berasingan.

Untuk menyelaraskan kod ini, pertimbangkan untuk menggunakan modul berbilang pemprosesan dalam Python, yang membenarkan selari berasaskan proses. Dalam senario yang diberikan, kumpulan pemprosesan boleh digunakan:

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

Pendekatan ini menggunakan berbilang proses, satu untuk setiap teras CPU, untuk melaksanakan fungsi bebas secara serentak. Pembahagian kerja ini berpotensi mengurangkan masa berjalan program.

Pilihan lain untuk memetakan senarai kepada satu fungsi ialah:

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

Adalah penting untuk ambil perhatian bahawa urutan tidak seharusnya digunakan untuk keselarian dalam Python kerana GIL (Global Interpreter Lock) menghalang berbilang benang daripada melaksanakan kod Python secara serentak, menjadikan pelaksanaan selari tidak berkesan.

Atas ialah kandungan terperinci Cara Mencapai Paralelisme dalam Program Python. 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!