Dear all, I am new to MESMER too. I set up an input file but it cant run. In the output file, the prompt is as follows:
“Matrix allocation failed for matrix of size 4448Rank 0: FUNCTION: Matrix allocation failed.”
Is this a problem of insufficient memory allocation? I tried my best to see if there was a setting for memory usage, but I couldn't find it. Due to my poor programming knowledge, I couldn't find a good solution online, so I came to ask a question.
Sorry for taking up your time.
Thanks a lot.
In addition, I am running it on my personal computer with 32G of RAM, but mesmer does not seem to take up much memory when running, no more than 1.2G. as well as almost 10% CPU utilization/
Last edit: Kalok Ho 2024-05-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks also for sending your files, which I have now looked at. As you mentioned earlier, the mesmer.log file shows that there was a failure to allocate a matrix of size 4448. I think this refers to the allocation of a transition matrix and given that you are using quadruple-double precision (qd), this would equate to an allocation of 4448 by 4448 by 32 bytes or 633110528 bytes, and MESMER will need two of these matrices for a given condition set, one to hold the transition matrix and one to hold the associated eigenvectors. Given the amount of RAM that you have, I agree that this should not be a problem. However, there a couple things that may make this difficult: first, the version of MESMER you are using is a 32-bit application so in principle it can only work with as address space of 2^32, which means that it may be confined to a certain part of the memory. Second, the memory allocation that MESMER is asking for is a large contiguous block and it can be difficult for the OS to assign such a block, especially if it is confined to a specific set of memory addresses. There may be other reasons for this failure, and I would welcome your, or anyone else’s, opinion on this. The problem might be addressed by going to a 64-bit windows build, and this is currently in development (scheduled for release in autumn of this year).
In the meantime, there are other things we can do to work around the problem.
The first thing I noticed that you are using a grain size of 80 cm-1, however the <delta e="">d is set to 200 cm-1, I think we can safely double the grain size to 160 cm-1 which will half the number of grains and so reduce the allocation by a quarter. You are using qd for all temperatures, this is not required, qd is needed at low temperatures because the eigenvalues diverge in magnitude rapidly at lower temperatures, at the high temperatures one can use double-double or even just double precision. I have tested these changes out on some of the input that you have sent me, and I attach the results, which are mostly sensible but suffer a little from the problem that afflicts high temperatures, that of eigenvalues convergence, which leads to some negative rate coefficients.</delta>
Convergent eigenvalues also occur when there are shallow wells or low barriers relative to the temperature being used and looking at your system, I can see that there a number of these. For instance, the barrier between the CF2CCF2OH and IM7 wells is very low, less than 2 kcal/mol which is comparable with the internal rotation of ethane. I would therefore not treat these as separate isomers, especially given some of the high temperatures you are using but have one well and treat the motion between these two conformers using a hindered internal rotor. I am inclined to think the same about the IM0 complex at the beginning of the reaction, but I appreciate this is less clear cut as one would need at least two sets of Arrhenius parameters for the reactions to the two different carbon atoms.
Finally, I noticed that you had used QMRotors for some of the heavy species, but I think that you could use the classical approximation without loss of accuracy. I have used this in the amended input in the attached .zip.
Dear all, I am new to MESMER too. I set up an input file but it cant run. In the output file, the prompt is as follows:
“Matrix allocation failed for matrix of size 4448Rank 0: FUNCTION: Matrix allocation failed.”
Is this a problem of insufficient memory allocation? I tried my best to see if there was a setting for memory usage, but I couldn't find it. Due to my poor programming knowledge, I couldn't find a good solution online, so I came to ask a question.
Sorry for taking up your time.
Thanks a lot.
Hello,
Thank-you for getting in touch about MESMER.
Unfortunately, the link to the input file you sent appears to be broken.
Please could you upload the file again and I will take a look.
With regards, Struan
Dear Struan,
Thank you for your reply and concern.
Here is the input file and logfile.It just stopped running.
With regards, Kalok
In addition, I am running it on my personal computer with 32G of RAM, but mesmer does not seem to take up much memory when running, no more than 1.2G. as well as almost 10% CPU utilization/
Last edit: Kalok Ho 2024-05-20
Last edit: Kalok Ho 2024-05-18
Dear Kalok,
Thank-you again for supporting MESMER.
Thanks also for sending your files, which I have now looked at. As you mentioned earlier, the mesmer.log file shows that there was a failure to allocate a matrix of size 4448. I think this refers to the allocation of a transition matrix and given that you are using quadruple-double precision (qd), this would equate to an allocation of 4448 by 4448 by 32 bytes or 633110528 bytes, and MESMER will need two of these matrices for a given condition set, one to hold the transition matrix and one to hold the associated eigenvectors. Given the amount of RAM that you have, I agree that this should not be a problem. However, there a couple things that may make this difficult: first, the version of MESMER you are using is a 32-bit application so in principle it can only work with as address space of 2^32, which means that it may be confined to a certain part of the memory. Second, the memory allocation that MESMER is asking for is a large contiguous block and it can be difficult for the OS to assign such a block, especially if it is confined to a specific set of memory addresses. There may be other reasons for this failure, and I would welcome your, or anyone else’s, opinion on this. The problem might be addressed by going to a 64-bit windows build, and this is currently in development (scheduled for release in autumn of this year).
In the meantime, there are other things we can do to work around the problem.
The first thing I noticed that you are using a grain size of 80 cm-1, however the <delta e="">d is set to 200 cm-1, I think we can safely double the grain size to 160 cm-1 which will half the number of grains and so reduce the allocation by a quarter. You are using qd for all temperatures, this is not required, qd is needed at low temperatures because the eigenvalues diverge in magnitude rapidly at lower temperatures, at the high temperatures one can use double-double or even just double precision. I have tested these changes out on some of the input that you have sent me, and I attach the results, which are mostly sensible but suffer a little from the problem that afflicts high temperatures, that of eigenvalues convergence, which leads to some negative rate coefficients.</delta>
Convergent eigenvalues also occur when there are shallow wells or low barriers relative to the temperature being used and looking at your system, I can see that there a number of these. For instance, the barrier between the CF2CCF2OH and IM7 wells is very low, less than 2 kcal/mol which is comparable with the internal rotation of ethane. I would therefore not treat these as separate isomers, especially given some of the high temperatures you are using but have one well and treat the motion between these two conformers using a hindered internal rotor. I am inclined to think the same about the IM0 complex at the beginning of the reaction, but I appreciate this is less clear cut as one would need at least two sets of Arrhenius parameters for the reactions to the two different carbon atoms.
Finally, I noticed that you had used QMRotors for some of the heavy species, but I think that you could use the classical approximation without loss of accuracy. I have used this in the amended input in the attached .zip.
I hope this helps you to make some progress.
Regards, Struan
Dear Struan,
Thank you for your patient and detailed reply.
After receiving the file, I pondered it and ran it again and got good results. After clearing up some confusion, I will modify my other files further.
Looking forward to the release of the new version!
Thanks again for your help! (^-^)
Best regards, Kalok
Last edit: Kalok Ho 2024-05-24