Python Memory Error using Numpy only with Ubuntu?











up vote
1
down vote

favorite












I have a strange memory error when using Numpy on an Ubuntu server. The server has 64GB of RAM and 250GB additional swap space and memlock is unlimited.



However, if I type



import numpy as np

x = 1000000
np.zeros((x,x))


I get a memory error. If I do the same on my 16GB Ram Macbook it works fine.



How can this happen? I want to use the server for numerical experiments and it just doesn't work. The experiments run fine on my Macbook, and the Python process uses only 2GB of RAM. Is there a way to prevent the Memory Error on the server?










share|improve this question






















  • Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
    – Willem Van Onsem
    Nov 11 at 14:59










  • So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
    – Willem Van Onsem
    Nov 11 at 15:02










  • So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
    – TheWaveLad
    Nov 11 at 15:05










  • "If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
    – Warren Weckesser
    Nov 11 at 15:29








  • 2




    Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
    – Warren Weckesser
    Nov 11 at 15:33















up vote
1
down vote

favorite












I have a strange memory error when using Numpy on an Ubuntu server. The server has 64GB of RAM and 250GB additional swap space and memlock is unlimited.



However, if I type



import numpy as np

x = 1000000
np.zeros((x,x))


I get a memory error. If I do the same on my 16GB Ram Macbook it works fine.



How can this happen? I want to use the server for numerical experiments and it just doesn't work. The experiments run fine on my Macbook, and the Python process uses only 2GB of RAM. Is there a way to prevent the Memory Error on the server?










share|improve this question






















  • Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
    – Willem Van Onsem
    Nov 11 at 14:59










  • So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
    – Willem Van Onsem
    Nov 11 at 15:02










  • So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
    – TheWaveLad
    Nov 11 at 15:05










  • "If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
    – Warren Weckesser
    Nov 11 at 15:29








  • 2




    Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
    – Warren Weckesser
    Nov 11 at 15:33













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I have a strange memory error when using Numpy on an Ubuntu server. The server has 64GB of RAM and 250GB additional swap space and memlock is unlimited.



However, if I type



import numpy as np

x = 1000000
np.zeros((x,x))


I get a memory error. If I do the same on my 16GB Ram Macbook it works fine.



How can this happen? I want to use the server for numerical experiments and it just doesn't work. The experiments run fine on my Macbook, and the Python process uses only 2GB of RAM. Is there a way to prevent the Memory Error on the server?










share|improve this question













I have a strange memory error when using Numpy on an Ubuntu server. The server has 64GB of RAM and 250GB additional swap space and memlock is unlimited.



However, if I type



import numpy as np

x = 1000000
np.zeros((x,x))


I get a memory error. If I do the same on my 16GB Ram Macbook it works fine.



How can this happen? I want to use the server for numerical experiments and it just doesn't work. The experiments run fine on my Macbook, and the Python process uses only 2GB of RAM. Is there a way to prevent the Memory Error on the server?







python numpy out-of-memory ubuntu-18.04






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 11 at 14:55









TheWaveLad

3371621




3371621












  • Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
    – Willem Van Onsem
    Nov 11 at 14:59










  • So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
    – Willem Van Onsem
    Nov 11 at 15:02










  • So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
    – TheWaveLad
    Nov 11 at 15:05










  • "If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
    – Warren Weckesser
    Nov 11 at 15:29








  • 2




    Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
    – Warren Weckesser
    Nov 11 at 15:33


















  • Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
    – Willem Van Onsem
    Nov 11 at 14:59










  • So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
    – Willem Van Onsem
    Nov 11 at 15:02










  • So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
    – TheWaveLad
    Nov 11 at 15:05










  • "If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
    – Warren Weckesser
    Nov 11 at 15:29








  • 2




    Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
    – Warren Weckesser
    Nov 11 at 15:33
















Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
– Willem Van Onsem
Nov 11 at 14:59




Given you fill the array with values, it will produce an error on both machines, since here you will need at least 1'000GB of memory to store the values if these are bytes, let alone if these are doubles (then that will result in 8'000GB).
– Willem Van Onsem
Nov 11 at 14:59












So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
– Willem Van Onsem
Nov 11 at 15:02




So the only reason why this might work here, is because it used a sparse matrix. But from the moment you start "filling" the matrix with values, that will result in trouble.
– Willem Van Onsem
Nov 11 at 15:02












So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
– TheWaveLad
Nov 11 at 15:05




So Mac OS seems to do a different kind of memory allocation? the resulting matrix will indeed be sparse, and it would be better to use sparse matrices from scipy, but the different behavior on the two machines is strange.
– TheWaveLad
Nov 11 at 15:05












"If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
– Warren Weckesser
Nov 11 at 15:29






"If I do the same on my 16GB Ram Macbook it works fine." It surely does not work as fine as you think. Try, for example, z = np.zeros(1000000, 1000000); z[...] = 1. That is, actually write data to all the elements of z.
– Warren Weckesser
Nov 11 at 15:29






2




2




Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
– Warren Weckesser
Nov 11 at 15:33




Also, numpy does not create a sparse matrix on Mac OS. Numpy does not have sparse matrices. The difference is in how Mac OS handles memory allocation.
– Warren Weckesser
Nov 11 at 15:33

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249931%2fpython-memory-error-using-numpy-only-with-ubuntu%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249931%2fpython-memory-error-using-numpy-only-with-ubuntu%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Full-time equivalent

さくらももこ

13 indicted, 8 arrested in Calif. drug cartel investigation