Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.java > #8943 > unrolled thread

Java-help for BBMap needed

Started byAndreas Tille <andreas@an3as.eu>
First post2016-03-19 10:30 +0100
Last post2016-03-20 18:40 +0100
Articles 6 — 2 participants

Back to article view | Back to linux.debian.maint.java


Contents

  Java-help for BBMap needed Andreas Tille <andreas@an3as.eu> - 2016-03-19 10:30 +0100
    Re: Java-help for BBMap needed Felix Natter <fnatter@gmx.net> - 2016-03-20 16:30 +0100
      Re: Java-help for BBMap needed Andreas Tille <andreas@an3as.eu> - 2016-03-20 18:10 +0100
        Re: Java-help for BBMap needed Andreas Tille <andreas@an3as.eu> - 2016-03-20 18:20 +0100
      Re: Java-help for BBMap needed Felix Natter <fnatter@gmx.net> - 2016-03-20 18:10 +0100
        Re: Java-help for BBMap needed Felix Natter <fnatter@gmx.net> - 2016-03-20 18:40 +0100

#8943 — Java-help for BBMap needed

FromAndreas Tille <andreas@an3as.eu>
Date2016-03-19 10:30 +0100
SubjectJava-help for BBMap needed
Message-ID<relmN-6i1-3@gated-at.bofh.it>
Hi,

I just injected some rudimentary packaging for BBMap[1] which is a Java
project but has no dedicated Build-System - it does not even create a
JAR.  My very naive approach to create a JAR ended up in

...
jar -cmf debian/manifest bbmap.jar `find current -name "*.class"`
current/stream/mpi/MPIWrapper.java:48: error: cannot find symbol
				Shared.MPI_RANK=MPI.COMM_WORLD.getRank();
				                              ^
  symbol:   method getRank()
  location: variable COMM_WORLD of type Intracomm
current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
				                                   ^
  symbol:   method getSize()
  location: variable COMM_WORLD of type Intracomm
current/stream/mpi/MPIWrapper.java:82: error: cannot find symbol
			MPI.COMM_WORLD.bcast(bLength,1,MPI.INT,0); // can't probe a broadcast, so send message size first
			              ^
  symbol:   method bcast(int[],int,Datatype,int)
  location: variable COMM_WORLD of type Intracomm
current/stream/mpi/MPIWrapper.java:83: error: cannot find symbol
			MPI.COMM_WORLD.bcast(b,b.length,MPI.BYTE,0); // broadcast the actual message
			              ^
  symbol:   method bcast(byte[],int,Datatype,int)
  location: variable COMM_WORLD of type Intracomm

Any idea how to fix this?

Kind regards

      Andreas.

[1] https://anonscm.debian.org/git/debian-med/bbmap.git

-- 
http://fam-tille.de

[toc] | [next] | [standalone]


#8944

FromFelix Natter <fnatter@gmx.net>
Date2016-03-20 16:30 +0100
Message-ID<reNsJ-gQ-5@gated-at.bofh.it>
In reply to#8943
Andreas Tille <andreas@an3as.eu> writes:

> Hi,

hello Andreas,

> I just injected some rudimentary packaging for BBMap[1] which is a Java
> project but has no dedicated Build-System - it does not even create a
> JAR.  My very naive approach to create a JAR ended up in

The package your are developing uses "javahelper" helper,
which takes care of compiling and generating a jar.
(You can generate a package using "jh_makepkg" from that package.)

(If there are resources, you need to add them manually to the jar,
though (see [1]))

Why do you override override_dh_auto_build without running
dh_auto_build? That way you turn off javahelper's logic for compiling
and jar'ing. [1] is an example for using javahelper.
(you probably only need to create debian/javabuild [2] and not override
dh_auto_build).

Also see /usr/share/doc/javahelper/tutorial.html.

[1] http://anonscm.debian.org/cgit/pkg-java/libjsyntaxpane-java.git/tree/debian/rules
[2] http://anonscm.debian.org/cgit/pkg-java/libjsyntaxpane-java.git/tree/debian/javabuild

> ...
> jar -cmf debian/manifest bbmap.jar `find current -name "*.class"`
> current/stream/mpi/MPIWrapper.java:48: error: cannot find symbol
> 				Shared.MPI_RANK=MPI.COMM_WORLD.getRank();

Not sure what you are doing here, Does the command (create jar from
class files) really match with the error message (compilation failure)?

>   symbol:   method getRank()
>   location: variable COMM_WORLD of type Intracomm
> current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
> 				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
> 				                                   ^
>   symbol:   method getSize()

