With software, it really depends on how deterministic your packet handling and timestamping routines are (or how deterministic the OS scheduler is). I was able to achieve accuracies of less than a microsecond on a Linux system, but it was "touchy".
For reference, there's an open source implementation called "ptpd" and "ptpd2".
PTP is mainly useful for situations where you want to synchronize many cheaper slave devices to a common master and it's not practical for each device to have its own GPS receiver, or for situations where the use of GPS isn't practical (or is prohibited) and you're more concerned about coherency between devices rather than traceability to a primary time reference (e.g. a telemetry network on an aircraft). Although, generally, the grand master of a PTP network is synchronized to GPS anyway.
Of course, you could achieve actual phase locked synchronization down to the clock cycle with something like SyncE + PTP, but with GPS, you need not worry about issues with asymmetry regarding messages transmitted over the internet (PTP needs to be routed through PTP capable switches which compensate for the residence time and was really meant for LANs).
I guess it really depends on your constraints, but if you’re able to use GPS, that would definitely be my first pick when it comes to synchronizing multiple devices.
The latest UBlox timing receiver (LEA-M8F) provides a PPS which is accurate to less than 20 nanoseconds (to the UTC second) and its built in oscillator has a typical holdover spec of 0.025 PPM (25 nanoseconds per second). If you want to get fancy, you can use the PPS to discipline an OCXO and get an even better holdover spec to handle the situations where your receiver may lose lock (which is unlikely if you’re able to have an antenna).
Basically, the accuracy of the UBlox GPS receivers (just an example since they're pretty cheap; I found a board for ~$150), is equal to or better than that of a usual PTP link (without SyncE), so you might as well just use GPS on each device if you can. It is simpler, IMO.
However, note that comparing GPS to PTP isn't necessarily valid since PTP is purely a method of conveying timing information between devices, and is not a time source itself, where as GPS is both a method of conveying timing information as well as a time source. In other words, a PTP network still needs a master device which itself is synchronized to (or is) an atomic clock.
Particularly if you're using it to sync between two different time zones that could well be looking at different satellites.
However, I don't know how much inaccuracy is introduced and whether it would have too much of an effect for the purposes of Google, et al.
Source: I work in finance as a techie.
"London-based trading technology company Fixnetix said Tuesday it has the world’s fastest trading application, a microchip that prepares a trade in 740 billionths of a second, or nanoseconds." (WSJ, 2011)
http://blogs.wsj.com/marketbeat/2011/06/14/wall-streets-need...
http://stackoverflow.com/questions/17256040/how-fast-is-stat...
That said, the Fixnetix stuff is only talking about one aspect of what's involved, and about as representative of reality as Cisco's published WARP speed figures in their Nexus 3500 range.