60rb x 60rb x 8 bytes ~ 29 GB
Memory ram saya cuman 4 GB, virtual memory juga saya set hingga 50 GB. Komputasi menyita sebagian besar prosesor hingga laptop sering tidak responsif. Untuk mereduksi penggunaan memory, saya gunakan format bilangan single yang hanya memerlukan 4 bytes memory. Cara konversinya mudah sekali, misalnya
A=eye(10000); % matriks identitas ordo 10rb x 10rb, akan disimpan dengan format double
A=single(A); % konversi format double ke format single
Dengan format single, matriks A yang awalnya perlu 800 MB, kini hanya 400 MB. Dan operasi matematik terhadap variabel 'single' akan menghasilkan variabel 'single' pula.
Tips selanjutnya, adalah menyimpan variabel2 di workspace ke MAT-file, khususnya array berordo tinggi agar kita tidak perlu komputasi ulang yang memakan banyak waktu. Simpanlah dengan perintah save
save('namamatfile.mat', 'namavariabel1', '-v7.3','-nocompression');
save('namamatfile.mat', 'namavariabel2', '-v7.3','-nocompression','-append');
Opsi -nocompression artinya tidak dilakukan kompresi pada variabel, disimpan apa adanya. Apabila dikompresi, memory yang diperlukan jauh lebih kecil namun aksesnya lambat. Opsi ini baru didukung di v7.3.
Opsi -append artinya menambahkan variabel2 ke MAT-file yang sudah ada. Bila tidak ada opsi ini, maka dianggap semua isi MAT-file dihapus dan diisi variabel2 saja.
Referensi
https://www.mathworks.com/help/matlab/ref/single.html
https://www.mathworks.com/help/matlab/ref/save.html
No comments:
Post a Comment