Mengapa Mengimport Numpy Mengehadkan Multiprocessing kepada Teras Tunggal?

Mary-Kate Olsen
Lepaskan: 2024-10-30 20:07:30
asal
248 orang telah melayarinya

Why Does Importing Numpy Limit Multiprocessing to a Single Core?

Impak Numpy Import terhadap Tugasan Teras Berbilang Pemprosesan

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:

  • Pendekatan ini telah diperhatikan tidak mempunyai kesan yang ketara pada prestasi Numpy, tetapi kesannya mungkin berbeza-beza bergantung pada mesin dan tugas tertentu.

Penyelesaian Alternatif:

  • Tetapkan pembolehubah persekitaran OPENBLAS_MAIN_FREE=1 sebelum menjalankan skrip.
  • Semasa penyusunan, ubah suai OpenBLAS Makefile.rule untuk memasukkan NO_AFFINITY=1.

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!

sumber:php.cn
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