[Debian-med-packaging] Java-help for BBMap needed

Felix Natter fnatter at gmx.net
Sun Mar 20 17:35:20 UTC 2016


Felix Natter <fnatter at gmx.net> writes:

> hello Andreas,

hello again Andreas,

> Felix Natter <fnatter at 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



More information about the Debian-med-packaging mailing list