Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Tidak Boleh Memperuntukkan Tatasusunan NumPy Besar pada Ubuntu, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Saya Tidak Boleh Memperuntukkan Tatasusunan NumPy Besar pada Ubuntu, dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-11-23 21:34:14
asal
361 orang telah melayarinya

Why Can't I Allocate Large NumPy Arrays on Ubuntu, and How Can I Fix It?

Kekangan Peruntukan Memori dalam Numpy untuk Tatasusunan Besar

Menghadapi ralat semasa cuba memperuntukkan tatasusunan numpy yang besar pada Ubuntu 18, "Tidak dapat memperuntukkan tatasusunan dengan bentuk dan jenis data," isu ini tidak ditemui pada MacOS. Sebab di sebalik perbezaan ini terletak pada mod pengendalian overcommit sistem.

Pengendalian Terlalu Komit dan Peruntukan Memori

Mod pengendalian overcommit menentukan cara sistem mengurus permintaan peruntukan memori. Dalam mod lalai (0), kernel menyemak sama ada terdapat memori fizikal yang mencukupi untuk melakukan permintaan peruntukan. Jika tidak, ia menolak peruntukan. Dalam mod overcommit 1, kernel sentiasa membenarkan peruntukan, tanpa mengira memori fizikal yang tersedia.

Resolution

Untuk menyelesaikan isu ini pada Ubuntu, anda perlu mendayakan mod overcommit 1. Sebagai root, jalankan arahan berikut:

$ echo 1 > /proc/sys/vm/overcommit_memory
Salin selepas log masuk

Ini akan menukar mod pengendalian overcommit kepada 1, membenarkan peruntukan tatasusunan numpy yang besar.

Tasusunan Jarang dan Memori Maya

Mod overcommit 1 boleh berguna untuk tatasusunan jarang, di mana hanya sebahagian kecil daripada memori yang diperuntukkan sebenarnya digunakan. Ini kerana sistem hanya menyerahkan memori fizikal pada halaman yang ditulis secara eksplisit, dengan itu mengekalkan ingatan fizikal.

Amaran

Adalah penting untuk ambil perhatian bahawa semasa mod overcommit 1 membenarkan peruntukan yang besar, ia boleh membawa kepada ketidakstabilan sistem yang berpotensi jika memori yang diperuntukkan melebihi memori fizikal yang tersedia. Gunakan mod overcommit 1 dengan berhati-hati dan pantau penggunaan memori sistem anda dengan teliti.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memperuntukkan Tatasusunan NumPy Besar pada Ubuntu, dan Bagaimana Saya Boleh Membetulkannya?. 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