1. A method for operating a multi-threading computational system comprising: identifying related events; allocating said related events to a first thread; allocating unrelated events to a second thread; wherein said related events allocated to said first thread are executed by a computer in sequence and said unrelated events allocated to said second thread is executed by said computer in parallel to execution of said first thread.