Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

WBOY
WBOYke hadapan
2023-04-12 14:25:151570semak imbas

1. Pengenalan

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

Apabila kita menggunakan Python setiap hari untuk pelbagai tugas pengiraan dan pemprosesan data, jika kita ingin mendapatkan kesan pecutan pengiraan yang jelas, cara yang paling mudah dan jelas ialah Ia adalah untuk mencari cara untuk melanjutkan tugas yang dijalankan pada satu proses secara lalai untuk menggunakan berbilang proses atau berbilang benang.

Bagi kita yang terlibat dalam analisis data, amat penting untuk mencapai operasi pecutan yang setara dengan cara yang paling mudah, untuk mengelakkan menghabiskan terlalu banyak masa untuk menulis program. Dalam artikel hari ini, Encik Fei, saya akan mengajar anda cara menggunakan fungsi yang berkaitan dalam joblib, perpustakaan yang sangat ringkas dan mudah digunakan, untuk mencapai kesan pecutan pengkomputeran selari dengan cepat.

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

2. Gunakan joblib untuk pengkomputeran selari

Sebagai perpustakaan Python pihak ketiga yang digunakan secara meluas (contohnya, joblib digunakan secara meluas dalam scikit-learn rangka kerja projek (pecutan selari banyak algoritma pembelajaran mesin), kita boleh menggunakan pip install joblib untuk memasangnya Selepas pemasangan selesai, mari kita pelajari tentang kaedah biasa operasi selari dalam joblib:

2.1 Menggunakan Selari dan. pecutan selari tertunda

Untuk melaksanakan pengkomputeran selari dalam joblib, anda hanya perlu menggunakan kaedah Selari dan tertunda Ia sangat mudah dan mudah digunakan Mari kita tunjukkan secara langsung dengan contoh kecil:

pelaksanaan joblib Idea pengkomputeran selari adalah untuk menjadualkan satu set subtugas pengkomputeran bersiri yang dijana melalui gelung dalam cara berbilang proses atau berbilang benang Apa yang perlu kita lakukan untuk tugas pengkomputeran tersuai adalah untuk merangkumnya dalam bentuk Ya, sebagai contoh:

import time

def task_demo1():

time.sleep(1)

return time.time()

Kemudian anda hanya perlu menetapkan parameter yang berkaitan untuk Parallel() seperti yang ditunjukkan di bawah, dan sambungkan gelung untuk mencipta proses terbitan senarai subtugas, yang tertunda. () digunakan untuk membalut fungsi tugas tersuai, dan kemudian menyambung () untuk lulus parameter yang diperlukan oleh fungsi tugas Parameter n_jobs digunakan untuk menetapkan bilangan pekerja untuk melaksanakan tugasan selari pada masa yang sama contoh, anda boleh melihat bahawa bar kemajuan meningkat dalam kumpulan 4. Anda boleh Ia boleh dilihat bahawa overhed masa terakhir juga telah mencapai kesan pecutan selari:

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

Antara mereka, parameter untuk Parallel() boleh dilaraskan mengikut keadaan khusus tugas pengkomputeran dan bilangan teras CPU mesin Parameter teras ialah:

  • belakang: . digunakan untuk menetapkan mod selari Mod berbilang proses mempunyai dua pilihan: 'loky' (lebih stabil) dan 'multiprocessing', dan multi-threading mempunyai 'threading' pilihan. Lalai ialah 'loky'.
  • n_jobs: digunakan untuk menetapkan bilangan pekerja untuk melaksanakan tugasan selari pada masa yang sama Apabila mod selari adalah berbilang proses, n_jobs boleh ditetapkan kepada bilangan logik Teras CPU mesin Jika melebihi, ia bersamaan dengan menghidupkan Untuk semua teras, anda juga boleh menetapkannya kepada -1 untuk membolehkan semua teras logik dengan cepat Jika anda tidak mahu semua sumber CPU diduduki oleh tugasan selari , anda boleh menetapkan nombor negatif yang lebih kecil untuk mengekalkan teras terbiar yang sesuai Contohnya, tetapkan kepada -2 Hidupkan semua teras - 1 teras, tetapkan kepada -3 untuk menghidupkan semua teras.

Sebagai contoh, dalam contoh berikut, pada mesin saya dengan 8 teras logik, dua teras dikhaskan untuk pengkomputeran selari:

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

Mengenai pilihan mod selari, disebabkan oleh pengehadan kunci penterjemah global apabila berbilang benang dalam Python, jika tugas anda intensif secara pengiraan, adalah disyorkan untuk menggunakan mod berbilang proses lalai untuk mempercepatkan Jika tugas anda intensif IO, seperti sebagai pembacaan fail, Penulisan, permintaan rangkaian, dsb., multi-threading adalah cara yang lebih baik dan n_jobs boleh ditetapkan dengan sangat besar Sebagai contoh mudah, anda boleh melihat bahawa melalui selari berbilang benang, kami menyelesaikan 1,000 permintaan dalam 5 saat. , jauh lebih pantas daripada hasil 100 permintaan dalam 17 saat dalam satu urutan (contoh ini adalah untuk rujukan sahaja, sila jangan melawat tapak web orang lain terlalu kerap semasa belajar dan mencuba):

Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python

Anda boleh menggunakan joblib dengan baik untuk mempercepatkan kerja harian anda mengikut tugasan sebenar anda.


Atas ialah kandungan terperinci Teknik pecutan selari yang ringkas dan mudah digunakan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam