Skip to content

Issues with load_model on HPC with singularity container #74

@tpellet

Description

@tpellet

Hi!

I have been trying to use PyNetLogo inside a container because my university HPC does not have NetLogo 6.3 installed. I have not been able to load a model successfully so far.

I am on a Ubuntu 20.04 container and whether I use the java jvm in the NetLogo 6.3 runtime folder or I install a separate java (13/17) using apt-get install, I still get a problem when loading the model.

Here is the error message (I have attached the singularity build for reference):

import pynetlogo

>>> jvm_path = "/usr/lib/jvm/java-17-openjdk-amd64/lib/server/"
>>> nl = pynetlogo.NetLogoLink(gui=False, netlogo_home='/opt/NetLogo', jvm_path=jvm_path)

>>> nl.load_model('/Netlogo/BC_model_inductive_firms.nlogo')

java.lang.NoSuchMethodError: 'void org.objectweb.asm.MethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String, boolean)'

        at org.nlogo.generate.Generator$InstructionGenerator.generateConstructor(Generator.scala:124)

        at org.nlogo.generate.Generator$InstructionGenerator.generate(Generator.scala:94)

        at [org.nlogo.generate.Generator.org](https://urldefense.com/v3/__http:/org.nlogo.generate.Generator.org__;!!PAKc-5URQlI!8ON1ThkluqUVPIDJG7Ee-Ix2k8FJz7ofXKVGQyVGBPuCd6dZ40okuc8HGSadKUzbVHVpNnTMXN8qADddyOZBQIDlUKfgm0U$)$nlogo$generate$Generator$$recurse(Generator.scala:29)

        at org.nlogo.generate.Generator.$anonfun$generate$1(Generator.scala:25)

        at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)

        at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)

        at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)

        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)

        at scala.collection.TraversableLike.map(TraversableLike.scala:286)

        at scala.collection.TraversableLike.map$(TraversableLike.scala:279)

        at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:198)

        at org.nlogo.generate.Generator.generate(Generator.scala:25)

        at org.nlogo.compile.CompilerMain$.assembleProcedure(CompilerMain.scala:89)

        at org.nlogo.compile.CompilerMain$.$anonfun$compile$1(CompilerMain.scala:65)

        at scala.collection.immutable.List.map(List.scala:293)

        at org.nlogo.compile.CompilerMain$.compile(CompilerMain.scala:65)

        at org.nlogo.compile.Compiler.compileProgram(Compiler.scala:54)

        at org.nlogo.headless.HeadlessModelOpener.openFromModel(HeadlessModelOpener.scala:50)


        at org.nlogo.headless.HeadlessWorkspace.openModel(HeadlessWorkspace.scala:535)


        at org.nlogo.headless.HeadlessWorkspace.open(HeadlessWorkspace.scala:502)

        at netLogoLink.NetLogoLink.loadModel(NetLogoLink.java:132)

I have been trying to debug it by installing different versions of Java (13/17) without success. I have tried changing the jvm path to the NetLogo folder '/opt/NetLogo/lib/runtime/lib/client/' without success. Same with setting JAVA_Home to the NetLogo runtime as opposed to the openJDK version.

When I do it on my windows computer simply setting JAVA_HOME to my NetLogo runtime folder it does work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions