Comparison of algorithms for transient stability simulations on shared and distributed memory multiprocessors