Ideas for Google Summer of Code/Optimise the VM for transfer

From Apertium
Jump to navigation Jump to search

The current VM for the transfer architecture of Apertium is up to five times slower than the XML tree-walking implementation. The job of this task is to optimise the C++ code to make it faster than XML tree-walking.

The rationale behind this is that XML tree-walking is quite slow and CPU intensive. In modern (3 or more stage) pairs, transfer takes up most of the CPU. There are other options, like bytecode for transfer, but we would like something that does not require external libraries and is adapted specifically for Apertium.


  • Profile the VM for transfer code.
  • Find out where the bottlenecks are.
  • Propose and implement speed ups to make VM for transfer faster than the tree-walking implementation.

Coding challenge[edit]

  • Install Apertium and VM for transfer
  • Choose a language pair and adjust it to use VM for transfer instead of the tree-walking implementation
  • Compare the speed of both implementations

Frequently asked questions[edit]

  • none yet, ask us something! :)

See also[edit]