Вопрос сугубо теоретический (может, даже ему место не в development, а в talks, ну да ладно, пусть тут будет).
Вот для распараллеливания на системах с раздельной памятью (на кластерах) есть стандарт MPI. Наиболее известны мне OpenMPI и MPICH.
А для распараллеливания на симметричных мультипроцессорных системах с общей памятью (обычных многоядерных процах, к примеру), есть дохренища стандартов... в частности, нам в универе рассказывали про OpenMP, но слышал обо многих реализациях многопоточности (сейчас даже не идёт речь о том, какая из них лучше).
Вопрос вот в чём. Представим кластер с N компьютерами. На каждом компьютере M процессоров. Как максимизировать эффективность? Чтобы по возможности все процессоры были задействованы?
Просто-напросто использовать MPI на N*M потоков? или использовать MPI на N потоков, а каждый из этих потоков должен раздельно от этого параллелиться тем же OpenMP на системе с общей памятью?
Просто читал про то, что MPI всё-таки ориентирован именно на низкую пропускную способность канала... для локальных сетей, кластеров, и т.п. =) или ерунда это всё - писать на MPI и не париться и не думать ни о чём другом?