Параллельные вычисления
Автор Ilije задал вопрос в разделе Другие языки и технологии
Что такое параллельное программирование? и получил лучший ответ
Ответ от Дина Рахимова[эксперт]
ответ:
Ответ от Krab Bark[гуру]
Программирование с учетом возможности распараллеливания потока команд для выполнения несколькими процессорами (или ядрами многоядерных процессоров).
Программирование с учетом возможности распараллеливания потока команд для выполнения несколькими процессорами (или ядрами многоядерных процессоров).
Ответ от Aka Diesel[гуру]
Представьте себе такую картину: несколько автомобилей едут из пункта А в пункт В. Машины могут бороться за дорожное пространство и либо следуют в колонне, либо обгоняют друг друга (попадая при этом в аварии!). Они могут также ехать по параллельным полосам дороги и прибыть почти одновременно, не "переезжая" дорогу друг другу. Возможен вариант, когда все машины поедут разными маршрутами и по разным дорогам.
Эта картина демонстрирует суть параллельных вычислений: есть несколько задач, которые должны быть выполнены (едущие машины). Можно выполнять их по одной на одном процессоре (дороге) , параллельно на нескольких процессорах (дорожных полосах) или на распределенных процессорах (отдельных дорогах). Однако задачам нужно синхронизироваться, чтобы избежать столкновений или задержки на знаках остановки и светофорах.
Параллельная программа содержит несколько процессов, работающих совместно над выполнением некоторой задачи. Каждый процесс — это последовательная программа, а точнее — последовательность операторов, выполняемых один за другим. Последовательная программа имеет один поток управления, а параллельная — несколько.
Совместная работа процессов параллельной программы осуществляется с помощью их взаимодействия. Взаимодействие программируется с применением разделяемых переменных или пересылки сообщений. Если используются разделяемые переменные, то один процесс осуществляет запись в переменную, считываемую другим процессом. При пересылке сообщений один процесс отправляет сообщение, которое получает другой.
При любом виде взаимодействия процессам необходима взаимная синхронизация. Существуют два основных вида синхронизации — взаимное исключение и условная синхронизация. Взаимное исключение обеспечивает, чтобы критические секции операторов не выполнялись одновременно. Условная синхронизация задерживает процесс до тех пор, пока не выполнится определенное условие. Например, взаимодействие процессов производителя и потребителя часто обеспечивается с помощью буфера в разделяемой памяти. Производитель записывает в буфер, потребитель читает из него. Чтобы предотвратить одновременное использование буфера и производителем, и потребителем (тогда может быть считано не полностью записанное сообщение) , используется взаимное исключение. Условная синхронизация используется для проверки, было ли считано потребителем последнее записанное в буфер сообщение.
Как и другие прикладные области компьютерных наук, параллельное программирование прошло несколько стадий. Оно возникло благодаря новым возможностям, предоставленным развитием аппаратного обеспечения, и развилось в соответствии с технологическими изменениями. Через некоторое время специализированные методы были объединены в набор основных принципов и общих методов программирования.
Представьте себе такую картину: несколько автомобилей едут из пункта А в пункт В. Машины могут бороться за дорожное пространство и либо следуют в колонне, либо обгоняют друг друга (попадая при этом в аварии!). Они могут также ехать по параллельным полосам дороги и прибыть почти одновременно, не "переезжая" дорогу друг другу. Возможен вариант, когда все машины поедут разными маршрутами и по разным дорогам.
Эта картина демонстрирует суть параллельных вычислений: есть несколько задач, которые должны быть выполнены (едущие машины). Можно выполнять их по одной на одном процессоре (дороге) , параллельно на нескольких процессорах (дорожных полосах) или на распределенных процессорах (отдельных дорогах). Однако задачам нужно синхронизироваться, чтобы избежать столкновений или задержки на знаках остановки и светофорах.
Параллельная программа содержит несколько процессов, работающих совместно над выполнением некоторой задачи. Каждый процесс — это последовательная программа, а точнее — последовательность операторов, выполняемых один за другим. Последовательная программа имеет один поток управления, а параллельная — несколько.
Совместная работа процессов параллельной программы осуществляется с помощью их взаимодействия. Взаимодействие программируется с применением разделяемых переменных или пересылки сообщений. Если используются разделяемые переменные, то один процесс осуществляет запись в переменную, считываемую другим процессом. При пересылке сообщений один процесс отправляет сообщение, которое получает другой.
При любом виде взаимодействия процессам необходима взаимная синхронизация. Существуют два основных вида синхронизации — взаимное исключение и условная синхронизация. Взаимное исключение обеспечивает, чтобы критические секции операторов не выполнялись одновременно. Условная синхронизация задерживает процесс до тех пор, пока не выполнится определенное условие. Например, взаимодействие процессов производителя и потребителя часто обеспечивается с помощью буфера в разделяемой памяти. Производитель записывает в буфер, потребитель читает из него. Чтобы предотвратить одновременное использование буфера и производителем, и потребителем (тогда может быть считано не полностью записанное сообщение) , используется взаимное исключение. Условная синхронизация используется для проверки, было ли считано потребителем последнее записанное в буфер сообщение.
Как и другие прикладные области компьютерных наук, параллельное программирование прошло несколько стадий. Оно возникло благодаря новым возможностям, предоставленным развитием аппаратного обеспечения, и развилось в соответствии с технологическими изменениями. Через некоторое время специализированные методы были объединены в набор основных принципов и общих методов программирования.
Ответ от Andrey Sas[активный]
Простыми словами это когда несколько процесоров выполняють одну задачу... иными словами эту задачу можно разбить на несколько подзадачь и програмно задать на выполнение каждому процесу соответствующую подзадачу.... таким образом улутшается быстродействие системы вцелом...
Простыми словами это когда несколько процесоров выполняють одну задачу... иными словами эту задачу можно разбить на несколько подзадачь и програмно задать на выполнение каждому процесу соответствующую подзадачу.... таким образом улутшается быстродействие системы вцелом...
Ответ от Лариса Федорова[новичек]
"...подзадачЬ..." Умным людям не грех и русский язык подучить. ..Без обид...
"...подзадачЬ..." Умным людям не грех и русский язык подучить. ..Без обид...
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Что такое параллельное программирование?
понятие информатика. основные направления информатики.
Информатика - это комплексная, техническая наука, которая систематизирует приемы создания,
подробнее...
спросили в 15 февраля GPGPU
Что такое CUDA API
CUDA (англ. Compute Unified Device Architecture) — технология GPGPU (англ. General-Purpose
подробнее...
Что такое CUDA API
CUDA (англ. Compute Unified Device Architecture) — технология GPGPU (англ. General-Purpose
подробнее...
спросили в Фон Принципы
Перечислите принципы Джона Фон Неймана.
Пожалуйста, ниже перечисляю Принципы Джона фон Неймана:
В основу построения подавляющего
подробнее...
Перечислите принципы Джона Фон Неймана.
Пожалуйста, ниже перечисляю Принципы Джона фон Неймана:
В основу построения подавляющего
подробнее...
спросили в Железо GPGPU
Что такое OPENCL?
OpenCL (от англ. Open Computing Language — русск. открытый язык вычислений) — фреймворк для
подробнее...
Что такое OPENCL?
OpenCL (от англ. Open Computing Language — русск. открытый язык вычислений) — фреймворк для
подробнее...
спросили в Другое
Вода имеет 4 агрегатных состояния: жидкое, твердое, газообразное. А какое ещё?;)
Кроме трех перечисленных, (жидкое, твердое, газообразное) открыто новое состояние воды, в котором
подробнее...
Вода имеет 4 агрегатных состояния: жидкое, твердое, газообразное. А какое ещё?;)
Кроме трех перечисленных, (жидкое, твердое, газообразное) открыто новое состояние воды, в котором
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Железо
материнская плата Asus P5GDC Pro
если ты хочешь играть в игры на данной материнской плате, то о замене процессора можешь не думать,
подробнее...
материнская плата Asus P5GDC Pro
если ты хочешь играть в игры на данной материнской плате, то о замене процессора можешь не думать,
подробнее...
Архитектура фон неймана обьясните коротко и ясно?
Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон
подробнее...
спросили в Другое
что такое OpenCL.dll
Библиотека OpenCL.dll* (Open Computing Language" - "открытый язык вычислений") - это фреймворк для
подробнее...
что такое OpenCL.dll
Библиотека OpenCL.dll* (Open Computing Language" - "открытый язык вычислений") - это фреймворк для
подробнее...
Что это за программа? AGEIA Physx v 7.11.13
Ускоритель AGEIA PhysX является первым процессором, специально разработанным с целью произвести
подробнее...
Что значит "синхронный" и "асинхронный" язык программирования, и к какому типу относятся PHP, Perl, Python, C# ?
>Что значит "синхронный" и "асинхронный" язык программирования
Ровным счетом ничего.
подробнее...
основные разделы информатики
Разделы информатики
Математические основы
Криптография
Теория графов
подробнее...
спросили в Нейроны
Что такое "семантическая нейронная сеть"?
Это название возникло из понятий "нейронная сеть" и "семантическая сеть". Семантическая нейронная
подробнее...
Что такое "семантическая нейронная сеть"?
Это название возникло из понятий "нейронная сеть" и "семантическая сеть". Семантическая нейронная
подробнее...
спросили в Железо 320
что лучше GeForce 8800 или geforce gt 320
Ну я незнаю как кто и чем)) )
Я отвечаю по современным меркам
GeForce GT 320 объединяет
подробнее...
что лучше GeForce 8800 или geforce gt 320
Ну я незнаю как кто и чем)) )
Я отвечаю по современным меркам
GeForce GT 320 объединяет
подробнее...
Ошибка компиляции CUDA Visual Studio C++ cl.hpp Библиотеку cl.hpp положила в нужную папку помогите плз...
Файла cl.cpp наверняка нет (ключевое слово CUDA в заголовке вопроса и специфичные имена функций в
подробнее...
Что такое скалярная и векторная архитектура и чем одна от другой отличается?
Что касается скалярной обработки, то соответствующая подсистема команд в
японских
подробнее...