Utilizing multi-cores is now the norm in order to increase performance while also saving energy. The need to break the physical limits of uniprocessing (by branch prediction or RAW dependencies etc.) while being cost and power effective at the same time were the motivation for the scientific and industrial communities to focus on multi-processor architectures. Howver, the parallelization of existing applications has very frequently proved to be a cumbersome task and in many cases the parallel application is slower than the original serial one. This work demonstrates the parallelization of one high-end bioinformatics application (multiple sequence alignment for amino acids or nucleotide sequences "MAFFT") as well as a novel security application (fingerprinting recognition "NBIS") on a highly parallel, yet a very low cost, system. We initially demonstrate the method for parallelizing the applications and then we focus on the end performance. One application is significantly accelerated when the 7 cores of the system are utilized whereas the other cannot get any gain when being ported to more than one cores; we also demonstrate certain optimization techniques. We believe that this paper can act as a guideline for programmers that need to port their serial code to a parallel machine.
展开▼