Software Optimization for High-Performance Computing