0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
|
1 | |
Распараллеливание05.07.2011, 23:34. Показов 24694. Ответов 21
Метки нет (Все метки)
Всем добрый вечер.
Если кто знает подскажите,мне надо распараллелить перемножение матриц,преподаватель сказал,что это делается просто с помощью одной строчке в коде,как я поняла это какая то функция,не подскажите?
0
|
05.07.2011, 23:34 | |
Ответы с готовыми решениями:
21
Распараллеливание распараллеливание Распараллеливание циклов Распараллеливание вычислений |
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
06.07.2011, 00:02 | 2 |
В стандартном С++ нет параллельных процессов.
0
|
Jupiter
|
06.07.2011, 00:05
#3
|
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
06.07.2011, 00:10 | 4 |
Ну, в Qt - тоже есть.
Но не понятно, что препод имел ввиду - одна строчка текста... О_о
0
|
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
|
|||||||||||
06.07.2011, 00:11 | 5 | ||||||||||
Сообщение было отмечено как решение
Решение
sever1313,
Средствами OpenMP можно так..:
Не забудьте подключить <omp.h>
4
|
0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
||||||
06.07.2011, 00:59 [ТС] | 7 | |||||
Не много почитав информации,не понятны не которые вещи.
Что есть число процессоров(потоки)? Если не трудно можно по подробнее,как это будет выглядеть? теорию распараллеливания перемножения матриц просмотрела,пример видела.Но,что то не до поняла. К примеру как зависит вычисление программы от заданного количества потоков? я понимаю вопросы тупые,но всё же..
0
|
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
|
|
06.07.2011, 08:57 | 8 |
Если не ошибаюсь распараллеливание - это когда одна часть алгоритма выполняется на одном процессоре, а другая часть - на другом процессоре. С помощью CreateThread можно создать потоки, но вот как указать на каком процессоре выполнять этот поток? Я думаю указать невозможно.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
06.07.2011, 09:38 | 9 |
Если не ошибаюсь, распараллеливание - это когда один поток работает параллельно с другим, а то как бы это на компах с одним процессором многозадачность реализовывали? Так, что, соглашусь с ValeryLaptev,
0
|
0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
|
06.07.2011, 15:20 [ТС] | 10 |
Кто нибудь может мне на пальцах объяснить как происходит параллельное перемножение матриц,я не могу в этом разобраться,пожалуйста.
0
|
Каратель
|
|
06.07.2011, 15:59 | 11 |
гуглите ленточное перемножение матриц
Добавлено через 10 секунд вот например http://www.hpcc.unn.ru/?dir=808 Добавлено через 1 минуту угу) если есть возможность заюзать объектную обертку то почему бы нет)
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
06.07.2011, 19:17 | 12 |
Грубо говоря, сколько у матриц строк-столбцов - столько и тредов. На каждое значение матрицы-результата - отдельный тред получается. Одновременно работают столько, сколько у первой матрицы строк (у второй - столбцов).
1
|
0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
||||||
22.07.2011, 12:38 [ТС] | 13 | |||||
Я написала с вашей помощью программу,но теперь не могу понять она работает или нет,считает то правильно,а как узнать за какое время выполнятся программа если не распараллеливать и наоборот.Ставлю time но он почему то постоянно выводит 0.
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
22.07.2011, 12:51 | 14 |
sever1313, просто матрицы маленькие. Сделайте матрицы хотя бы 1000 на 1000
0
|
0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
||||||
31.08.2011, 01:19 [ТС] | 15 | |||||
вернулась снова к этой проблеме,выяснилось что моя программа без распараллеливания выполняется за тоже самое время,разве так может быть?помогите разобраться.
0
|
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
|
|
31.08.2011, 09:31 | 17 |
sever1313, если работаете в студии, то нужно включить поддержку openmp в свойствах проекта: Configuration Properties, C/C++, Language и изменить значение свойства OpenMP Support.
1
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
31.08.2011, 10:06 | 18 |
Распараллеливание работает, если в компе хотя бы два ядра.
Да, и включить поддержку OpenMP, как тут сказали уже.
1
|
0 / 0 / 1
Регистрация: 23.11.2009
Сообщений: 61
|
|
31.08.2011, 11:21 [ТС] | 19 |
вот характеристики моего ноутбука
AMD Turion(tm) 64 mobile Technology MK-36 1.99 ГГц, 1,00 ГБ ОЗУ тоесть если у меня одноядерный программа будет работать не правильно? Добавлено через 1 минуту openmp подключила,ведь компилятор распознает функции openmp в программе.
0
|
31.08.2011, 12:10 | 20 |
Да нет, правильно. Только распараллеливания не будет - всё будет крутиться в одном потоке.
Добавлено через 2 минуты Вот тут можно почитать про OpenMP (англ.)
1
|
31.08.2011, 12:10 | |
31.08.2011, 12:10 | |
Помогаю со студенческими работами здесь
20
Распараллеливание программы Распараллеливание вычислений Странное распараллеливание Распараллеливание циклов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |