next up previous
Next: Experimentation of the maximum Up: Parallel execution Previous: Parallel computing in the

Implementation of parallel computing

To realize portability of the system for various environments and flexible parallel computation depending on data, our programs have been written in KL1 (KLIC 2.002) [Ueda, 1985,Chikayama et al., 1988], which is parallel logic programming. We used Cray CS-6400 (shared memory system).

We have implemented another experimental program go/0 on PIM (Parallel Inference Machine) of ICOT to investigate efficiency of parallel computation [OOta et al., 1995]. The core algorithm of DeepForest is based on go/0. However, unlike go/0, amino acid sequences are available in DeepForest. If the depth of tree is n, number of terms of equation 1.8 is O(20n) in the case of amino acid sequences while it is O(4n)in the case of nucleotide sequences. Therefore, new algorithm was introduced for DeepForest to reduce computational time (Figure 1.5).


  
Figure: Efficient algorithm for optimizing branch lengths. Figures $1,2,\cdots,20$ represents conditional likelihoods corresponding to 20 amino acid states on each root of subtree.
\begin{figure}
\begin{center}
\epsfxsize=13.5cm
\epsffile{efficient.eps}\end{center}\end{figure}

For example, once conditional likelihoods $1,2,\cdots,20$ on the root of subtree 1 are obtained, these values are reused for the remaining 19 states on the root of subtree 2. This computation is iterated form leaves to the roots 2 and 3, finally, the likelihood value is committed for the unrooted tree. This algorithm is not sufficient for practical data analyses. However, it is enough for experimental usage described below.


next up previous
Next: Experimentation of the maximum Up: Parallel execution Previous: Parallel computing in the
Satoshi OOta
1999-03-06