Software tools for parallel programming and high performance computing applications