[Biojava-l] Porting an Algorithm to Java GSoC 2012

Amr AL-Hossary amr_alhossary at hotmail.com
Tue Mar 20 01:39:33 UTC 2012


I agree with most of Scooter's opinions,

1) JNI can be used as an initial step, to use the current code until we work 
out the License issues.
2) Also it can be used as a reference conversion implementation.
3) Then it would be better for the student to (digest) the algorithm and 
rebuild it.
Here I add that
4) Even best converters can't map things like variables carrying array 
length into simply array.length.
5) Using already built-in algorithm libraries (searching, sorting, data 
structures) in java would be easier to maintain later on, plus being 
optimized for Java data types.

Amr


-----Original Message----- 
From: Scooter Willis
Sent: Tuesday, March 20, 2012 12:03 AM
To: Russ Kepler ; biojava-l at lists.open-bio.org
Subject: Re: [Biojava-l] Porting an Algorithm to Java GSoC 2012

3+ years ago we worked on a port of the reference implementation of the H264 
encoder/decoder to Java. Performance was actually very good that we didnt 
spend time on optimization. We used jazillian to do the initial conversion 
and it does a nice job on fairly clean code. They are no longer in business 
and I plan on contacting the developer to see if they would use their 
software for the initial conversion.

Doing a JNI conversion will be fairly easy to model the input and ouput 
paramaters of blast and/or hmmer. Neither code base is setup as a library so 
the number of mappings that need to be performed is minimal. The complexity 
of porting either from C/C++ to Java is high but also introduces a student 
to the field and thus has potential long term benefit.

With JNI high degree of success with minimal work. I would advocate that the 
initial effort is placed on conversion to determine the overall likelyhood 
of success where much will depend on the student. JNI should be a 
requirement even if conversion is successful.

JNI would also minimize GPL concerns of forking the HMMER codebase.

Scooter

----- Reply message -----
From: "Russ Kepler" <russ at kepler-eng.com>
To: "biojava-l at lists.open-bio.org" <biojava-l at lists.open-bio.org>
Subject: [Biojava-l] Porting an Algorithm to Java GSoC 2012
Date: Tue, Mar 20, 2012 8:06 am



On Monday, March 19, 2012 01:10:40 PM Andreas Prlic wrote:

> You are right, this is on a high level how such a conversion could be
> performed.

In my experience Java makes a poor C++ (or C) emulator.  The "convert C++ to
Java" might make an "OK" first pass but in the end you're going to want to
recode critical sections in original Java.  I've found that the really big
performance improvements are in using smarter algorithms in Java vs. some of
the 'brute force' approaches that work in C.
_______________________________________________
Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l

_______________________________________________
Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l 




More information about the Biojava-l mailing list