I have experience in programming using POSIX threads. Most of my applications were linux client/server applications in which the server had to handle requests from multiple clients at the same time. I know how to adapt algorithms to parallel programming (e.g. using a new thread for background computing, split heavy computing operations on multiple threads, ...). Please explain me what kind of code you need to parallelize so we can discuss the details.