techniques for simulating a multiprocessor system . aspects of the present invention are based on such an observation that most memory accesses from different simulated processors do not conflict , and therefore the conservative policy for performing synchronization of all the memory accesses can waste a large amount of processing time . by identifying possibly conflicting memory accesses and only performing synchronization of these memory accesses , the synchronization cost can be reduced considerably . since the function simulator is able to operate faster and to perform the same memory accesses , the possibly conflicting memory accesses can be identified by first executing the function simulator .