This algorithm can generally be implemented on distributed machines[1] as well as on shared memory machines.[13] The running time is O ( | V | 2 | P | ) + O ( | V | log ⁡ | P | ) {\displaystyle O({\tfrac {|V|^{2}}{|P|}})+O(|V|\log |P|)} , assuming that the reduce and broadcast operations can be performed in O ( log ⁡ | P | ) {\displaystyle O(\log |P|)} .[12] A variant of Prim's algorithm for shared memory machines, in which Prim's sequential algorithm is being run in parallel, starting from different vertices, has also been explored.[14] It should, however, be noted that more sophisticated algorithms exist to solve the distributed minimum spanning tree problem in a more efficient manner.