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.
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:
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:
Antara mereka, parameter untuk Parallel() boleh dilaraskan mengikut keadaan khusus tugas pengkomputeran dan bilangan teras CPU mesin Parameter teras ialah:
Sebagai contoh, dalam contoh berikut, pada mesin saya dengan 8 teras logik, dua teras dikhaskan untuk pengkomputeran selari:
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):
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!