Подтвердить что ты не робот

Является ли параллельное программирование таким же, как параллельное программирование?

Они оба одинаковы? Глядя только на то, что параллельное или параллельное средство в геометрии, я бы определенно не сказал:

В геометрии две или более строки называются параллельными, если они пересекаются в одной точке.

и

Две линии в плоскости, которые не пересекаются или встречаются, называются параллельными линии.

Опять же, в программировании они имеют одинаковый смысл? Если да... Почему?

Спасибо

4b9b3361

Ответ 1

Я согласен с тем, что словарь геометрии находится в конфликте. Вместо этого подумайте о дорожках: два поезда, которые находятся на параллельных дорожках, могут работать независимо и одновременно с небольшим или отсутствующим взаимодействием. Эти поезда работают параллельно, параллельно.

Основная трудность использования заключается в том, что "одновременный" может означать "в то же время" (с поездами или кодом) или "в одном месте" (с геометрическими линиями). Для многих практических целей (поезда, потоковые ресурсы) эти два понятия непосредственно конфликтуют.

Естественный язык должен быть глупым, двусмысленным и запутанным. Но мы программисты. Мы можем укрыться в ясности, простоте и элегантности наших официальных языков программирования. Как perl.

Ответ 2

Из Википедии:

Параллельные вычисления - это форма вычисления, в которых программы разработанные как коллекции взаимодействующих вычислительные процессы, которые могут быть выполняется параллельно.

В принципе, программы могут быть написаны как параллельные программы, если они состоят из меньших взаимодействующих процессов. Параллельное программирование фактически выполняет эти процессы в одно и то же время.

Поэтому я предполагаю, что параллельное программирование действительно является стилем, который поддается процессам, выполняемым параллельно, для повышения производительности.

Ответ 3

Нет, определенно параллельный отличается от параллели. вот как именно.

Concurrency означает совместное использование ресурсов в одном и том же временном интервале. Например, несколько процессов могут совместно использовать один и тот же процессор или общую память или устройство ввода/вывода.

Теперь, по определению, два процесса являются параллельными, если только одно, если второе запускает выполнение до того, как первое завершится (на одном CPU). Если оба процесса работают одновременно - скажем, сейчас - одноядерный CPU, процессы параллельны, но не параллельны: в этом случае parallelism является только виртуальным и относится к ОС, выполняющей временное разделение. Кажется, что ОС выполняет несколько процессов одновременно. Если есть только один одноядерный процессор, только одна команда только из одного процесса может выполняться в любой конкретный момент времени. Поскольку человеческий масштаб времени в миллиарды раз медленнее, чем у современных компьютеров, ОС может быстро переключаться между процессами, чтобы обеспечить появление нескольких процессов, выполняемых в одно и то же время.

Если вы запускаете два процесса на двух разных процессорах, процессы параллельны: в одном и том же временном кадре нет совместного доступа, потому что каждый процесс работает на собственном процессоре. parallelism в этом случае не является виртуальным, а физическим. Здесь стоит отметить, что работа на разных ядрах одного и того же многоядерного процессора по-прежнему не может быть классифицирована как полностью параллельная, потому что процессы будут использовать одни и те же кэши процессора и даже будут бороться за них.