It looks like bbmap requires the methods getRank() and getSize()
on mpi.Intracomm, and this method does not seem to be available in
mpj-0.42+dfsg.
(I couldn't find it in mpj-0.44 either [3] [4])

[3] https://sourceforge.net/projects/mpjexpress/files/
[4] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html

Maybe we should ask the mpjexpress folks which
mpjexpress to use or how to fix/patch bbmap [5]?

Does anyone on this list know more about MPI for java?

[5] https://anonscm.debian.org/git/debian-med/bbmap.git/tree/current/stream/mpi/MPIWrapper.java

Cheers and Best Regards,
-- 
Felix Natter

[toc] | [prev] | [next] | [standalone]


#8946

FromAndreas Tille <andreas@an3as.eu>
Date2016-03-20 18:10 +0100
Message-ID<reP1v-1q8-11@gated-at.bofh.it>
In reply to#8944
On Sun, Mar 20, 2016 at 04:27:55PM +0100, Felix Natter wrote:
> > project but has no dedicated Build-System - it does not even create a
> > JAR.  My very naive approach to create a JAR ended up in
> 
> The package your are developing uses "javahelper" helper,
> which takes care of compiling and generating a jar.

I was not aware of this since I assumed at least a Java typical build
system would be required.  I commited a change using jh_build now
instead of my own build commands.  Thanks a lot for the hint.

> (You can generate a package using "jh_makepkg" from that package.)
> 
> (If there are resources, you need to add them manually to the jar,
> though (see [1]))
> 
> Why do you override override_dh_auto_build without running
> dh_auto_build? That way you turn off javahelper's logic for compiling
> and jar'ing. [1] is an example for using javahelper.
> (you probably only need to create debian/javabuild [2] and not override
> dh_auto_build).
> 
> Also see /usr/share/doc/javahelper/tutorial.html.
> 
> [1] http://anonscm.debian.org/cgit/pkg-java/libjsyntaxpane-java.git/tree/debian/rules
> [2] http://anonscm.debian.org/cgit/pkg-java/libjsyntaxpane-java.git/tree/debian/javabuild

Thanks for the helpful hints.
 
> > ...
> > jar -cmf debian/manifest bbmap.jar `find current -name "*.class"`
> > current/stream/mpi/MPIWrapper.java:48: error: cannot find symbol
> > 				Shared.MPI_RANK=MPI.COMM_WORLD.getRank();
> 
> Not sure what you are doing here, Does the command (create jar from
> class files) really match with the error message (compilation failure)?

The jh_build call results in the same problem.
 
> >   symbol:   method getRank()
> >   location: variable COMM_WORLD of type Intracomm
> > current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
> > 				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
> > 				                                   ^
> >   symbol:   method getSize()
> 
> It looks like bbmap requires the methods getRank() and getSize()
> on mpi.Intracomm, and this method does not seem to be available in
> mpj-0.42+dfsg.
> (I couldn't find it in mpj-0.44 either [3] [4])

Apropos mpj:  Its maintained by the Debian team for historical reasons.
I'd be happy to move it to pkg-java Git in case Debian Java team wants
to take over.
 
> [3] https://sourceforge.net/projects/mpjexpress/files/
> [4] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html
> 
> Maybe we should ask the mpjexpress folks which
> mpjexpress to use or how to fix/patch bbmap [5]?
> 
> Does anyone on this list know more about MPI for java?

I'd be really happy for any further hint.
 
> [5] https://anonscm.debian.org/git/debian-med/bbmap.git/tree/current/stream/mpi/MPIWrapper.java
> 
> Cheers and Best Regards,

Thanks for your help

     Andreas.

-- 
http://fam-tille.de

[toc] | [prev] | [next] | [standalone]


#8948

FromAndreas Tille <andreas@an3as.eu>
Date2016-03-20 18:20 +0100
Message-ID<rePbc-1tx-21@gated-at.bofh.it>
In reply to#8946
Hi again,

the issue below has a simple explanation: I do not need mpj but rather
mpi which should be available by enabling the java interface in the
openmpi source package.

Sorry for the confusion

    Andreas.

On Sun, Mar 20, 2016 at 06:04:39PM +0100, Andreas Tille wrote:
>  
> > >   symbol:   method getRank()
> > >   location: variable COMM_WORLD of type Intracomm
> > > current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
> > > 				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
> > > 				                                   ^
> > >   symbol:   method getSize()
> > 
> > It looks like bbmap requires the methods getRank() and getSize()
> > on mpi.Intracomm, and this method does not seem to be available in
> > mpj-0.42+dfsg.
> > (I couldn't find it in mpj-0.44 either [3] [4])
> 
> Apropos mpj:  Its maintained by the Debian team for historical reasons.
> I'd be happy to move it to pkg-java Git in case Debian Java team wants
> to take over.
>  
> > [3] https://sourceforge.net/projects/mpjexpress/files/
> > [4] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html
> > 
> > Maybe we should ask the mpjexpress folks which
> > mpjexpress to use or how to fix/patch bbmap [5]?
> > 
> > Does anyone on this list know more about MPI for java?
> 
> I'd be really happy for any further hint.
>  
> > [5] https://anonscm.debian.org/git/debian-med/bbmap.git/tree/current/stream/mpi/MPIWrapper.java
> > 
> > Cheers and Best Regards,
> 
> Thanks for your help
> 
>      Andreas.
> 
> -- 
> http://fam-tille.de
> 
> _______________________________________________
> Debian-med-packaging mailing list
> Debian-med-packaging@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-packaging
> 

-- 
http://fam-tille.de

[toc] | [prev] | [next] | [standalone]


#8947

FromFelix Natter <fnatter@gmx.net>
Date2016-03-20 18:10 +0100
Message-ID<reP1x-1q8-41@gated-at.bofh.it>
In reply to#8944
hello Andreas,

Felix Natter <fnatter@gmx.net> writes:
>>   symbol:   method getRank()
>>   location: variable COMM_WORLD of type Intracomm
>> current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
>> 				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
>> 				                                   ^
>>   symbol:   method getSize()
>
> It looks like bbmap requires the methods getRank() and getSize()
> on mpi.Intracomm, and this method does not seem to be available in
> mpj-0.42+dfsg.
> (I couldn't find it in mpj-0.44 either [3] [4])
>
> [3] https://sourceforge.net/projects/mpjexpress/files/
> [4] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html
>
> Maybe we should ask the mpjexpress folks which
> mpjexpress to use or how to fix/patch bbmap [5]?

I think we need to use Size() [1], Rank() [2] etc
(probably all methods starting with a capital letter):

[1] http://mpjexpress.org/docs/javadocs/mpi/Comm.html#Size%28%29
[2] http://mpjexpress.org/docs/javadocs/mpi/Comm.html#Rank%28%29

Can you patch this?

Cheers and Best Regards,
-- 
Felix Natter

[toc] | [prev] | [next] | [standalone]


#8949

FromFelix Natter <fnatter@gmx.net>
Date2016-03-20 18:40 +0100
Message-ID<rePuy-1CQ-11@gated-at.bofh.it>
In reply to#8947
Felix Natter <fnatter@gmx.net> writes:

> hello Andreas,

hello again Andreas,

> Felix Natter <fnatter@gmx.net> writes:
>>>   symbol:   method getRank()
>>>   location: variable COMM_WORLD of type Intracomm
>>> current/stream/mpi/MPIWrapper.java:49: error: cannot find symbol
>>> 				Shared.MPI_NUM_RANKS=MPI.COMM_WORLD.getSize();
>>> 				                                   ^
>>>   symbol:   method getSize()
>>
>> It looks like bbmap requires the methods getRank() and getSize()
>> on mpi.Intracomm, and this method does not seem to be available in
>> mpj-0.42+dfsg.
>> (I couldn't find it in mpj-0.44 either [3] [4])
>>
>> [3] https://sourceforge.net/projects/mpjexpress/files/
>> [4] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html
>>
>> Maybe we should ask the mpjexpress folks which
>> mpjexpress to use or how to fix/patch bbmap [5]?
>
> I think we need to use Size() [1], Rank() [2] etc
> (probably all methods starting with a capital letter):
>
> [1] http://mpjexpress.org/docs/javadocs/mpi/Comm.html#Size%28%29
> [2] http://mpjexpress.org/docs/javadocs/mpi/Comm.html#Rank%28%29
>
> Can you patch this?

You wrote:
>> the issue below has a simple explanation: I do not need mpj but rather
>> mpi which should be available by enabling the java interface in the
>> openmpi source package.

_Maybe_ you can also use mpjexpress (libmpj-java) [1]?

current/stream/mpi/MPIWrapper.java:82: error: cannot find symbol
			MPI.COMM_WORLD.bcast(bLength,1,MPI.INT,0); // can't probe a broadcast, so send message size first
			              ^
  symbol:   method bcast(int[],int,Datatype,int)
  location: variable COMM_WORLD of type Intracomm
current/stream/mpi/MPIWrapper.java:83: error: cannot find symbol
			MPI.COMM_WORLD.bcast(b,b.length,MPI.BYTE,0); // broadcast the actual message
			              ^
  symbol:   method bcast(byte[],int,Datatype,int)
  location: variable COMM_WORLD of type Intracomm

by patching this:

Intracomm.getSize() -> Intracomm.Size()
Intracomm.getRank() -> Intracomm.Rank()
Intracomm.bcase(byte[],int,Datatype,int) -> Intracomm.Bcast(Object, int,
  Datatype, int)

(I don't know what's "below" this...)

Otherwise, [3] might be worth checking, but adding java support to
openmpi is probably a better solution.

[1] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html
[2] http://mpjexpress.org/docs/javadocs/mpi/Intracomm.html#Bcast%28java.lang.Object,%20int,%20int,%20mpi.Datatype,%20int%29
[3] www.hpjava.org/mpiJava.html

Cheers and Best Regards,
-- 
Felix Natter

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.maint.java


csiph-web