0 votes
2.6k views

Hello,

I have been having an issue recently with openLCA calculations, receiving the error message 'Out of memory. openLCA could not allocate enough physical memory to perform the calculation...'.

I've increased the memory to the full 16GB that my University laptop can offer through the IT service (as I don't have admin credentials), but this hasn't solved the issue as I'm still receiving this message.

I've uninstalled and reinstalled the software and databases I've been using to make sure it wasn't an install blip (also through admin IT) - again, still getting this message when I run the calculations.

My processes are fairly large, i.e. lots going on in the inputs part of the inventory, as they often represent a field on a farm and all of the inputs/operations during one harvest year or calendar year. I use Ecoinvent 3.7.1 background data for many of the processes as well. 

I've read through all of the threads on this website about memory but I can't find a solution that has worked for me yet. Do we think this sounds like a hardware problem, i.e. is 16GB clearly not enough for what I'm trying to do, or a software problem?

I have tried to understand the log file error, as I'm hoping this will reveal more about the specific issue with memory. Can anyone help me to interpret what is going on?

Thanks a lot in advance!

Megan

28mainERRORorg.openlca.julia.JuliaFailed to load Julia libs from C:\Program Files (x86)\openLCA
java.lang.UnsatisfiedLinkError: Can't load library: C:\Program Files (x86)\openLCA\libgfortran-3.dll
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1827)
     at java.lang.Runtime.load0(Runtime.java:809)
     at java.lang.System.load(System.java:1086)
     at org.openlca.julia.Julia.loadFromDir(Julia.java:77)
     at org.openlca.app.App.getSolver(App.java:71)
     at org.openlca.app.rcp.RcpActivator.start(RcpActivator.java:68)
     at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842)
     at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
     at java.security.AccessController.doPrivileged(Native Method)
     at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834)
     at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791)
     at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1013)
     at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365)
     at org.eclipse.osgi.container.Module.doStart(Module.java:598)
     at org.eclipse.osgi.container.Module.start(Module.java:462)
     at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:493)
     at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
     at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
     at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:330)
     at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:396)
     at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:474)
     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:423)
     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:415)
     at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:155)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
     at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:620)
     at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
     at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
     at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
     at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:498)
     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
     at org.eclipse.equinox.launcher.Main.run(Main.java:1468) 
in openLCA by (140 points)

1 Answer

0 votes
by (113k points)
Hi, the error message is not related to the memory issue but relates to that the numerical fast libraries cannot be found - you either didn't download them, or do not have write access where openLCA is installed, so they cannot be installed. Maybe, since "IT admin" needs check your installation, also the memory allocation update wasn't written to your installation directory. So either you install openLCA from the zip yourself (just download and extract in your user directory), and do these steps then yourself (download the libraries from the "you can make openLCA faster" banner on the welcome screen, and adapt the memory), or ask your IT admin to download the libraries (which makes openLCA around 5 times faster) and to adapt the memory, in the traditional application installation. Note that for "uninstalling" the extracted zip version, you simply need to delete the directory.

16 GB Ram should be ok also for larger systems, but if you have many systems open in parallel, or make a project that compares many product systems, then this can be exceeded. Also for exiobase e.g. more memory is good.

I hope this is useful, best wishes, Andreas
by (140 points)
Thank you so much Andreas! I will get back in contact with IT and download those libraries :)
by (100 points)
Thank for the observation, the same happened to me on an MBP 14". As Andreas commented, you just need to download the library.. the system provides you with that option
...