PolyProcessInterface / ppi

2 stars 2 forks source link

Packaging de ppi en un simple .jar self-contained #40

Closed n-peugnet closed 4 years ago

n-peugnet commented 4 years ago

Comprends #37.

Sans ça le projet n'est pas vraiment utilisable en l'état. Les dépendances sont incluses et les NodeProcessExtensions sont dynamiquement loadés pour ne pas avoir à jouer du --classpath.

Avec ces commits il est maintenant possible d'executer ppi de cette manière:

java -jar ppi-0.2-dev-bundle.jar ExampleNodeProcess org.sar.ppi.peersim.PeerSimRunner 4

tout en ayant bien sûr auparavant packagé l'application et compilé la classe:

mvn package
javac --classpath ppi-0.2-dev-bundle.jar ExampleNodeProcess
Atlaoui commented 4 years ago

je sais pas si c'est d'ici que le problemme vien mais chez moi mpi ne trouve plus les fichier a executer je t mis la cmd et l'erreur que j'ai eu

mpirun --oversubscribe --np 5 java -cp /home/adrien/Documents/idea-IU-193.6494.35/lib/idea_rt.jar:/home/adrien/Documents/idea-IU-193.6494.35/plugins/junit/lib/junit5-rt.jar:/home/adrien/Documents/idea-IU-193.6494.35/plugins/junit/lib/junit-rt.jar:/home/adrien/ParallelProgramingInterface/target/test-classes:/home/adrien/ParallelProgramingInterface/target/classes:/usr/local/lib/mpi.jar:/usr/local/lib/djep-1.0.0.jar:/usr/local/lib/jep-2.3.0.jar:/usr/local/lib/peersim-1.0.5.jar:/home/adrien/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/home/adrien/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/adrien/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar org.sar.ppi.Ppi org.sar.ppi.AnnotatedProcessTest org.sar.ppi.mpi.MpiSubRunner 5 null
5 total processes failed to start
--------------------------------------------------------------------------
mpirun was unable to find the specified executable file, and therefore
did not launch the job.  This error was first reported for process
rank 0; it may have occurred for other processes as well.

NOTE: A common cause for this error is misspelling a mpirun command
      line parameter option (remember that mpirun interprets the first
      unrecognized command line token as the executable).

Node:       adrien-lenovo
Executable: java
--------------------------------------------------------------------------

org.sar.ppi.PpiException: An error occured with Mpi

    at org.sar.ppi.mpi.MpiRunner.run(MpiRunner.java:55)
    at org.sar.ppi.Ppi.main(Ppi.java:63)
    at org.sar.ppi.Ppi.main(Ppi.java:49)
    at org.sar.ppi.AnnotatedProcessTest.MpiAnnotatedProcessTest(AnnotatedProcessTest.java:50)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
n-peugnet commented 4 years ago

En tout cas @Atlaoui je ne vois pas de problème particulier dans la commande MPI. Essaye de faire mvn clean test tu peux aussi copier la commande MPI et la lancer toi même en modifiant le classpath pour essayer de lui faire trouve la classe

Atlaoui commented 4 years ago

java essayer de clean et le mvn test mais rien n y fait , c'est pas grave si tu peux juste mettre print de ta commande comme ça je débug la mienne

n-peugnet commented 4 years ago

voilà la mienne pour le master actuel:

mpirun --oversubscribe --np 5 java -cp /home/nicolas/GoogleDrive/M1SAR/PSAR/ppi/target/test-classes:/home/nicolas/GoogleDrive/M1SAR/PSAR/ppi/target/classes:/usr/local/lib/mpi.jar:/usr/local/lib/djep-1.0.0.jar:/usr/local/lib/jep-2.3.0.jar:/usr/local/lib/peersim-1.0.5.jar:/home/nicolas/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/home/nicolas/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/nicolas/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar: org.sar.ppi.Ppi org.sar.ppi.AnnotatedProcessTest org.sar.ppi.mpi.MpiSubRunner 5 null
n-peugnet commented 4 years ago

bon allez hop je merge ça

n-peugnet commented 4 years ago

je sais pas si c'est d'ici que le problemme vien mais chez moi mpi ne trouve plus les fichier a executer je t mis la cmd et l'erreur que j'ai eu

mpirun --oversubscribe --np 5 java -cp /home/adrien/Documents/idea-IU-193.6494.35/lib/idea_rt.jar:/home/adrien/Documents/idea-IU-193.6494.35/plugins/junit/lib/junit5-rt.jar:/home/adrien/Documents/idea-IU-193.6494.35/plugins/junit/lib/junit-rt.jar:/home/adrien/ParallelProgramingInterface/target/test-classes:/home/adrien/ParallelProgramingInterface/target/classes:/usr/local/lib/mpi.jar:/usr/local/lib/djep-1.0.0.jar:/usr/local/lib/jep-2.3.0.jar:/usr/local/lib/peersim-1.0.5.jar:/home/adrien/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/home/adrien/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/adrien/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar org.sar.ppi.Ppi org.sar.ppi.AnnotatedProcessTest org.sar.ppi.mpi.MpiSubRunner 5 null
5 total processes failed to start
--------------------------------------------------------------------------
mpirun was unable to find the specified executable file, and therefore
did not launch the job.  This error was first reported for process
rank 0; it may have occurred for other processes as well.

NOTE: A common cause for this error is misspelling a mpirun command
      line parameter option (remember that mpirun interprets the first
      unrecognized command line token as the executable).

Node:       adrien-lenovo
Executable: java
--------------------------------------------------------------------------

org.sar.ppi.PpiException: An error occured with Mpi

  at org.sar.ppi.mpi.MpiRunner.run(MpiRunner.java:55)
  at org.sar.ppi.Ppi.main(Ppi.java:63)
  at org.sar.ppi.Ppi.main(Ppi.java:49)
  at org.sar.ppi.AnnotatedProcessTest.MpiAnnotatedProcessTest(AnnotatedProcessTest.java:50)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.base/java.lang.reflect.Method.invoke(Method.java:567)
  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
  at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
  at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
  at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
  at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
  at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
  at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
  at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

@Atlaoui Ah je viens de comprendre. MPI n'a pas été compilé avec le support de java. C'est même marqué executable not found : Java

I'm faut réinstaller MPI avec les instructions du README

Atlaoui commented 4 years ago

j'ai réinstaller MPI , j'ai meme essayer de changer la commande parsque j'avais vue que l'ordre des argument n'était pas le meme comparé a la tien mais rien n'y fait , je pense que le probleme vien de la commande déja l'ordre entre la mienne est différent que la tien plus j'ai plus de truck dedan

NOTE: A common cause for this error is misspelling a mpirun command line parameter option (remember that mpirun interprets the first unrecognized command line token as the executable).

n-peugnet commented 4 years ago

C'est normal que le classpath soit différent (l'option -cp) il est propre à chaque machine. Verifie quelle version de mpirun tu utilises avec which mpirun ça devrait être /usr/local/bin.

En tout cas ce qui est sur c'est que la ton problème c'est que mpirun ne reconnait pas l'option java et croit que c'est le fichier à executer.

Atlaoui commented 4 years ago

ah c'est bon enfaite j'avais supprimer le java du shell pour le tp8 de srcs .