Center for Integrative Bioinformatics Vienna
Max F. Perutz Laboratories
Dr. Bohr Gasse 9
A-1030 Vienna, Austria
printable version  

   Max F. Perutz Laboratories
   University of Vienna
   Medical University, Vienna

   Deep Metazoan Phylogeny
   MaBS group
   Max Perutz Library


To allow programmers to employ the full computational capabilities of GPUs as well as multi-core CPU for the alignment calculation, MASon provides three implementations. (1) A CPU version including SSE instructions, (2) a CUDA based version for Nvidia graphic cards and (3) an OpenCL implementation suitable for GPUs and CPUs. All of them are encapsulated in shared objects also called dynamic linked libraries. Loading a shared object during runtime only requires a few lines of code (see dynamic loading). Each shared object exports functions:

1 IAlignment * CreateAlignment(int const mode)

Creates and returns an IAlignment object. The IAlignment interface defines functions for calculation the alignment scores and the full alignments. A detailed description can be found here.
1 void DeleteAlignment(SWOcl * instance)

Deletes the IAlignment object. All allocated memory is released.
1 void ExternalDeleteString(char * mem)

Deletes a char array which was allocated by the shared object (currently not used).
1 void SetLog(ILog * log)

Sets the ILog object.
1 void SetConfig(IConfig * config)

Sets the IConfig object.
1 int Cookie()

Returns the version number of the shared object.

Communication between the host program and the shared object is handeld via two interfaces. IConfig is used to pass parameters to the shared objects. A complete list of parameters can be found here. ILog is used to send messages from the shared object to the host program. In order to use MASon these two interfaces have to be implemented by the user. How to do this is illustrated in the example program included in the MASon source code.

contact imprint .