Provided two types of runners. The first (which is also tested) is a single process runner that plays well with the python GIL. The second is a multiprocessing runner that terminates given specific time constraints. The multiprocessing module side is still under test