Pengenalan:
Pemprosesan Berbilang, perpustakaan Python untuk tugasan selari, bertujuan untuk mengagihkan kerja merentasi pelbagai teras. Walau bagaimanapun, pengguna telah menghadapi isu di mana import Numpy mengganggu pengedaran ini, menyebabkan semua proses pekerja ditugaskan kepada satu teras.
Penjelasan:
Setelah mengimport Numpy , modul intensif CPU tertentu dalam Numpy (cth., OpenBLAS) boleh mengubah suai pertalian teras. Gangguan ini memperuntukkan semua proses pekerja kepada teras yang sama, menghapuskan faedah penyejajaran berbilang pemprosesan.
Penyelesaian:
Untuk menyelesaikan isu ini, tetapkan semula perkaitan tugas menggunakan kod coretan: os.system("taskset -p 0xff %d" % os.getpid()). Perintah ini memaksa sistem pengendalian untuk mengagihkan proses pekerja secara sama rata merentas semua teras yang tersedia.
Pertimbangan Tambahan:
Penyelesaian Alternatif:
Dengan menggunakan penyelesaian ini, multiprocessing boleh mengagihkan proses pekerja dengan berkesan merentas berbilang teras, menyelesaikan isu awal pengelompokan teras dan meningkatkan prestasi penyejajaran.
Atas ialah kandungan terperinci Mengapa Mengimport Numpy Mengehadkan Multiprocessing kepada Teras Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!