Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pro] Распараллелить A=N!M! 
:(
    Опции темы
m0zg
Дата 3.11.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.7.2007

Репутация: нет
Всего: 2



Погите пожалуйста распараллелить:
A = N!M!
PM MAIL   Вверх
popovda
Дата 6.11.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

Репутация: нет
Всего: 6



А в чём вы значения собираетесь хранить?  Язык какой?


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
Sartorius
Дата 6.11.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Пусть каждый процессор вычисляет произведение подпоследовательносит из (N+M)/num_of_procs элементов а потом в корневом процессе они перемножаются. А дальше все зависит от того какой технологией вы пользуетесь для распараллеливания. MPI???
PM MAIL ICQ   Вверх
Иванофф
Дата 7.11.2008, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



зачем это параллелить, разбить на два цикла. факториал быстро выберет разрядность. накладные расходы сожрут весь эфект.
надо учить преподавателей, что задавать некоректные тупые задачи - это плохо.
PM MAIL   Вверх
Sartorius
Дата 7.11.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Цитата(Иванофф @  7.11.2008,  05:00 Найти цитируемый пост)
факториал быстро выберет разрядность.

кто сказал, что аппаратная арифметика используется... можно и длинную сделать.
PM MAIL ICQ   Вверх
popovda
Дата 7.11.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

Репутация: нет
Всего: 6



Ну с длинной арифметикой не надо изобретать велосипед. Библиотеки есть и алгоритмы тоже. Только вот сомнительно, что от её использования в параллель будет выигрыш. А формула Стирлинга не подходит?


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
Иванофф
Дата 8.11.2008, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



Цитата(Sartorius @ 7.11.2008,  12:44)
Цитата(Иванофф @  7.11.2008,  05:00 Найти цитируемый пост)
факториал быстро выберет разрядность.

кто сказал, что аппаратная арифметика используется... можно и длинную сделать.

можно и 2-3 тысячи знаков посчитать. ну и какое реальное применение у этого может быть.

PM MAIL   Вверх
m0zg
Дата 11.11.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.7.2007

Репутация: нет
Всего: 2



Цитата(popovda @ 6.11.2008,  14:39)
А в чём вы значения собираетесь хранить?  Язык какой?

Язык Фортран smile. Результаты в вектор
PM MAIL   Вверх
popovda
Дата 12.11.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

Репутация: нет
Всего: 6



Я имел ввиду тип данныхsmile


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
m0zg
Дата 17.12.2008, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.7.2007

Репутация: нет
Всего: 2



Я опять со своей задачей. Преподаватель мне сказал, что тут ещё кое-что нужно доделать, я комменты к коде подписал. Вобщем, нужна помощь smile

Код

      DIMENSION A(100), B(100), C(100), D(100)
      EQUIVALENCE (A(100), B(100), C(100), D(100))
      S=10
      N=5
      M=5
      DO 1 I=1,N
      A(I)=I
1     CONTINUE
      DO 2 I=1,M
      B(I)=I
2     CONTINUE
      H=1.0
      G=1.0
CSBEG
      DO 3 I=1,N
      H=H*A(I)
3     CONTINUE
      DO 6 I=1,M
      G=G*B(I)
6     CONTINUE
      H=H*G
CSEND
!      тут должна быть подготовка к параллельному вычислению
CPBEG
!      вот тут должен быть блок параллельного вычисления
CPEND
      IFLAG=0
      DO 4 I=1,N
      IF (C(I).NE.D(I)) IFLAG=1
4     CONTINUE
5     FORMAT(' H=',F10.2,' G=',F10.2,' S=',I2,' IFLAG=',I1)
      WRITE(6,5) H,G,S,IFLAG
      STOP
      END


PM MAIL   Вверх
m0zg
Дата 18.12.2008, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.7.2007

Репутация: нет
Всего: 2



То, что нужно было в первом сообщении написать smile

Пояснения к моей лабе
 
РАСПАРАЛЛЕЛИВАНИЕ РЕКУРРЕНТНЫХ СООТНОШЕНИЙ
Цель работы - изучение особенностей распараллеливания рекуррентных соотношений, оценка эффективности  
применения средств МП для распараллеливания рекуррентных соотношений.
 
В работе исследуются алгоритмы параллельного вычисления рекуррентных соотношений на векторно-
конвейерном процессоре. Каждому студенту выдается индивидуальное задание в виде формулы рекурсии первого  
порядка и предлагается распараллелить исходное соотношение методом каскадных сумм, составить программу на  
языке ФОРТРАН для векторно-конвейерного вычислителя и исследовать зависимости полученного ускорения от  
длины конвейера и от числа вычисляемых термов в исходном выражении.
 
Рабочая программа должна включать последовательный циклический алгоритм вычисления  
рекуррентного соотношения и его параллельную  форму,  использующую средства МП До выполнения операторов  
тела цикла с помощью функций МП необходимо преобразовать массивы и векторы к виду, в  котором  индексы  
меняются непрерывно от 1 до заданной величины с шагом 1. 
PM MAIL   Вверх
m0zg
Дата 29.12.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.7.2007

Репутация: нет
Всего: 2



вобщем, с помощью добрых людей я таки написал, но она не работает под Фортран 77. Видимо, из-за функции CSHIFT. Может кто-нибудь знает как переделать?

Код

      DIMENSION A(8), B(8)
      S=8
      V=8
      N=11
      M=12
      AN1=1
      AM1=1
      AN2=1
      AM2=1
CSBEG
      DO 21 I=1,N
      AN1=AN1*I
21    CONTINUE
      DO 22 I=1,M
      AM1=AM1*I
22    CONTINUE
      A1=AN1/AM1
CSEND
CPBEG
      DO 6 I=1,N,V
      Z=N-I+1
      IF (Z.GT.V) GO TO 2
      GO TO 4
2     Z=V
4     DO 1 J=1,Z
      A(J)=I+J-1
1     CONTINUE
      DO 5 J=Z+1,V
      A(J)=1
5     CONTINUE
      #CALL EMULVV(A,A,CSHIFT(A,4),4)
      #CALL EMULVV(A,A,CSHIFT(A,2),2)
      AN2=AN2*A(1)*A(2)
6     CONTINUE
      DO 16 I=1,M,V
      Z=M-I+1
      IF (Z.GT.V) GO TO 12
      GO TO 14
12    Z=V
14    DO 11 J=1,N
      A(J)=I+J-1
11    CONTINUE
      DO 15 J=Z+1,V
      A(J)=1
15    CONTINUE
      #CALL EMULVV(A,A,CSHIFT(A,4),4)
      #CALL EMULVV(A,A,CSHIFT(A,2),2)
      AM2=AM2*A(1)*A(2)
16    CONTINUE
      A2=AN2/AM2
CPEND
      IFLAG=0
      DO 31 I=1,N
      IF (A1.NE.A2) IFLAG=1
31    CONTINUE
32    FORMAT(' A1=',F9.2,' A2=',F9.2,' S=',I2,' IFLAG=',I1)
      WRITE(6,32) A1,A2,S,IFLAG
      STOP
      END


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.