- #1
Telemachus
- 835
- 30
Hi. I have written a Fortran program to solve a pde, which has six dimensions. One of these dimensions is time, 3 are for space, and the other are related to velocities.
The program works fine when I run it with ##38^3## points in space (one for each space dimension), and 80 other dimensions related to the velocities. However, I have tried to increase the number of velocity variables from 80 to 288, for which I would expect the program to run roughly 3 to 4 times the time it took with 80 variables.
The total number of unknowns is, in the first case: ##38^3\times 80 \times n_{time steps}##. In the second situation is ##38^3\times 288 \times n_{time steps}##. For the first run, it took exactly 494 seconds to solve it. However, when I run the second situation, it has been going on for hours, and it haven't finished, so I just quit the run, because I am suspecting that there is something going on. The number of time steps in both situations is 200, but I'm not storing the solutions in time, I don't think that matters.
However, I have enough ram for it, 16gb. It would require ##38^3\times 80 \times 8 bytes## of memory (I am working with double precision real numbers). This gives only 35.12 megabytes of memory required. And 126.43 megabytes for the 288 velocities. I don't see where the problem is. Is there something I am missing or this should be working? If it took 494 seconds in the first case, being the second problem less than 4 times bigger, I would expect this to be solved in roughly 2000 seconds, but it has been like an hour running without finishing.
The program works fine when I run it with ##38^3## points in space (one for each space dimension), and 80 other dimensions related to the velocities. However, I have tried to increase the number of velocity variables from 80 to 288, for which I would expect the program to run roughly 3 to 4 times the time it took with 80 variables.
The total number of unknowns is, in the first case: ##38^3\times 80 \times n_{time steps}##. In the second situation is ##38^3\times 288 \times n_{time steps}##. For the first run, it took exactly 494 seconds to solve it. However, when I run the second situation, it has been going on for hours, and it haven't finished, so I just quit the run, because I am suspecting that there is something going on. The number of time steps in both situations is 200, but I'm not storing the solutions in time, I don't think that matters.
However, I have enough ram for it, 16gb. It would require ##38^3\times 80 \times 8 bytes## of memory (I am working with double precision real numbers). This gives only 35.12 megabytes of memory required. And 126.43 megabytes for the 288 velocities. I don't see where the problem is. Is there something I am missing or this should be working? If it took 494 seconds in the first case, being the second problem less than 4 times bigger, I would expect this to be solved in roughly 2000 seconds, but it has been like an hour running without finishing.