The high complexity of the systems and the strict requirements with respect to response times and stability in a multi user environment there has increased the demand of high-performance computing (HPC). Parallel computing has become the dominant paradigm in computer architecture.
High-performance computing uses Computer Clusters , which may be distributed (Grid Computing). Also other computer systems with very large and efficiently organized storage capabilities can be used for high-performance computing. In order to profit from this computer architecture the applications must be designed using parallel programming models.
This may be achieved on a macro level (parallel processing) or on a micro level (Multi Core Programming).