Tools and Techniques for High Performance Computing