Closed WernerHerzog closed 8 months ago
@WernerHerzog is it slow on every single run, or just the first run? On the very first execution RMG has to compile a bunch of code from RMS (an optional reactor simulation backend), so it is expected that the first execution can take some time. The old binaries did not include RMS, so the issue did not appear.
It looks like it is slow every run. I just ran the example "ethane-oxidation" twice. It required 11 minutes on the 2nd run and probably about the same time on the first run. If I remember correctly, this finished in just seconds with my previous installation. Could it be my computer?
Ah then this is probably part of a greater problem we have. You can also see in issues like this https://github.com/ReactionMechanismGenerator/RMG-Py/issues/2547 that the loading of all of the Julia stuff causes significant slowdowns for people that aren't using it in the first place.
I mention in the linked issue that I have a PR open to fix this. I'll get back on that.
An update that looks like a solution for me:
Notice that to run the command "python" rather than "python-jl" was used. Adding "-jl" threw an error about ZLIB_1.2.9 not being found, so I had forgotten about using it and hoped to be able to leave well enough alone.
I added/fixed the ZLIB error from this solution: https://stackoverflow.com/questions/48306849/lib-x86-64-linux-gnu-libz-so-1-version-zlib-1-2-9-not-found (NOTE: This can be quite a risky procedure and can reportedly break your computer badly. It was scary).
Then I followed the installation by source instructions on the rmg website starting at step 11. Installing the julia dependencies went off without a warning (previously there was an issue with mathplotlib). The ethane oxidation example runs in 2-3 minutes, much of which is starting the run.
It looks like it is a bit slower than the binary install was, but that is based off an imperfect memory, and it is much better than before with no julia-related errors/warning when running RMG. The website says the binary install uses less memory, which suggests that it may simply be noticeably faster. Please let me know if the perceived speed difference or the fix I made seem off in any way. Thanks!
Topic
General area which your question is related to.
Context
I started with a binary installation a couple of months ago to try out RMG. After failing to get AFM to work, I did a reinstall yesterday from the source. Now AFM appears to work, but RMG is much slower with a lot of julia warnings. The install was performed as outlined in section 3.3.1 on the RMG website. The repositories were cloned using https rather than ssh. There was a warning about matplotlib, but other than that the installation seemed to me to be OK. As far as I can tell, the installation works, but is so slow that I haven't finished a RMG run.
Question
Does any of this output indicate an obvious issue? Or is there any other common reason why this would be ~10x+ slower than the binary install? Thanks.
[Cantera@localhost liquid_phase_Azo3_NO]$ conda activate rmg_env (rmg_env) [Cantera@localhost liquid_phase_Azo3_NO]$ python /home/Cantera/RMG-Py/rmg.py mma_ox.py -n2 WARNING: method definition for getreactionindices at /home/Cantera/miniconda3/envs/rmg_env/share/julia/packages/ReactionMechanismSimulator/mfVTj/src/Phase.jl:320 declares type variable Q but does not use it. WARNING: method definition for Inlet at /home/Cantera/miniconda3/envs/rmg_env/share/julia/packages/ReactionMechanismSimulator/mfVTj/src/Interface.jl:243 declares type variable B but does not use it. WARNING: method definition for #ConstantTPDomain#328 at /home/Cantera/miniconda3/envs/rmg_env/share/julia/packages/ReactionMechanismSimulator/mfVTj/src/Domain.jl:42 declares type variable W but does not use it. WARNING: method definition for #ConstantTPDomain#328 at /home/Cantera/miniconda3/envs/rmg_env/share/julia/packages/ReactionMechanismSimulator/mfVTj/src/Domain.jl:42 declares type variable Q but does not use it. ...
Installation Information
Describe your installation method and system information if applicable.