При работе с общей памятью возможны ситуации, когда один процессор заменил старые данные новыми, а второй обращается к ним, как к старым значениям. Чтобы избежать таких проблем, при каждом процессоре создается кэш-память, в которой помещаются защищенные от других процессоров данные.
Наибольшее увеличение производительности в многомашинных и в многопроцессорных комплексах достигается тогда, когда задача разделена по объему вычислений поровну между процессорами или машинами. Однако объем вычислений не всегда соответствует объему команд, ибо в одинаковых по количеству команд ветвях может существенно отличаться количество необходимых итераций (циклы while и repeat) из-за чего процессор с меньшим количеством итераций простаивает в ожидании результатов работы процессора с большим количеством итераций. Для выявления в программах параллельных ветвей разработаны средства, выявляющие параллельные ветви как автоматически при анализе программы, так и помогающие программисту изменять алгоритм задачи и проверять, насколько эти изменения позволяют перейти к параллельным вычислениям.