[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Java-help for BBMap needed

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

Reply to: