2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 многоядерный процессор
Сообщение03.01.2009, 23:01 


03/12/08
111
Язык С++. Как и чем расстреливать программу на многоядерном процессоре? Подойдет ли MPI?

 Профиль  
                  
 
 
Сообщение04.01.2009, 05:55 
Заслуженный участник


15/05/05
3445
USA
Начните, например, отсюда: Multi-core.
MPI не подойдет.

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение04.01.2009, 14:58 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
d.dragon.n76 писал(а):
Язык С++. Как и чем расстреливать программу на многоядерном процессоре? Подойдет ли MPI?


Не очень понятен термин "расстреливать программу "? Это теперь так принято или это Ваши выдумки?

Что конкретно Вас интересует? Готовые решения или Вы сами хотите реализовать?

В любом случае рекомендую, для начала, хорошенько ознакомиться с теорией вопроса. На русском языке к сожалению почти ничего нет. Если знаете английский, могу посоветовать целый ряд книг по теории вопроса. Лучшее (ИМХО) на сегодняшний день: Concurrent Programming on Windows. Не обращайте внимание на Windows в названии. Книга, правда, только вышла и сейчас, видимо, ее можно только купить. Есть еще книги на английском. Если надо - пишите в личку.

Если хотите использовать готовые решения, то обратите внимание, например, на Intel Threading Building Blocks - интеловское многоплатформенное решение (Linux, Windows, MacOS). На сайте есть очень подробная документация. Есть книга - "Intel Threading Building Blocks. Outfitting C++ for Multi-Core Processor Parallelism" by James Reinders. Опять же - пишите в личку.:D

Про MPI Вам ответили.

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение07.01.2009, 01:00 


03/12/08
111
Про "расстреливать программу" я опечатался :lol: Теорию немножко знаю, т.к. писал под кластер работающий под управлением пакета mpich, но появляеться возможность работать на многоядерном процессоре (одиночный комп., проц. AMD Phenom X4). Пока требуется распараллелить блоки суммирования внутри своей программы на C++ для ускорения расчетов. Что скажете насчет OpenMP и есть ли какой-нибуть учебник или документация на русском языке?

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение07.01.2009, 12:46 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
d.dragon.n76 писал(а):
Что скажете насчет OpenMP и есть ли какой-нибуть учебник или документация на русском языке?


Я с этим пакетом не работал. Вот Вам ссылка ru.wikipedia.org/wiki/OpenMP. Там в конце есть ссылки, причем почти все на русском.

 Профиль  
                  
 
 
Сообщение12.01.2009, 16:55 


17/03/08
40
МИФИ, каф. Прикладная математика.
кто сказал, что MPI не подойдёт - волне работает на многоядерных процессорах так же как на кластерах.

 Профиль  
                  
 
 
Сообщение12.01.2009, 17:13 
Заслуженный участник


15/05/05
3445
USA
Riga писал(а):
кто сказал, что MPI не подойдёт - волне работает на многоядерных процессорах так же как на кластерах.

Вопрос темы применительно к MPI: Возможно ли распараллелить выполнение программы между ядрами многоядерного процессора с помощью MPI? Поделитесь, пожалуйста, своим опытом.

 Профиль  
                  
 
 
Сообщение13.01.2009, 12:05 
Заблокирован
Аватара пользователя


13/01/09

335
Yuri Gendelman писал(а):
Начните, например, отсюда: Multi-core.
MPI не подойдет.

Советую начать с русской книги: М.П. Левин "Параллельное программирование с использованием OpenMP". Для информации: в моделях с общей памятью алгоритмы, использующие интенсивно оперативную память, могут вообще не распараллеливаться.

 Профиль  
                  
 
 
Сообщение13.01.2009, 13:00 


17/03/08
40
МИФИ, каф. Прикладная математика.
Yuri Gendelman писал(а):
Riga писал(а):
кто сказал, что MPI не подойдёт - волне работает на многоядерных процессорах так же как на кластерах.

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

 Профиль  
                  
 
 
Сообщение18.01.2009, 22:07 
Заблокирован
Аватара пользователя


13/01/09

335
Riga писал(а):
Yuri Gendelman писал(а):
Riga писал(а):
кто сказал, что MPI не подойдёт - волне работает на многоядерных процессорах так же как на кластерах.

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

Среда MPI работает в любых средах и на любых платформах. Однако, при поддержке только оборудования с совместным использованием адресного пространства система обозначений на основе потоков более предпочтительна.
Недавно в Intel© был создан вариант OpenMP для поддержки кластеров.

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение30.07.2014, 10:06 
Аватара пользователя


12/03/11
691
Сорри, что поднимаю старую тему, но вопрос не до конца раскрыт.
Так можно ли использовать MPI для распараллеливания на многоядерном персональном компьютере (имеется ввиду в принципе)?
Задача такая - есть код программы на Fortran'е. Есть блок который выполняет ряд независимых друг от друга операций.
Их хочется распараллелить!
P.S: про OpenMP посыл понятен...

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение30.07.2014, 15:03 
Заслуженный участник


09/05/12
25179
DLL в сообщении #891720 писал(а):
Так можно ли использовать MPI для распараллеливания на многоядерном персональном компьютере (имеется ввиду в принципе)?
Можно, но, как уже говорили, не нужно.

DLL в сообщении #891720 писал(а):
Задача такая - есть код программы на Fortran'е. Есть блок который выполняет ряд независимых друг от друга операций. Их хочется распараллелить!
Вполне возможно, что с этим справится автопараллелизатор компилятора.

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение02.08.2014, 12:08 
Заблокирован


02/08/14

56
Pphantom в сообщении #891821 писал(а):
DLL в сообщении #891720 писал(а):
Задача такая - есть код программы на Fortran'е. Есть блок который выполняет ряд независимых друг от друга операций. Их хочется распараллелить!
Вполне возможно, что с этим справится автопараллелизатор компилятора.

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

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение02.08.2014, 12:43 


10/04/12
705
d.dragon.n76 в сообщении #174636 писал(а):
Пока требуется распараллелить блоки суммирования внутри своей программы на C++


Если операции однотипные, я бы посмотрел еще в сторону OpenCL. Тогда кроме обычного процессора можно будет использовать еще GPU

 Профиль  
                  
 
 Re: многоядерный процессор
Сообщение02.08.2014, 13:18 
Заслуженный участник


09/05/12
25179
Boss03 в сообщении #892701 писал(а):
который встроен в лучшие компиляторы типа майкрософт
Это несмешная шутка.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group