[Biojava-l] [Biojava-dev] accepted GSoC projects

Mark Chapman chapman at cs.wisc.edu
Thu Apr 29 01:09:07 UTC 2010


Here is a summary of the concurrency lessons I learned that are useful with or 
without the functional programming paradigm --

1: implement Callable<T> to submit tasks for concurrent/parallel/lazy execution
  - call() methods just wrap a call to the computation intensive method
2: share a fixed size thread pool with task queue to avoid
  - overhead of thread creation/destruction,
  - too many simultaneous threads, and
  - most blocking issues
3: place thread blocking Future<T>.get() calls within tasks later in the queue
  - while(!Future<T>.isDone()) Thread.yield(); may also help keep the pool active
4: execution in a task queue also enables easier logging and progress listening

There are two obvious places concurrent execution will fit in the MSA module --

1: building the distance matrix
  - queue pairwise alignment/scoring tasks in loop over all sequence pairs
2: progressive alignment
  - queue profile-profile alignment tasks in postfix traversal of guide tree 
(from leaves to root)

All our library copies of "Effective Java" are checked out, so I ordered a copy 
for my personal library.  The sample chapter on generics sold me.

Mark


On 4/28/2010 12:57 PM, Scooter Willis wrote:
> Andreas
>
> Those links were sent to me by Mark Southern who sits a couple doors down and a past BioJava contributor for the sequence viewer. We should avoid bringing in any external parallel frameworks but at minimum give ourselves enough abstraction with a backend multi-threaded job-processing approach to take advantage of a multi-processor box and a cluster via Terracotta.  If the abstraction of the jobs and the mapping of resources is generic enough then that allows different implementations in various cluster environments for those who have found the next best thing in parallel computing!
>
> Scooter
>
> On Apr 28, 2010, at 1:31 PM, Andreas Prlic wrote:
>
>>> Any ideas for the MSA project as well as more sources of programming wisdom
>>> are quite welcome.  For example, Andreas suggested a series about Java
>>> parallelism and lazy execution (
>>> http://apocalisp.wordpress.com/2008/06/18/parallel-strategies-and-the-callable-monad/).
>>>
>>
>>
>> credits for the links go to Scooter, who recommended those ;-)  My general
>> recommendation is to read Joshua Bloch's "Effective Java".
>> http://java.sun.com/docs/books/effective/ It is a collection of  rules that
>> should help in avoiding some frequently made mistakes...
>>
>> Andreas
>>
>>
>>
>>
>>
>>
>>> I also noted a useful tip for iterative development (
>>> http://en.flossmanuals.net/GSoCMentoring/Workflow).
>>>
>>> Thanks again,
>>> Mark
>>>
>>>
>>>
>>> On 4/27/2010 12:33 AM, Andreas Prlic wrote:
>>>
>>>> Dear all,
>>>>
>>>> Google has released the results for GSoC: Congratulations to Mark
>>>> Chapman and Jianjiong Gao for having been accepted to work on the MSA
>>>> and PTM projects for BioJava! Let's start the "community bonding"
>>>> process ( http://en.flossmanuals.net/GSoCMentoring/MindtheGap )  and we
>>>> all are looking forward to work with you on this during the summer. The
>>>> Mentors and co-mentors will be Peter Rose for the PTM and Scooter Willis
>>>> and Kyle Ellrott for the MSA project (and me).
>>>>
>>>> I want to thank all of of you who submitted proposals or showed interest
>>>> in other ways for the Google Summer of Code. We hope you are not too
>>>> disappointed if your application did not get accepted this time. We had
>>>> a  large number (52) applications and the the overall quality of the
>>>> submissions was very high. We would like to stay in touch with you and
>>>> we hope that you are interested in BioJava also beyond the scope of
>>>> GSoC. There are a number of different ways how to contribute:  We are
>>>> always looking for people who provide code and patches to further
>>>> improve our library, help out with the documentation on the Wiki page,
>>>> or answer questions on the mailing lists.
>>>>
>>>> Let's all give Mark and Jianjiong  a warm welcome to the BioJava
>>>> community.  For those of you who are interested in following the
>>>> progress of the projects, as usually, the development related
>>>> discussions are going to be on the biojava-dev list.
>>>>
>>>> Happy coding!
>>>>
>>>> Andreas
>>>>
>>>>
>>>>
>>
>>
>> --
>> -----------------------------------------------------------------------
>> Dr. Andreas Prlic
>> Senior Scientist, RCSB PDB Protein Data Bank
>> University of California, San Diego
>> (+1) 858.246.0526
>> -----------------------------------------------------------------------
>> _______________________________________________
>> biojava-dev mailing list
>> biojava-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-dev
>



More information about the Biojava-l mailing list