Guide to High Performance Distributed Computing