In sequential computing all algorithms are formulated using the von-Neumann model or the RAM-model. Also the programming models are based on them. In parallel computing, there is no such general purpose computational model, which can be used as a bridge between theory an practice. A lot of models have been proposed to close the gap, but no one has really reached this aim. Roughly speaking, in the history of modelling parallel computers there are two main streams which are still alive. The first stream of models can be called fine-grained models and the second one course-grained. The difference between the two approaches is mainly
While the fine-grained models correspond to sm-machines, the course-grained models belong to the distributed memory machines. Well-known representatives of the corse-grained models are BSP  and LogP . A fine-grained model is for example the QSM model  which is, in the end, derived from the PRAM model . As mentioned above, the new architecture is different from the sm- and dm-machines. Hence, it seems to be obvious, that there has to be some work in order to receive a model or a methododlogy with which it is possible to develop efficient algorithms for the new architecture.
At this point there will be the decription of the following models and methodologies:
As mentioned in the abstract, the nodes of the cluster can be of different types. In recent years, some models for heterogenous clusters have been developed. Here are some related papers. , , HiHCoHP . But at the moment i am not sure, if it is really necessary to consider the heterogenous models. Perhaps this would enlarge the work too much.