Algorithms, Software and Hardware of Parallel Computers