From: Andreev Nikita (nik_at_kemsu.ru)
Date: Mon Dec 14 2009 - 21:26:16 PST
Hello guys, I am working on tracing UPC applications through GASP interface. To order resulting events from all threads I need to somehow synhronize time among them. One way is to use NTP and gettimeofday (global timer). Then I can simply substract timestamp of the earliest event from all other timestamps to obtain relative time. But NTP itself is most likely not enough accurate for that task. (Can somebody confirm or deny that?) There is high-precision wall-clock timer support in Berkeley UPC. But as I understand bupc_ticks_now(), bupc_ticks_to_us() and bupc_ticks_to_ns() give me relative thread times. And I can't find any way to synchronize them. Parallel Performance Wizard v2.2 Developer's Guide says: "The UPC and SHMEM language-depending implementations also include a simple clock synchronization that is based on F. Cristian's paper entitled �A Probabilistic Approach to Distributed Clock Synchronization� which has been modified to use one-sided communications. The global clock synchronization algorithm is essentially remote clock reading and is very simple, but effective, and is used to adjust timestamps on trace records during the merge phase." How is it implemented in Berkeley UPC and how can I utilize it? Happy Christmas and New Year! Nikita