raindrop писал(а):Вот я например хочу написать алгоритм для умножения матриц, чтобы каждое умножение строки на столбец выполнялось в отдельном потоке и на отдельном процессоре.
Что мне для этого надо использовать, Java и ее потоки, или какие-то специальные библиотеки?
Какие существуют эмуляторы, которые позволят смоделировать процесс исполнения моей программы на многих процессорах?
Для начала нужно написать такой алгоритм где умножение строки на столбец является абсолютно независимой часть (функцией)

Не на каком-то языке а просто в голове или в блок-схемах

А потом уже в зависимости от требований проекта выбирать платформу для реализации. Ну например, первое что мне в голову пришло:
- Java
- OpenMP
- posix threads
- MPI
Причем последнее позволит распараллелить процесс не только в пределах машины но и на несколько машин (если матрица ооочень большая)
Что касается эмуляторов, то я не совсем понял что имеется в виду. Зачем нужен эмулятор выполнения программы на нескольких процессорах если программирование на любой из указанных платформ можно вести та будто в машине стоит бесконечное количество процессоров? При этом фрэймворк (виртуальная машина или ОС) сам раскидает потоки на доступные процессоры (даже если их весго один.
Другое дело если хочется сэмулировать выполнение MPI программ на нескольких нодах сети имея всего одну машину, для этих целей можно взять Solaris+Zones+Crossbow