Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Mencapai Paralelisme dalam Program Python
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)
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>
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>
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!